text:
TWC9: VB for Windows Phone 7, ASP.NET Vulnerability, WCF Services, String Formatting Cheat Sheet
Download this episode
This week on Channel 9, Dan is joined by Clint Rutkas to discuss the week's top developer news, including:
- Jason Zander: Walkthrough of using Visual Basic CTP for Windows Phone 7 Tools (Watch)
- Scott Guthrie: ASP.NET Security Vulnerability FAQ, and updated steps to avoid it (Watch)
- Jaime Rodriguez, Yochay Kiriaty - Inside Windows Phone - Windows Phone Silverlight Tookit with David Anson (Watch)
- Andy Beaulieu - Customizable Ragdoll for Windows Phone 7 (Watch)
- Andy Pennell - Using WCF on Windows Phone 7 Walkthrough (Watch)
- John Papa - Silverlight TV - Debugging WCF Services including using Fiddler (Watch)
- Yochay Kiriaty - Windows Phone 7 Training Course - Pivot and Panorama controls Hands On Lab (Watch)
- Steve Tibbett - .NET String Formatting Cheat Sheet, via Greg Duncan (Watch)
- Alexander MP - SQL Function to compare string similarity, via .NET Kicks (Watch)
- Anoop Madhusudanan - 7 Free eBooks for .NET Programmers (Watch)
Picks of the week!
- Dan's pick: War Story Europe in Flames, a free Silverlight MMO RTS (Watch)
- Clint's pick: Tips and Tricks from Jeff Wilcoxon Twitter (Watch)
Available formats for this video:
Actual format may change based on video formats available and browser capability.
More episodes in this series
TWC9 - ASP.NET Fix, Xamalot, MVC tools Embed PPT
Related episodes
Visual Basic Fundamentals for Absolute Beginners: (08) Operators, Expressions and…
Visual Basic Fundamentals for Absolute Beginners: (07) Branching with the If..Then..Else…
Visual Basic Fundamentals for Absolute Beginners: (06) Declaring Variables and Assigning…
Visual Basic Fundamentals for Absolute Beginners: (05) Quick Overview of the Visual Basic…
Visual Basic Fundamentals for Absolute Beginners: (04) Dissecting the First Visual Basic…
Visual Basic Fundamentals for Absolute Beginners: (09) For..Next Iterations
Visual Basic Fundamentals for Absolute Beginners: (10) Creating Arrays of Values
Visual Basic Fundamentals for Absolute Beginners: (12) While Iterations and Reading Data…
Visual Basic Fundamentals for Absolute Beginners: (11) Creating and Calling Simple…
Visual Basic Fundamentals for Absolute Beginners: (03) Creating Your First Visual Basic…
The Discussion
The new "(Watch)" feature is great
Also nice show (as ever )
There is actually a bug in the jump links where it ignores the seconds and jumps straight to the minute only after you've clicked multiple times on a link on the page, so Duncan is investigating that
Thanks as always for the shout-out...
And bug or not, I agree the "watch" feature is very cool
Also I dig how I was watching the show, then wanted to sign in to comment, and after the page refresh the show resumed where I left off. It's the nice touches like that (and the auto-expanding comment textbox, etc) make this Channel 9 release so cool. Kudo's to the team...
FYI, video player jumps to the right place now!
great work with the (Watch) feature
IronRuby, IronPython and a ressurected Managed JScript (all DLR languages) would be awesome options to use for Windows Phone 7 development. Way better than VB, although both VB and C# are also required choices. It does seem the DLR is being neglected a little bit these days.
@CRPietschmann: why is it a better choice than VB? VB has a massive user base.
Comments closed
Comments have been closed since this content was published more than 30 days ago, but if you'd like to continue the conversation, please create a new thread in our Forums, or Contact Us and let us know.


text: 000 FXUS65 KBOU 251642 AFDBOU Area Forecast Discussion National Weather Service Denver/Boulder CO 942 AM MST Sat Feb 25 2017 .UPDATE... Issued at 935 AM MST Sat Feb 25 2017 Moisture approaching from the northwest as evident on H20 vapor satellite imagery already showing up as increasing mid-level clouds west of the Continental Divide and high cirrus east of the divide. Should see this trend continue through the afternoon with scattered rain/snow showers developing on the west slope and a thickening mountain wave cloud band forming over the I-25 urban corridor. The increase in cloud cover will slow warming except in and near the Front range foothills where gusty downslope winds later today will help to warm temperatures. Precipitation is not likely east of the Divide today. Changes have been made to today`s forecast to reflect these conditions. && .SHORT TERM...(Today and tonight) Issued at 346 AM MST Sat Feb 25 2017 Drier air moving over Colorado today as northwest flow aloft increases a bit. There will still be some mid/high level clouds as well as some weak lower level clouds upstream of the mountains, but only patches of very light snow for the mountains this morning. With some heating and increasing moisture this afternoon mountain showers will increase again. This will be a shallow layer of instability but with decent wind, so it should be mainly light to moderate showers. Most of the mountains should get a little snow through the evening, then drier and subsident air will move in from the north after midnight. For the plains there will be mid/high cloud cover and possible some weak late day convection, but with dry low levels expect this will only produce virga. Forecast temps look pretty good today, lowered tonight`s low a little as we were above guidance and with clearing expected it could be just as cold in northern valleys and plains low spots as it is this morning. .LONG TERM...(Sunday through Friday) Issued at 346 AM MST Sat Feb 25 2017 Aside from some residual snowfall in the mountains along the higher west facing slopes, Sunday and Sunday evening will be dry. The models show weak qg descent through the day, under a light west/northwesterly flow aloft. The flow aloft will increase and become more west/southwesterly late Sunday night into Monday. Weak qg ascent will develop over the cwa as the next storm system approaches the state from the Pacific Northwest. The first system will move across the cwa Monday afternoon. Southwesterly mid level winds will favor zone 31 the most. The trough axis will pass to the east Monday evening allowing the mid level winds to transition to northwest. The best round of accumulating snowfall will occur Monday afternoon and evening. Moderate mid level subsidence kicks in after 06z Tuesday which will allow for mainly light orographic snowfall in the high country. Across the northeast plains, spatial cross-sections show some shallow moisture around late Sunday night, but mostly dry aloft so no pcpn anticipated through Monday night altho there could be some stratus stirring around the northeast plains. The mdls push the cold front across the area 03-06z Monday evening. The second part the storm system push across the Desert Southwest 12z Tue and clips southern and eastern CO Tuesday aftn/evng. The mdls develop a weak sfc low near the OK/TX Panhandles Tuesday aftn, then flush the sfc low eastward Tuesday evening. The mdls show a brief window for snow mainly for east central CO, so maybe some light accumulations to the east/southeast of Denver late Tuesday aftn/evng. High pressure at the sfc and aloft will allow for a drier pattern by the middle of next week and continuing into next weekend, with temperatures climbing back to around 60 by Saturday. && .AVIATION...(For the 18Z TAFS through 18Z Sunday afternoon) Issued at 935 AM MST Sat Feb 25 2017 Light and variable winds at the present time at Denver area airport terminals are forecast to gradually turn west-southwest during the late morning or early afternoon hours. By mid- afternoon...speeds in the 8-14 kts will become common with possible gusts to around 25 kts at KBJC near the base of the foothills. Otherwise for the rest of the day count on VFR ceilings under a thickening nearly stationary mountain wave cloud with its base generally at or above 15000 ft ASL. .BOU WATCHES/WARNINGS/ADVISORIES... None. && $$ UPDATE...Baker SHORT TERM...Gimmestad LONG TERM...Cooper AVIATION...Baker

subset: commoncrawl


text:
Former Knicks coach and current ESPN analyst Jeff Van Gundy says the Knicks need to keep their cool if they want to make a run to the NBA championship.
"I think poise under pressure is an incredibly importantly part of winning it all," Van Gundy said Monday in an interview on ESPN 98.7 FM's "The Michael Kay Show."
"I think, having been a apart of some teams that have gotten into some skirmishes, the ability to take what you think are unnecessary shots at you or not getting calls that go your way and ... to continue on and press on and not get distracted by those things, I think is an incredibly important part to winning it all."
The Knicks have lost their cool in several instances this season.
The most recent example is J.R. Smith's elbow to Jason Terry in Game 3 of the Knicks-Celtics series.
Smith was suspended for Game 4. The Celtics won the game in overtime and seemed to benefit from Smith's absence.
The Knicks' bench scored just seven points. Carmelo Anthony shot 10-for-35 and seemed to miss Smith, who draws attention from opposing defenders.
The Knicks have another chance to close out Boston in Game 5 on Wednesday.
"If your goal is to win it all, which the Knicks certainly have the right to think that they are in that conversation [to do], then I think they really have to keep their intensity high but also up their level of toleration for what they may perceive to be missed calls or overly aggressive play," said Van Gundy, who coached the Knicks in 1997 when a Charlie Ward-P.J. Brown fight led to suspensions and cost the Knicks a series win over Miami.
This year's Knicks have also lost their cool a few times in the regular season.
They melted down in the third quarter of a loss to Memphis early in the season; three Knicks received technicals in a pivotal run. Three Knicks were ejected in an ugly January loss to the Bulls. And, of course, there was was the Anthony/Garnett incident in January.
Three incidents over 82 games isn't significant, but other teams certainly took note.
"They've got to be able to stay in that moment and not put themselves in harm's way for unnecessary technical fouls or ejections," Van Gundy said.


text:
Publisher's Description+
From Live to Win, Inc.: LiveToWin is a new kind of daily prize giveaway that makes it fun and easy to get entries in to win real cash prizes right from your device. Were not your average sweepstakes; were talking prizes worth bragging about. How about a $500 Daily Giveaway? A winner is guaranteed every day, and no purchase is necessary. Every morning well greet you with numerous ways to win! Explore our many activities and increase your odds of winning by taking fun polls, watching videos, playing a game, giving us your opinion on prizes, and much more. LiveToWin is that little-something-extra that brings a layer of delight to your everyday online life. Start playing (and winning) today! Highlights: - FREE to Enter- $500 Daily Prize - A Winner is Guaranteed Every Day - We Keep it Simple, Fun and Free- With 1-tap, youre in to win!
What's new in this version:
Bug fixes and re-branding
read more +


text:
Epilepsy and intellectual disability (ID), including autism are often comorbid with one another in early life. Early postnatal development is characterized by a "critical period" (CP) of enhanced synaptic plasticity and learning. If epilepsy and seizures occur in the setting of rapid synaptic development, as is the case during the CP, there is the potential for excessive induction of activity dependent synaptic modification (plasticity) as well as disruption of the normal excitatory:inhibitory balance unique to this age window, and this in turn could affect brain development and neurobehavior. The central hypothesis of this proposal is that early-life seizures can alter synaptogenesis and network plasticity, thereby disrupting aspects of the subsequent CP. To date, the limited evidence for an effect of seizure on CP events has been at the level of cellular and molecular changes, but has not been addressed quantitatively in vivo at a systems level. We will assess auditory cortical CP resulting from in vivo tone rearing in animals exposed to early life seizures (Aim 1). Next, we will examine how the maturation of inhibition and excitation (Aim 2) in specific auditory cortical networks contribute to the CP and how this is altered by early-life seizures. Finally, in Aim 3, we will perform pilot proof-of-principle experiments to test how seizure-induced disruption of auditory CP correlates with seizure-induced neurobehavioral deficits, which we will attempt to rescue through seizure control in a mouse model of autism syndromes. If successful, these experiments will reveal new therapeutic targets for the treatment of ID and autism that accompany early-life seizures.
Epilepsy is the third most common major neurologic disease, and infancy and childhood are windows of higher incidence. Almost half of all epilepsy patients suffer some sort of cognitive and psychiatric disorders, and the incidence of cognitive problems including autism is high in children with epilepsy. Likewise, there is a higher incidence of epilepsy in autism and other intellectual developmental disorders. Here we evaluate whether epilepsy can affect the normal processes of early brain development, and whether there are molecular targets for intervention and treatment to reverse these changes. This grant application addresses several components of the Epilepsy Research Benchmarks (http://www.ninds.nih.gov/research/epilepsyweb/2007_benchmarks.htm ) Benchmarks Area III: Prevent, limit, and reverse the co-morbidities associated with epilepsy and its treatment. B. Identify predictors and underlying mechanisms that contribute to co-morbidities. C. Determine the optimal treatments for the neuropsychiatric and cognitive comorbidities in people with epilepsy. D. Prevent or limit other adverse consequences occurring in people with epilepsy . Public Health


text:
Automatically send friend/group invites and a welcome message to new users, and redirect them to a custom page. Also provides email customisation opti
Welcome Pack is a BuddyPress plugin that enhances the new user experience. When a user registers on your site, Welcome Pack lets you automatically send them a friend or group invitation, a Welcome Message, and it can redirect them to a Start Page. You can also customise the emails sent by BuddyPress so that they match your site's brand, in plain text or rich HTML versions.
Requires: WordPress 3.2, BuddyPress 1.5.1 or higher
Compatible up to: WP 3.3.1, BuddyPress 18.104.22.168
Last Updated: 5 years ago
Active Installs: 800+
Got something to say? Need help?


text:
Log Out
Our Terms of Use and Privacy Policy have changed. We think you'll like them better this way.
Religion is a political force with real impact on elections. Recently the Catholic Church released a short video suggesting that Catholics should vote for candidates with certain views on marriage and faith. Simultaneously, state legislatures are passing laws to restrict a key method used to bring people to the polls--after-church car and bus pooling.
Our guest, Bethany Blankley, is a frequent writer and blogger, and is a current Fellow at the Chuck Colson Center for Christian Worldview.
Call in and join the show as we discuss this very important issue!
Sorry we couldn't complete your registration. Please try again.
Please enter your email to finish creating your account.
Receive a personalized list of podcasts based on your preferences.


text:
60 Book Author Biographies required
- Status Completed
- Budget $250 - $750 USD
- Total Bids 32
Project Description
We require a number of biographies to be written about featured authors for our website. We have selected the following authors to be reviewed:
Top Adult Authors:
James Patterson, Nora Roberts, Danielle Steel, M C Beaton, Clive Cussler , Josephine Cox, Tess Gerritsen, Anna Jacobs, Michael Connelly, Lee Child, Katie Flynn, Jodi Picoult, Alexander McCall Smith, Harlan Coben, Ian Rankin, Patricia Cornwell, David Baldacci, Jeffrey Deaver, Agatha Christie, John Grisham
Top Childrens Authors:
Daisy Meadows (multiple authors), Jacqueline Wilson, Francesca Simon, Julia Donaldson, Mick Inkpen, Adam Blade, Terry Deary, Fiona Watt, Roald Dahl, Lauren Child, Ian Whybrow, Enid Blyton, Lucy Cousins'Janet & Allan Ahlberg, Eric Hill, Tony Ross, Michael Morpurgo, Jeanne Willis, Vivian French, Jeremy Strong
Top Classical Authors:
Roald Dahl, Enid Blyton, Agatha Christie, Georgette Heyer, P G Wodehouse, Charles Dickens, Jane Austen, Daphne Du Maurier, Beatrix Potter, C S Lewis, William Shakespeare, George Orwell, J R R Tolkien, Thomas Hardy, Nevil Shute, Arthur Conan Doyle, A A Milne, Ernest Hemingway, Harper Lee, Anthony Trollope.
All biographies must be original work. Obviously there is an enormous amount of information about each author on the internet to copy and re-write. Blatant spinning will not be accepted. We will also require an image of the author that will be free of copyright.
A proposed format for all authors should be as follows:
Author First Name, Author Last Name, Author Born, Author Died (if deceased), Author Genre, Author Biography (100 to 150 words) and Author image file.Get free quotes for a project like this
Completed by:
Skills Required
Looking to make some money?
- Set your budget and the timeframe
- Outline your proposal
- Get paid for your work
Hire Freelancers who also bid on this project
Looking for work?
Work on projects like this and make money from home!Sign Up Now
- Forbes
- The New York Times
- Time
- Wall Street Journal
- Times Online


text:
Today's Devotional
Based on a True StoryWhat restoration has God brought to your life?
Top Christian Music Videos
jtvcfmedia's UploadsBack to jtvcfmedia's channel.
- Cover the Earth by jtvcf worship teamCover the earth by Lakewood performed by the jtvcf worship teamjtvcfmedia2010-10-02T00:40:321,899 views00:03:45
- JTVCF 18th AnniversaryJTVCF History presentationjtvcfmedia2008-03-17T00:00:002,583 views00:04:18
- Came to the rescueSpecial Numberjtvcfmedia2008-03-17T00:00:003,071 views00:05:09
- You raise me upPresentation of JTVCF Dance Ministryjtvcfmedia2008-03-17T00:00:003,880 views00:05:04
- God's Greatest Gift - ChristmasThis Music video contains The Nativity Story and music Celt by Javier Melado. Produced by JTVCFMediajtvcfmedia2008-03-17T00:00:006,391 views00:04:37
- King of Majestyby JTVCF Worship Teamjtvcfmedia2008-03-17T00:00:003,214 views00:04:54
- JTVCF Bicol 17th AnniversarySpecial Numberjtvcfmedia2008-03-17T00:00:002,882 views00:00:58
- JTVCF 19th AnniversaryJTVCF History Presentationjtvcfmedia2008-03-17T00:00:002,723 views00:05:19
- All for LoveSpecial Numberjtvcfmedia2008-03-17T00:00:003,506 views00:05:18
- Your Love is BeautifulPraise and Worship
Song: Your Love is Beautifuljtvcfmedia2008-03-17T00:00:003,828 views00:04:15
- We are the reason-The passion of the ChristThis Music video contains the movie The Passion of the Christ and music We are the reason sung by Gary Valenciano. Produced by JTVCFMediajtvcfmedia2008-03-17T00:00:008,036 views00:05:28


text:
The adidas adistar Boost ESM Glow is a premium, daily running, support shoe with a reflective upper, designed for a moderate overpronated foot motion.
The adidas Adistar Boost ESM Glow brings superior comfort to overpronators day or night. With Boost technology's cushion and energy return your feet will be apt to endure endless pounding and still bounce back for more. With the ESM Techfit and 360° reflectivity, the upper stretches where your foot needs it with enough structure to give overpronators a shoe they can rely on during any hour of the day.
Model Number:
Weight: 297.7 grams (size 9US)
Stack Height: Heel (28mm), Forefoot (17mm)
How it fits (based on width D)


text:
Canvas Print
Did you leave this down hereby Patrick Andrew Adams
Free Worldwide Shipping - Ends Tonight at Midnight PT!
Fine art print on bright white, fine poly-cotton blend, matte canvas using latest generation Epson archival inks. Individually trimmed and hand stretched museum wrap over 1-1/2" deep wood stretcher bars. Includes wall hanging hardware.
He may look scary but really he's not, he's just trying to keep his swamp clean and do the right thing. Give you back your missing skull. You are missing a skull right? Oh BTW he gives great wet squishy swampy swamp lovin hugs and who doesn't love that. So when you hang this badboy above your bed/mantel/toilet seat remember SQUISHY HUGS ROCK - SWAMPY SWAMP LOVIN. Do i really need to say more?


text:
Baylor women's basketball head coach Kim Mulkey is one of four Naismith Memorial Hall of Fame women's committee finalists.
Fifty one student-athletes have been named to the 2017 Academic All-Big 12 Women's Basketball Team.
Frank Mason III (Kansas) and Nina Davis (Baylor) are named finalists for the Senior CLASS Award. The honor is given to a men's and women's basketball student-athlete who excels both on and off the court.
Texas guard/forward Joyner Holmes has been named the U.S. Basketball Writers Association National Freshman of the Week.
Former Texas Tech Lady Raider Sheryl Swoopes will be inducted into the Women's Basketball Hall of Fame with the Class of 2017.
No. 8 Texas will use its conference bye to square off against No. 4 Florida State in Tallahassee Monday night.
Tynice Martin (West Virginia) and Joyner Holmes (Texas) were selected for Big 12 women's basketball weekly accolades.
Five men's and women's basketball student-athletes from the Big 12 have been named to the 2017 Academic All-District Basketball Teams, as selected by the College Sports Information Directors of America (CoSIDA).
Senior Alexis Jones (Baylor) continues to garner national recognition as she was named to the Dawn Staley Award Midseason List, the Naismith Top 30 list and the Wooden Award top 20 list.
Baylor women's basketball senior Alexis Jones is one of 10 candidates for the 2017 Nancy Lieberman Award, the Naismith Memorial Basketball Hall of Fame announced.
It's a showdown in Waco Monday night as No. 2 Baylor and No. 11 Texas, the Big 12's two undefeated teams in conference play, square off at 7 p.m. CT on FS1.
Iowa State's Bridget Carleton along with Texas teammates Kelsey Lang and Joyner Holmes picked up Big 12 women's basketball weekly accolades.


text:
Mega Bears Fan
I wasn't sure what to think when I walked out of Suicide Squad this past weekend. I desperately wanted this to be the movie in which DC finally gets its ducks in a row and makes a fully competent movie (instead of just half a competent movie). I wanted to find things to like about the movie. I wanted to see some brilliant artistic vision that was realized in the film. But I just couldn't. The whole movie was just off-putting.
I feel like the original creative vision revolved around showing a sense of nobility and honor among villains, while also highlighting that supposed "good guys" can actually be very evil. You know, real Watchmen-level kind of stuff. This would have mirrored some of the more enjoyable elements in the first half of Dawn of Justice (in which Superman and Batman's actions are viewed from different perspectives) and would have offered a pretty solid artistic message. This possible original intent is most apparent with Deadshot and Amanda Waller (Viola Davis), whose behavior is inverse of their perception within society. Deadshot is a vigilante and murderer who is locked up in prison, but he is the most noble and compassionate character in the film. Waller, on the other hand, is a national security adviser responsible for protecting the lives of hundreds of millions of people, but she is a merciless, cynical bitch who will shoot her entire staff in the heads because they apparently didn't have clearance to participate in ... the operation that she enlisted them into?
It's all so ham-fisted. Despite being the most likable, relatable, and heroic character in the movie, Deadshot's sense of honor just gets obnoxious. Waller, on the other hand, is obnoxiously vile. The result is that neither character really works for me, and that underlying theme about "who are the real bad guys?" just kind of gets lost in the meaninglessness of the individual characters' actions.
The fact that none of the other characters besides Harley and El Diablo (who ended up being my favorite character in the film) get any development at all certainly doesn't help. A two-hour runtime is pretty standard for a movie, but I simultaneously feel as though half the movie is cut out, and that half of what is present drags on...
Tags:Suicide Squad, DC Comics, comic book, Warner Brothers, Harley Quinn, Deadshot, Killer Croc, Captain Boomerang, El Diablo, Katana, Enchantress, Amanda Waller, Batman, Joker, Stockholm Syndrome, Superman, Batman Versus Superman: Dawn of Justice, Margot Robbie, Jared Leto, Will Smith, Viola Davis, Ben Affleck, Deadpool
My past two blog posts have been focused on open world gaming. These posts have been continuations of an earlier post about the narrative "limbo" that many open world games create via their quest structures. In the first post in this second series, I pointed out what I perceive to be a problem with open world games that insist on turning their sandbox worlds into little more than convoluted mission-select screens and collectible checklists. In the following post, I described some games that I think managed to make successful open worlds by including features or mechanics that made traveling through the space into a meaningful mechanic. This time, I want to go back to some of the games that I singled-out in the first post in this series, and brainstorm some ways that they could have made better use of the large spaces that their maps offered so that traveling around the world wouldn't become so boring later in the game.
But before I do that, I want to re-emphasize that I don't hate these games. They're just not very good at using their space, and that's what I'm criticizing. Well, the newer Assassin's Creed games have been pretty terrible. Anyway, I pick on games like Skyrim and The Witcher III a lot, but I like them just fine - I bought the DLC for both. I pick on them, not because I hate them, but because I do like them and I want them to get better (or for their sequels to get better). Rather, my objective here is to find ways for these games to make better use of the large, open spaces that they provide the player, so that exploring the map feels more mechanically relevant, more interesting, or more rewarding; and to feel less like a time-sink.
Bethesda's Skyrim and Fallout titles, as well as CD Projeckt Red's Witcher III and Rockstar's Grand Theft Auto V, already have open worlds that transcend being simple, convoluted mission-select screens like games like Assassin's Creed and Metal Gear Solid V. They populate their worlds with little narrative world-building details that make their worlds feel alive and lived-in (even though they may feel stagnant). So what could a game like Skyrim or The Witcher III have done to improve its open world?
Tags:open world, sandbox, game design, road trip, map, traversal, travel, cartography, geography, narrative, ludonarrative, ludonarrative dissonance, limbo, paradox, Kafkaesque, quest, Ubisoft, Bethesda, Rockstar, Beenox, Insomniac Games, Naughty Dog, Assassin's Creed, The Elder Scrolls, Skyrim, The Witcher 3, Grand Theft Auto, Grand Theft Auto V, The Last of Us, Spider-Man, web-swinging, comic book
So, what's the deal with the "Days of Future Past" X-Men story, anyway? Sure, it's a great storyline, but other comics also have similarly great storylines. Yet, I can't think of any other comic story that is treated with as much reverence as this particular one. No other comic book story that I can think of has been directly adapted as often as this one. Not "The Night Gwen Stacy Died", not "The Death of Superman". These comic stories have been reference in numerous media, particularly Gwen Stacy's death, but rarely are they adapted. But I've yet to see an incarnation of X-Men that does not include a version of the "Days of Future Past" storyline. It's been featured in multiple animated series, video games, and novelizations.
Of course, all of the various retellings of this story take their own creative liberties, and the new movie from 20th Century Fox is no exception.
This film is designed to be a sequel to both the First Class and Last Stand movies in the X-Men franchise. I was kind of surprised that the studio took this particular approach, since there were some nagging inconsistencies and continuity issues with the two timelines. But I guess Hollywood never cares as much about continuity as the nerdy fanboys do... Fortunately, these continuity issues don't come up or interfere with this film.
In fact, I thoroughly enjoyed this film. The creative liberties were generally positive, and the combination of the two timelines actually works surprisingly well. I wasn't terribly thrilled with the depressed, brooding depiction of the younger Xavier, but I don't know enough about the character's comic book history to know whether this is anachronistic, and it definitely wasn't to the movie's detriment.
Tags:X-Men, Days of Future Past, Bolivar Trask, sentinels, Wolverine, Kitty Pryde, Quicksilver, Bishop, Blink, Charles Xavier, Magneto, Mystique, Beast, 20th Century Fox, Bryan Singer, comic book, time travel, 1970s, Peter Dinklage, Evan Peters, Hugh Jackman, Jennifer Lawrence, James McAvoy, Michael Fassbender, Omar Sy, Bingbing Fan, Patrick Stewart, Ian McKellen
I did not at all care for The Amazing Spider-Man movie that was released last year. In summary, the movie was too dark, it lacked the light-hearted fun that I expect from Spider-Man, and the romantic dynamic between Peter Parker and Gwen Stacy just didn't work in my mind. Apparently, I wasn't the only one who was disappointed in the movie because of these issues. At this year's San Diego ComicCon, the creators and cast of the sequel, The Amazing Spider-Man 2, revealed a lot of information about the new movie that actually impressed me! It just might be possible that the creators swallowed their pride, and took the criticism of the previous movie to heart.
The most noticeable and immediately obvious change in the overall look and feel of the new movie is the color palette. Most of the images from the film are sequences that take place during the day, so the images are bright and colorful. But the most important change is the complete redesign of Spidey's suit.
The new suit design is absolutely gorgeous! They totally nailed it this time around!
First and foremost, it is actually a direct adaptation of the comic book suit (minus the armpit web). It actually looks like something Peter Parker could have put together with the limited resources at his disposal rather than some kind of military-grade commando outfit. It looks like a spandex suit. The eyes are bigger and buggier and actually white instead of gray or silver, which just looks great and adds just the right amount of "cartoonish-ness" to the character. The colors could have been a little brighter, but I can live with that. Put simply: this is the best looking movie Spider-Man suit so far, hand down!
Tags:Spider-Man, The Amazing Spider-Man, The Amazing Spider-Man 2, Electro, Gwen Stacy, Andrew Garfield, Jamie Foxx, Emma Stone, Marc Webb, Sony, Marvel, comic book, movie, ComicCon, San Diego ComicCon, sequel, Bugs Bunny, comic
I have very mixed feelings about Iron Man 3.
On the one hand, the movie throws some very unexpected curve balls at the audience, and departs from other big-budget action movies by being a very thoughtful and introspective movie. It provided everything that Star Trek Into Darkness failed to deliver. If the people who wrote Iron Man 3 had been involved with writing Into Darkness, then that movie would have benefited greatly. Iron Man 3 succeeds because the writers are really trying to say things with their movie, even if they have to twist the audience's expectations and break a few eggs to do it.
On the other hand, the movie suffers from some pacing and script issues, and it blunders with its primary villain(s).
The core of the plot is about Stark coming to terms with the events of The Avengers and deciding if he can truly hang with genuine supermen and gods. It's a very introspective film (which is something that the Iron Man movies have been very good at). In fact, most of the movie revolves around Stark being forced to solve problems as a regular person, rather than being able to rely on a fancy, weaponized suit of armor.
Stark has reexamine his goals and objectives and try to figure out where he wants to draw the line regarding problems he can deal with, and problems he can't deal with, and also with whether or not he should deal with them. The internal conflict within the character is the primary moving for much of the movie's plot, and Robert Downy Junior pulls it all off with the grace and style that we've come to expect from him with this character.
Tony Stark is going to be stuck solving problems without his fancy armor throughout most of the movie.
Tags:Iron Man 3, Iron Man, Marvel, Marvel Comics, Tony Stark, the Mandarin, War Machine, Iron Patriot, Robert Downy Jr., Gwyneth Paltrow, Guy Pearce, Ben Kingsley, Stan Lee, James Bond, terrorist, the X-Files, Star Trek Into Darkness, fanboy, Cliff Notes, introspection, comic book, movie, comic
© 2011-2017 Mega Bears Fan. All other trademarks and copyright are property of their respective owners.
Driven by modded version of B|063n61n3 d0t N3T 18.104.22.168.
Theme by chichian.
Welcome to Mega Bears Fan's blog, and thanks for visiting! This blog is mostly dedicated to game reviews, strategies, and analysis of my favorite games. I also talk about my other interests, like football, science and technology, movies, and so on. Feel free to read more about the blog.
Follow me on Twitter at: twitter.com/MegaBearsFan
Madden 18 wishlist: offense, defense, and special teams balance01/14/2017 I recently wrote regarding a proposal for improving practice squad and training features by hiding player ratings until the player has played enough games to reveal them. Of course, there's still a lot of other aspects of the game that I'd like to see improved. I was pleased that this year's Madden 17 implemented some items...
'Civilization V' strategy: Ahmad al-Mansur's trade caravans hold the keys to the Gateway to Africa02/08/2014 Continuing my series of Civilization V strategies, the fourth installation will cover the African trading empire of Morocco lead by Ahmad al-Mansur. When the area of Morocco (north west Africa) was first inhabited about 100,000 years ago, the land was a fertile savannah, rather than the arid desert and mountains that it is today,...


text:
This is Simon McVittie's software development blog. Main site: pseudorandom.co.uk
I'm back from the GTK hackfest in Toronto, Canada and mostly recovered from jetlag, so it's time to write up my notes on what we discussed there.
Despite the hackfest's title, I was mainly there to talk about non-GUI parts of the stack, and technologies that fit more closely in what could be seen as the freedesktop.org platform than they do in GNOME. In particular, I'm interested in Flatpak as a way to deploy self-contained "apps" in a freedesktop-based, sandboxed runtime environment layered over the Universal Operating System and its many derivatives, with both binary and source compatibility with other GNU/Linux distributions.
I'm mainly only writing about discussions I was directly involved in: lots of what sounded like good discussion about the actual graphics toolkit went over my head completely :-) More notes, mostly from Matthias Clasen, are available on the GNOME wiki.
In no particular order:
Thinking with portals
We spent some time discussing Flatpak's portals, mostly on Tuesday. These are the components that expose a subset of desktop functionality as D-Bus services that can be used by contained applications: they are part of the security boundary between a contained app and the rest of the desktop session. Android's intents are a similar concept seen elsewhere. While the portals are primarily designed for Flatpak, there's no real reason why they couldn't be used by other app-containment solutions such as Canonical's Snap.
One major topic of discussion was their overall design and layout. Most portals will consist of a UX-independent part in Flatpak itself, together with a UX-specific implementation of any user interaction the portal needs. For example, the portal for file selection has a D-Bus service in Flatpak, which interacts with some UX-specific service that will pop up a standard UX-specific "Open" dialog — for GNOME and probably other GTK environments, that dialog is in (a branch of) GTK.
A design principle that was reiterated in this discussion is that the UX-independent part should do as much as possible, with the UX-specific part only carrying out the user interactions that need to comply with a particular UX design (in the GTK case, GNOME's design). This minimizes the amount of work that needs to be redone for other desktop or embedded environments, while still ensuring that the other environments can have their chosen UX design. In particular, it's important that, as much as possible, the security- and performance-sensitive work (such as data transport and authentication) is shared between all environments.
The aim is for portals to get the user's permission to carry out actions, while keeping it as implicit as possible, avoiding an "are you sure?" step where feasible. For example, if an application asks to open a file, the user's permission is implicitly given by them selecting the file in the file-chooser dialog and pressing OK: if they do not want this application to open a file at all, they can deny permission by cancelling. Similarly, if an application asks to stream webcam data, the UX we expect is for GNOME's Cheese app (or a similar non-GNOME app) to appear, open the webcam to provide a preview window so they can see what they are about to send, but not actually start sending the stream to the requesting app until the user has pressed a "Start" button. When defining the API "contracts" to be provided by applications in that situation, we will need to be clear about whether the provider is expected to obtain confirmation like this: in most cases I would anticipate that it is.
One security trade-off here is that we have to have a small amount of trust in the providing app. For example, continuing the example of Cheese as a webcam provider, Cheese could (and perhaps should) be a contained app itself, whether via something like Flatpak, an LSM like AppArmor or both. If Cheese is compromised somehow, then whenever it is running, it would be technically possible for it to open the webcam, stream video and send it to a hostile third-party application. We concluded that this is an acceptable trade-off: each application needs to be trusted with the privileges that it needs to do its job, and we should not put up barriers that are easy to circumvent or otherwise serve no purpose.
The main (only?) portal so far is the file chooser, in which the contained
application asks the wider system to show an "Open..." dialog, and if the user
selects a file, it is returned to the contained application through a FUSE
filesystem, the document portal. The reference implementation of the UX for
this is in GTK, and is basically a
GtkFileChooserDialog. The intention is
that other environments such as KDE will substitute their own equivalent.
Other planned portals include:
- image capture (scanner/camera)
- opening a specified URI
- this needs design feedback on how it should work for non-http(s)
- sharing content, for example on social networks (like Android's Sharing menu)
- proxying joystick/gamepad input (perhaps via Wayland or FUSE, or perhaps by modifying libraries like SDL with a new input source)
- network proxies (
GProxyResolver) and availability (
- contacts/address book, probably vCard-based
- notifications, probably based on freedesktop.org Notifications
- video streaming (perhaps using Pinot, analogous to PulseAudio but for video)
Environment variables
GNOME on Wayland currently has a problem with environment variables:
there are some traditional ways to set environment variables for X11
sessions or login shells using shell script fragments (
/etc/profile.d), but these do not apply to
Wayland, or to noninteractive login environments like
cron and
systemd --user. We are also keen to avoid requiring a Turing-complete shell
language during session startup, because it's difficult to reason about
and potentially rather inefficient.
Some uses of environment variables can be dismissed as unnecessary or even
unwanted, similar to the statement in Debian Policy §9.9: "A program must not
depend on environment variables to get reasonable defaults." However,
there are two common situations where environment variables can be necessary
for proper OS integration: search-paths like
$XDG_DATA_DIRS and
$PYTHONPATH (particularly necessary for things like Flatpak), and
optionally-loaded modules like
$GTK_MODULES and
where a package influences the configuration of another package.
There is a stopgap solution in GNOME's gdm display manager,
/usr/share/gdm/env.d, but this is gdm-specific and
insufficiently expressive to provide the functionality needed by
Flatpak: "set
XDG_DATA_DIRS to its specified default value if unset,
then add a couple of extra paths".
pam_env comes closer — PAM is run at every transition from "no user logged
in" to "user can execute arbitrary code as themselves" — but it doesn't
.d fragments, which are required if we want distribution packages
to be able to extend search paths.
pam_env also turns off per-user
configuration by default, citing security concerns.
I'll write more about this when I have a concrete proposal for how to solve it.
I think the best solution is probably a PAM module similar to
pam_env but
.d directories, either by modifying
pam_env directly or
out-of-tree, combined with clarifying what the security concerns for
per-user configuration are and how they can be avoided.
Relocatable binary packages
On Windows and OS X, various GLib APIs automatically discover where the
application binary is located and use search paths relative to that;
for example, if
C:\myprefix\bin\app.exe is running, GLib might put
C:\myprefix\share into the result of
so that the application can ask to load
app/data.xml from the data
directories and get
C:\myprefix\share\app\data.xml. We would like
to be able to do the same on Linux, for example so that the apps in a
Flatpak or Snap package can be constructed from RPM or dpkg packages without
needing to be recompiled for a different
--prefix, and so that other
third-party software packages like the games on Steam and gog.com can
easily locate their own resources.
Relatedly, there are currently no well-defined semantics for what happens
when a
.desktop file or a D-Bus
.service file has
The meaning of
Exec=foo is well-defined (it searches
$PATH) and the
meaning of
Exec=/opt/whatever/bin/foo is obvious. When this came up in
D-Bus previously, my assertion was that the meaning should be the same as
.desktop files, whatever that is.
We agreed to propose that the meaning of a non-absolute path in a
.service file should be interpreted relative to the directory
where the
.desktop or
.service file was found: for example, if
/opt/whatever/share/applications/foo.desktop says
/opt/whatever/bin/foo would be the right thing to execute.
While preparing a mail to the freedesktop and D-Bus mailing lists proposing
this, I found that I had
proposed the same thing
almost 2 years ago...
this time I hope I can actually make it happen!
Flatpak and OSTree bug fixing
On the way to the hackfest, and while the discussion moved to topics that I didn't have useful input on, I spent some time fixing up the Debian packaging for Flatpak and its dependencies. In particular, I did my first upload as a co-maintainer of bubblewrap, uploaded ostree to unstable (with the known limitation that the grub, dracut and systemd integration is missing for now since I haven't been able to test it yet), got most of the way through packaging Flatpak 0.6.5 (which I'll upload soon), cherry-picked the right patches to make ostree compile on Debian 8 in an effort to make backports trivial, and spent some time disentangling a flatpak test failure which was breaking the Debian package's installed-tests. I'm still looking into ostree test failures on little-endian MIPS, which I was able to reproduce on a Debian porterbox just before the end of the hackfest.
OSTree + Debian
I also had some useful conversations with developers from Endless, who recently opened up a version of their OSTree build scripts for public access. Hopefully that information brings me a bit closer to being able to publish a walkthrough for how to deploy a simple Debian derivative using OSTree (help with that is very welcome of course!).
GTK life-cycle and versioning
The life-cycle of GTK releases has already been mentioned here and elsewhere, and there are some interesting responses in the comments on my earlier blog post.
It's important to note that what we discussed at the hackfest is only a proposal: a hackfest discussion between a subset of the GTK maintainers and a small number of other GTK users (I am in the latter category) doesn't, and shouldn't, set policy for all of GTK or for all of GNOME. I believe the intention is that the GTK maintainers will discuss the proposals further at GUADEC, and make a decision after that.
As I said before, I hope that being more realistic about API and ABI guarantees can avoid GTK going too far towards either of the possible extremes: either becoming unable to advance because it's too constrained by compatibility, or breaking applications because it isn't constrained enough. The current situation, where it is meant to be compatible within the GTK 3 branch but in practice applications still sometimes break, doesn't seem ideal for anyone, and I hope we can do better in future.
Thanks to everyone involved, particularly:
- Matthias Clasen, who organised the hackfest and took a lot of notes
- Allison Lortie, who provided on-site cat-herding and led us to some excellent restaurants
- Red Hat Inc., who provided the venue (a conference room in their Toronto office), snacks, a lot of coffee, and several participants
- my employers Collabora Ltd., who sponsored my travel and accomodation
Allison Lortie has provoked a lot of comment with her blog post on a new proposal for how GTK is versioned. Here's some more context from the discussion at the GTK hackfest that prompted that proposal: there's actually quite a close analogy in how new Debian versions are developed.
The problem we're trying to address here is the two sides of a trade-off:
- Without new development, a library (or an OS) can't go anywhere new
- New development sometimes breaks existing applications
Historically, GTK has aimed to keep compatible within a major version, where major versions are rather far apart (GTK 1 in 1998, GTK 2 in 2002, GTK 3 in 2011, GTK 4 somewhere in the future). Meanwhile, fixing bugs, improving performance and introducing new features sometimes results in major changes behind the scenes. In an ideal world, these behind-the-scenes changes would never break applications; however, the world isn't ideal. (The Debian analogy here is that as much as we aspire to having the upgrade from one stable release to the next not break anything at all, I don't think we've ever achieved that in practice - we still ask users to read the release notes, even though ideally that wouldn't be necessary.)
In particular, the perceived cost of doing a proper ABI break (a fully parallel-installable GTK 4) means there's a strong temptation to make changes that don't actually remove or change C symbols, but are clearly an ABI break, in the sense that an application that previously worked and was considered correct no longer works. A prominent recent example is the theming changes in GTK 3.20: the ABI in terms of functions available didn't change, but what happens when you call those functions changed in an incompatible way. This makes GTK hard to rely on for applications outside the GNOME release cycle, which is a problem that needs to be fixed (without stopping development from continuing).
The goal of the plan we discussed today is to decouple the latest branch of development, which moves fast and sometimes breaks API, from the API-stable branches, which only get bug fixes. This model should look quite familiar to Debian contributors, because it's a lot like the way we release Debian and Ubuntu.
In Debian, at any given time we have a development branch (testing/unstable) - currently "stretch", the future Debian 9. We also have some stable branches, of which the most recent are Debian 8 "jessie" and Debian 7 "wheezy". Different users of Debian have different trade-offs that lead them to choose one or the other of these. Users who value stability and want to avoid unexpected changes, even at a cost in terms of features and fixes for non-critical bugs, choose to use a stable release, preferably the most recent; they only need to change what they run on top of Debian for OS API changes (for instance webapps, local scripts, or the way they interact with the GUI) approximately every 2 years, or perhaps less often than that with the Debian-LTS project supporting non-current stable releases. Meanwhile, users who value the latest versions and are willing to work with a "moving target" as a result choose to use testing/unstable.
The GTK analogy here is really quite close. In the new versioning model, library users who value stability over new things would prefer to use a stable-branch, ideally the latest; library users who want the latest features, the latest bug-fixes and the latest new bugs would use the branch that's the current focus of development. In practice we expect that the latter would be mostly GNOME projects. There's been some discussion at the hackfest about how often we'd have a new stable-branch: the fastest rate that's been considered is a stable-branch every 2 years, similar to Ubuntu LTS and Debian, but there's no consensus yet on whether they will be that frequent in practice.
How many stable versions of GTK would end up shipped in Debian depends on how rapidly projects move from "old-stable" to "new-stable" upstream, how much those projects' Debian maintainers are willing to patch them to move between branches, and how many versions the release team will tolerate. Once we reach a steady state, I'd hope that we might have 1 or 2 stable-branched versions active at a time, packaged as separate parallel-installable source packages (a lot like how we handle Qt). GTK 2 might well stay around as an additional active version just from historical inertia. The stable versions are intended to be fully parallel-installable, just like the situation with GTK 1.2, GTK 2 and GTK 3 or with the major versions of Qt.
For the "current development" version, I'd anticipate that we'd probably only ship one source package, and do ABI transitions for one version active at a time, a lot like how we deal with libgnome-desktop and the evolution-data-server family of libraries. Those versions would have parallel-installable runtime libraries but non-parallel-installable development files, again similar to libgnome-desktop.
At the risk of stretching the Debian/Ubuntu analogy too far, the intermediate "current development" GTK releases that would accompany a GNOME release are like Ubuntu's non-LTS suites: they're more up to date than the fully stable releases (Ubuntu LTS, which has a release schedule similar to Debian stable), but less stable and not supported for as long.
Hopefully this plan can meet both of its goals: minimize breakage for applications, while not holding back the development of new APIs.
Quite a lot has happened in xdg-app since last time I blogged about it. Most noticeably, it isn't called xdg-app any more, having been renamed to Flatpak. It is now available in Debian experimental under that name, and the xdg-app package that was briefly there has been removed. I'm currently in the process of updating Flatpak to the latest version 0.6.4.
The privileged part has also spun off into a separate project, Bubblewrap, which recently had its first release (0.1.0). This is intended as a common component with which unprivileged users can start a container in a way that won't let them escalate privileges, like a more flexible version of linux-user-chroot.
Bubblewrap has also been made available in Debian, maintained by Laszlo Boszormenyi (also maintainer of linux-user-chroot). Yesterday I sent a patch to update Laszlo's packaging for 0.1.0. I'm hoping to become a co-maintainer to upload that myself, since I suspect Flatpak and Bubblewrap might need to track each other quite closely. For the moment, Flatpak still uses its own internal copy of Bubblewrap, but I consider that to be a bug and I'd like to be able to fix it soon.
At some point I also want to experiment with using Bubblewrap to sandbox some of the game engines that are packaged in Debian: networked games are a large attack surface, and typically consist of the sort of speed-optimized C or C++ code that is an ideal home for security vulnerabilities. I've already made some progress on jailing game engines with AppArmor, but making sensitive files completely invisible to the game engine seems even better than preventing them from being opened.
Next weekend I'm going to be heading to Toronto for the GTK Hackfest, primarily to to talk to GNOME and Flatpak developers about their plans for sandboxing, portals and Flatpak. Hopefully we can make some good progress there: the more I know about the state of software security, the less happy I am with random applications all being equally privileged. Newer display technologies like Wayland and Mir represent an opportunity to plug one of the largest holes in typical application containerization, which is a major step in bringing sandboxes like Flatpak and Snap from proof-of-concept to a practical improvement in security.
Other next steps for Flatpak in Debian:
- To get into the next stable release (Debian 9), Flatpak needs to move
testing. I've taken the first step towards that by uploading
libgsystemto unstable. Before Flatpak can follow, OSTree also needs to move.
- Now that it's in Debian, please report bugs in the usual Debian way or send patches to fix bugs: Flatpak, OSTree, libgsystem.
- In particular, there are some OSTree bugs tagged
help. I'd appreciate contributions to the OSTree packaging from people who are interested in using it to deploy
dpkg-based operating systems - I'm primarily looking at it from the Flatpak perspective, so the boot/OS side of it isn't so well tested. Red Hat have
rpm-ostree, and I believe Endless do something analogous to build OS images with
dpkg, but I haven't had a chance to look into that in detail yet.
- Co-maintainers for Flatpak, OSTree, libgsystem would also be very welcome.
Over the last few days I've been at the GNOME Developer Experience hackfest in Brussels, looking into xdg-app and how best to use it in Debian and Debian derivatives.
xdg-app is basically a way to run "non-core" software on Linux distributions, analogous to apps on Android and iOS. It doesn't replace distributions like Debian or packaging systems, but it adds a layer above them. It's mostly aimed towards third-party apps obtained from somewhere that isn't your distribution vendor, aiming to address a few long-standing problems in that space:
There's no single ABI that can be called "a standard Linux system" in the same way there would be for Windows or OS X or Android or whatever, apart from LSB which is rather limited. Testing that a third-party app "works on Linux", or even "works on stable Linux releases from 2015", involves a combinatorial explosion of different distributions, desktop environments and local configurations. Steam uses the Steam Runtime, a chroot environment closely resembling Ubuntu 12.04 LTS; other vendors tend to test on a vaguely recent Ubuntu LTS and leave it at that.
There's no widely-supported mechanism for installing third-party applications as an ordinary user. gog.com used to distribute Ubuntu- and Debian-compatible
.debfiles, but installing a
.debinvolves running arbitrary vendor-supplied scripts as root, which should worry anyone who wants any sort of privilege-separation. (They have now switched to executable self-extracting installers, which involve running arbitrary vendor-supplied scripts as an ordinary user... better, but not perfect.)
Relatedly, the third-party application itself runs with the user's full privileges: a malicious or security-buggy third-party application can do more or less anything, unless you either switch to a different uid to run third-party apps, or use a carefully-written, app-specific AppArmor profile or equivalent.
To address the first point, each application uses a specified "runtime", which is available as /usr inside its sandbox. This can be used to run application bundles with multiple, potentially incompatible sets of dependencies within the same desktop environment. A runtime can be updated within its branch - for instance, if an application uses the "GNOME 3.18" runtime (consisting of a basic Linux system, the GNOME 3.18 libraries, other related libraries like Mesa, and their recursive dependencies like libjpeg), it can expect to see minor-version updates from GNOME 3.18.x (including any security updates that might be necessary for the bundled libraries), but not a jump to GNOME 3.20.
To address the second issue, the plan is for application bundles to be available as a single file, containing metadata (such as the runtime to use), the app itself, and any dependencies that are not available in the runtime (which the app vendor is responsible for updating if necessary). However, the primary way to distribute and upgrade runtimes and applications is to package them as OSTree repositories, which provide a git-like content-addressed filesystem, with efficient updates using binary deltas. The resulting files are hard-linked into place.
To address the last point, application bundles run partially isolated from the wider system, using containerization techniques such as namespaces to prevent direct access to system resources. Resources from outside the sandbox can be accessed via "portal" services, which are responsible for access control; for example, the Documents portal (the only one, so far) displays an "Open" dialog outside the sandbox, then allows the application to access only the selected file.
xdg-app for Debian
One thing I've been doing at this hackfest is improving the existing Debian/Ubuntu packaging for xdg-app (and its dependencies ostree and libgsystem), aiming to get it into a state where I can upload it to Debian experimental. Because xdg-app aims to be a general freedesktop project, I'm currently intending to make it part of the "Utopia" packaging team alongside projects like D-Bus and polkit, but I'm open to suggestions if people want to co-maintain it elsewhere.
In the process of updating xdg-app, I sent various patches to Alex, mostly fixing build and test issues, which are in the new 0.4.8 release.
I'd appreciate co-maintainers and further testing for this stuff, particularly ostree: ostree is primarily a whole-OS deployment technology, which isn't a use-case that I've tested, and in particular ostree-grub2 probably doesn't work yet.
Source code:
- https://anonscm.debian.org/cgit/users/smcv/libgsystem.git
- https://anonscm.debian.org/cgit/users/smcv/ostree.git
- https://anonscm.debian.org/cgit/users/smcv/xdg-app.git
Binaries (no trust path, so only use these if you have a test VM):
deb https://people.debian.org/~smcv/xdg-app xdg-app main
The "Hello, World" of xdg-apps
Another thing I set out to do here was to make a runtime and an app out of Debian packages. Most of the test applications in and around GNOME use the "freedesktop" or "GNOME" runtimes, which consist of a Yocto base system and lots of RPMs, are rebuilt from first principles on-demand, and are extensive and capable enough that they make it somewhat non-obvious what's in an app or a runtime.
So, here's a step-by-step route through xdg-app, first using typical GNOME instructions, but then using the simplest GUI app I could find - xvt, a small xterm clone. I'm using a Debian testing (stretch) x86_64 virtual machine for all this. xdg-app currently requires systemd-logind to put users and apps in cgroups, either with systemd as pid 1 (systemd-sysv) or systemd-shim and cgmanager; I used the default systemd-sysv. In principle it could work with plain cgmanager, but nobody has contributed that support yet.
Demonstrating an existing xdg-app
Debian's kernel is currently patched to be able to allow unprivileged users to create user namespaces, but make it runtime-configurable, because there have been various security issues in that feature, making it a security risk for a typical machine (and particularly a server). Hopefully unprivileged user namespaces will soon be secure enough that we can enable them by default, but for now, we have to do one of three things to let xdg-app use them:
enable unprivileged user namespaces via sysctl:
sudo sysctl kernel.unprivileged_userns_clone=1
make xdg-app root-privileged (it will keep
CAP_SYS_ADMINand drop the rest):
sudo dpkg-statoverride --update --add root root 04755 /usr/bin/xdg-app-helper
make xdg-app slightly less privileged:
sudo setcap cap_sys_admin+ep /usr/bin/xdg-app-helper
First, we'll need a runtime. The standard xdg-app tutorial would tell you to download the "GNOME Platform" version 3.18. To do that, you'd add a remote, which is a bit like a git remote, and a bit like an apt repository:
$ wget http://sdk.gnome.org/keys/gnome-sdk.gpg
$ xdg-app remote-add --user --gpg-import=gnome-sdk.gpg gnome \
(I'm ignoring considerations like trust paths and security here, for brevity; in real life, you'd want to obtain the signing key via https and/or have a trust path to it, just like you would for a secure-apt signing key.)
You can list what's available in a remote:
$ xdg-app remote-ls --user gnome
The Platform runtimes are what we want here: they are collections of runtime libraries with which you can run an application. The Sdk runtimes add development tools, header files, etc. to be able to compile apps that will be compatible with the Platform.
For now, all we want is the GNOME 3.18 platform:
$ xdg-app install --user gnome org.gnome.Platform 3.18
Next, we can install an app that uses it, from Alex Larsson's nightly builds of a subset of GNOME. The server they're on doesn't have a great deal of bandwidth, so be nice :-)
$ wget http://18.104.22.168/keys/nightly.gpg
$ xdg-app remote-add --user --gpg-import=nightly.gpg nightly \
$ xdg-app install --user nightly org.mypaint.MypaintDevel
We now have one app, and the runtime it needs:
$ xdg-app list
$ xdg-app run org.mypaint.MypaintDevel
[you see a GUI window]
Digression: what's in a runtime?
Behind the scenes, xdg-app runtimes and apps are both OSTree trees.
This means the
ostree tool, from the package of the same name, can be
used to inspect them.
$ sudo apt install ostree
$ ostree refs --repo ~/.local/share/xdg-app/repo
A "ref" has roughly the same meaning as in git: something like a branch or
a tag.
ostree can list the directory tree that it represents:
$ ostree ls --repo ~/.local/share/xdg-app/repo \
d00755 0 0 0 /
-00644 0 0 493 /metadata
d00755 0 0 0 /files
$ ostree ls --repo ~/.local/share/xdg-app/repo \
runtime/org.gnome.Platform/x86_64/3.18 /files
d00755 0 0 0 /files
l00777 0 0 0 /files/local -> ../var/usrlocal
l00777 0 0 0 /files/sbin -> bin
d00755 0 0 0 /files/bin
d00755 0 0 0 /files/cache
d00755 0 0 0 /files/etc
d00755 0 0 0 /files/games
d00755 0 0 0 /files/include
d00755 0 0 0 /files/lib
d00755 0 0 0 /files/lib64
d00755 0 0 0 /files/libexec
d00755 0 0 0 /files/share
d00755 0 0 0 /files/src
You can see that
/files in a runtime is basically a copy of
This is not coincidental: the runtime's
/files gets mounted at
inside the xdg-app container. There is also some metadata, which is in
the ini-like syntax seen in
.desktop files:
$ ostree cat --repo ~/.local/share/xdg-app/repo \
runtime/org.gnome.Platform/x86_64/3.18 /metadata
[Extension org.freedesktop.Platform.GL]
[Extension org.freedesktop.Platform.Timezones]
[Extension org.gnome.Platform.Locale]
Looking at an app, the situation is fairly similar:
$ ostree ls --repo ~/.local/share/xdg-app/repo \
d00755 0 0 0 /
-00644 0 0 258 /metadata
d00755 0 0 0 /export
d00755 0 0 0 /files
This time,
/files maps to what will become
/app for the application, which
was compiled with
$ ostree ls --repo ~/.local/share/xdg-app/repo \
app/org.mypaint.MypaintDevel/x86_64/master /files
d00755 0 0 0 /files
-00644 0 0 4599 /files/manifest.json
d00755 0 0 0 /files/bin
d00755 0 0 0 /files/lib
d00755 0 0 0 /files/share
There is also a
/export directory, which is made visible to the host system
so that the contained app can appear as a "first-class citizen" in menus:
$ ostree ls --repo ~/.local/share/xdg-app/repo \
app/org.mypaint.MypaintDevel/x86_64/master /export
d00755 0 0 0 /export
d00755 0 0 0 /export/share
user@debian:~$ ostree ls --repo ~/.local/share/xdg-app/repo \
app/org.mypaint.MypaintDevel/x86_64/master /export/share
d00755 0 0 0 /export/share
d00755 0 0 0 /export/share/app-info
d00755 0 0 0 /export/share/applications
d00755 0 0 0 /export/share/icons
user@debian:~$ ostree ls --repo ~/.local/share/xdg-app/repo \
app/org.mypaint.MypaintDevel/x86_64/master /export/share/applications
d00755 0 0 0 /export/share/applications
-00644 0 0 715 /export/share/applications/org.mypaint.MypaintDevel.desktop
$ ostree cat --repo ~/.local/share/xdg-app/repo \
app/org.mypaint.MypaintDevel/x86_64/master \
[Desktop Entry]
Name=(Nightly) MyPaint
Exec=mypaint %f
Comment=Painting program for digital artists
GenericName=Raster Graphics Editor
GenericName[fr]=Éditeur d'Image Matricielle
Again, there's some metadata:
$ ostree cat --repo ~/.local/share/xdg-app/repo \
app/org.mypaint.MypaintDevel/x86_64/master /metadata
[Extension org.mypaint.MypaintDevel.Debug]
Building a runtime, probably the wrong way
The way in which the reference/demo runtimes and containers are generated is... involved. As far as I can tell, there's a base OS built using Yocto, and the actual GNOME bits come from RPMs. However, we don't need to go that far to get a working runtime.
In preparing this runtime I'm probably completely ignoring some best-practices and tools - but it works, so it's good enough.
First we'll need a repository:
$ sudo install -d -o$(id -nu) /srv/xdg-apps
$ ostree init --repo /srv/xdg-apps
I'm just keeping this local for this demonstration, but you could rsync it
to a web server's exported directory or something - a lot like a git
repository, it's just a collection of files. We want everything in
because that's what xdg-app expects, hence
$ sudo mount -t tmpfs -o mode=0755 tmpfs /mnt
$ sudo debootstrap --arch=amd64 --include=libx11-6,usrmerge \
--variant=minbase stretch /mnt http://192.168.122.1:3142/debian
$ sudo mkdir /mnt/runtime
$ sudo mv /mnt/usr /mnt/runtime/files
This obviously has a lot of stuff in it that we don't need - most obviously init, apt and dpkg - but it's Good Enough™.
We will also need some metadata. This is sufficient:
$ sudo sh -c 'cat > /mnt/runtime/metadata'
That's a runtime. We can commit it to ostree, and generate xdg-app metadata:
$ ostree commit --repo /srv/xdg-apps \
--branch runtime/org.debian.Debootstrap/x86_64/8.20160130 \
$ fakeroot ostree commit --repo /srv/xdg-apps \
--branch runtime/org.debian.Debootstrap/x86_64/8.20160130
$ fakeroot xdg-app build-update-repo /srv/xdg-apps
(I'm not sure why ostree and xdg-app report "Operation not permitted" when we aren't root or fakeroot - feedback welcome.)
build-update-repo would presumably also be the right place to GPG-sign your repository, if you were doing that.
We can add that as another xdg-app remote:
$ xdg-app remote-add --user --no-gpg-verify local file:///srv/xdg-apps
$ xdg-app remote-ls --user local
Building an app, probably the wrong way
The right way to build an app is to build a "SDK" runtime - similar to that
platform runtime, but with development files and tools - and recompile the app
and any missing libraries with
./configure --prefix=/app && make && make install. I'm not going to do that,
because simplicity is nice, and I'm reasonably sure xvt doesn't actually
/usr into the binary:
$ install -d xvt-app/files/bin
$ sudo apt-get --download-only install xvt
$ dpkg-deb --fsys-tarfile /var/cache/apt/archives/xvt_2.1-20.1_amd64.deb \
| tar -xvf - ./usr/bin/xvt
$ mv usr xvt-app/files
Again, we'll need metadata, and it's much simpler than the more production-quality GNOME nightly builds:
$ cat > xvt-app/metadata
$ fakeroot ostree commit --repo /srv/xdg-apps \
--branch app/org.debian.packages.xvt/x86_64/2.1-20.1 xvt-app
$ fakeroot xdg-app build-update-repo /srv/xdg-apps
Updating appstream branch
No appstream data for runtime/org.debian.Debootstrap/x86_64/8.20160130
No appstream data for app/org.debian.packages.xvt/x86_64/2.1-20.1
Updating summary
$ xdg-app remote-ls --user local
The obligatory screenshot
OK, good, now we can install it:
$ xdg-app install --user local org.debian.Debootstrap 8.20160130
$ xdg-app install --user local org.debian.packages.xvt 2.1-20.1
$ xdg-app run --branch=2.1-20.1 org.debian.packages.xvt
and you can play around with the shell in the
xvt and see what you
can and can't do in the container.
I'm sure there were better ways to do most of this, but I think there's value in having such a simplistic demo to go alongside the various GNOMEish apps.
- Betacowork Coworking Brussels and ICAB Business & Technology Incubator hosted the hackfest, with Collabora providing snacks, and the GNOME Foundation supporting the hackfest in general;
- Collabora also sponsored my travel, accommodation and time;
- my colleague Philip Withnall organised the hackfest.
Thanks to all those!
Discworld Noir was a superb adventure game, but is also notoriously unreliable, even in Windows on real hardware; using Wine is just not going to work. After many attempts at bringing it back into working order, I've settled on an approach that seems to work: now that qemu and libvirt have made virtualization and emulation easy, I can run it in a version of Windows that was current at the time of its release. Unfortunately, Windows 98 doesn't virtualize particularly well either, so this still became a relatively extensive yak-shaving exercise.
These instructions assume that
/srv/virt is a suitable place to put
disk images, but you can use anywhere you want.
The emulated PC
After some trial and error, it seems to work if I configure qemu to emulate the following:
- Fully emulated hardware instead of virtualization (
qemu-system-i386 -no-kvm)
- Intel Pentium III
- Intel i440fx-based motherboard with ACPI
- Real-time clock in local time
- No HPET
- 256 MiB RAM
- IDE primary master: IDE hard disk (I used 30 GiB, which is massively overkill for this game; qemu can use sparse files so it actually ends up less than 2 GiB on the host system)
- IDE primary slave, secondary master, secondary slave: three CD-ROM drives
- PS/2 keyboard and mouse
- Realtek AC97 sound card
- Cirrus video card with 16 MiB video RAM
A modern laptop CPU is an order of magnitude faster than what Discworld Noir needs, so full emulation isn't a problem, despite being inefficient.
There is deliberately no networking, because Discworld Noir doesn't need it, and a 17 year old operating system with no privilege separation is very much not safe to use on the modern Internet!
Software needed
- Windows 98 installation CD-ROM as a
.isofile (
cp /dev/cdrom windows98.iso) - in theory you could also use a real optical drive, but my laptop doesn't usually have one of those. I used the OEM disc, version 4.10.1998 (that's the original Windows 98, not the Second Edition), which came with a long-dead PC, and didn't bother to apply any patches.
- A Windows 98 license key. Again, I used an OEM key from a past PC.
- A complete set of Discworld Noir (English) CD-ROMs as
.isofiles. I used the UK "Sold Out Software" budget release, on 3 CDs.
- A multi-platform Realtek AC97 audio driver.
Windows 98 installation
It seems to be easiest to do this bit by running qemu-system-i386 manually:
qemu-img create -f qcow2 /srv/virt/discworldnoir.qcow2 30G
qemu-system-i386 -hda /srv/virt/discworldnoir.qcow2 \
-drive media=cdrom,format=raw,file=/srv/virt/windows98.iso \
-no-kvm -vga cirrus -m 256 -cpu pentium3 -localtime
Don't start the installation immediately. Instead, boot the installation CD to a DOS prompt with CD-ROM support. From here, run
and create a single partition filling the emulated hard disk. When
finished, hard-reboot the virtual machine (press Ctrl+C on the
qemu-system-i386 process and run it again).
The DOS
FORMAT.COM utility is on the Windows CD-ROM but not in the root
directory or the default
%PATH%, so you'll have to run:
d:\win98\format c:
to create the FAT filesystem. You might have to reboot again at this point.
The reason for doing this the hard way is that the Windows 98 installer
doesn't detect qemu as supporting ACPI. You want ACPI support, so that
Windows will issue
IDLE instructions from its idle loop, instead of
occupying a CPU core with a busy-loop. To get that, boot to a DOS
prompt again, and use:
setup /p j /iv
/p j forces ACPI support
(Thanks to "Richard S" on the Virtualbox forums
for this tip.)
/iv is unimportant, but it disables the annoying "billboards" during
installation, which advertised once-exciting features like support for
dial-up modems and JPEG wallpaper.
I used a "Typical" installation; there didn't seem to be much point in tweaking the installed package set when everything is so small by modern standards.
Windows 98 has built-in support for the Cirrus VGA card that we're emulating, so after a few reboots, it should be able to run in a semi-modern resolution and colour depth. Discworld Noir apparently prefers a 640 × 480 × 16-bit video mode, so right-click on the desktop background, choose Properties and set that up.
Audio drivers
This is the part that took me the longest to get working. Of the sound cards that qemu can emulate, Windows 98 only supports the SoundBlaster 16 out of the box. Unfortunately, the Soundblaster 16 emulation in qemu is incomplete, and in particular version 2.1 (as shipped in Debian 8) has a tendency to make Windows lock up during boot.
I've seen advice in various places to emulate an Eqsonic ES1370 (SoundBlaster AWE 64), but that didn't work for me: one of the drivers I tried caused Windows to lock up at a black screen during boot, and the other didn't detect the emulated hardware.
The next-oldest sound card that qemu can emulate is a Realtek AC97, which was often found integrated into motherboards in the late 1990s. This one seems to work, with the "A400" driver bundle linked above. For Windows 98 first edition, you need a driver bundle that includes the old "VXD" drivers, not just the "WDM" drivers supported by Second Edition and newer.
The easiest way to get that into qemu seems to be to turn it into a CD image:
genisoimage -o /srv/virt/discworldnoir-drivers.iso WDM_A400.exe
qemu-system-i386 -hda /srv/virt/discworldnoir.qcow2 \
-drive media=cdrom,format=raw,file=/srv/virt/windows98.iso \
-drive media=cdrom,format=raw,file=/srv/virt/discworldnoir-drivers.iso \
-no-kvm -vga cirrus -m 256 -cpu pentium3 -localtime -soundhw ac97
Run the installer from E:, then reboot with the Windows 98 CD inserted, and Windows should install the driver.
Installing Discworld Noir
Boot up the virtual machine with CD 1 in the emulated drive:
qemu-system-i386 -hda /srv/virt/discworldnoir.qcow2 \
-drive media=cdrom,format=raw,file=/srv/virt/DWN_ENG_1.iso \
-no-kvm -vga cirrus -m 256 -cpu pentium3 -localtime -soundhw ac97
You might be thinking "... why not insert all three CDs into D:, E: and F:?"
but the installer expects subsequent disks to appear in the same drive
where CD 1 was initially, so that won't work. Instead, when prompted for
a new CD, switch to the qemu monitor with Ctrl+Alt+2 (note that this
is 2, not F2). At the
(qemu) prompt,
info block to see a list of emulated drives, then issue a
command like
change ide0-cd1 /srv/virt/DWN_ENG_2.iso
to swap the CD. Then switch back to Windows' console with Ctrl+Alt+1 and continue installation. I used a Full installation of Discworld Noir.
Transferring the virtual machine to GNOME Boxes
Having finished the "control freak" phase of installation, I wanted a slightly more user-friendly way to run this game, so I transferred the virtual machine to be used by libvirtd, which is the backend for both GNOME Boxes and virt-manager:
virsh create discworldnoir.xml
Here is the configuration I used. It's a mixture of automatic configuration from virt-manager, and hand-edited configuration to make it match the qemu-system-i386 command-line.
Running the game
If all goes well, you should now see a
discworldnoir virtual machine
in GNOME Boxes, in which you can boot Windows 98 and play the game.
Have fun!
Older posts:
This blog is powered by ikiwiki.


text:
If you have cancer that affects the bladder, kidneys, prostate gland and other urological functions, we can help. At CHI Franciscan Cancer Care, you'll receive care from cancer specialists, who have the experience and expertise in treating people with prostate and urological cancers.
We offer screening for prostate cancer for men ages 55 years and older and those at high risk. Learn more about prostate cancer screening.
If screening shows that you may have prostate cancer, our urologic oncologists can confirm prostate cancer through:
Our urologic oncology team is board certified and fellowship trained, bringing national experience from the top cancer centers in the county. Our cancer specialists are part of a multidisciplinary team approach to treating prostate and urological cancers. Experts from several specialties will work together to design a personalized treatment plan specifically for your individual case, which may include one or more of the following:
Because we're part of CHI, one of the largest health care providers in the country, you'll have access to the latest research and innovations through the CHI Institute for Research and Innovation as well as national clinical trials as part of our participation in the National Cancer Institute Community Oncology Research Program (NCORP).
Ask your doctor about how to access clinical trials.
You can receive treatment for prostate and urological cancers at our premier treatment centers conveniently located throughout the Puget Sound area:
Your first visit is with a board-certified surgeon or a medical oncologist, who will discuss the next steps with you. Find a surgeon or medical oncologist.
© 2015 CHI Franciscan Health


text:
Browse By:
All Topics » Justice and Law Enforcement » Program management
Program management (21 - 30 of 467 items)
Information Sharing: Agencies Could Better Coordinate to Reduce Overlap in Field-Based Activities
GAO-13-471: Published: Apr 4, 2013. Publicly Released: Apr 4, 2013.
Five types of field-based information-sharing entities are supported, in part, by the federal government--Joint Terrorism Task Forces, Field Intelligence Groups, Regional Information Sharing Systems (RISS) centers, state and major urban area fusion centers, and High Intensity Drug Trafficking Area (HIDTA) Investigative Support Centers--and have distinct missions, roles, and responsibilities. Howev...
Asset Forfeiture Programs: Justice and Treasury Should Determine Costs and Benefits of Potential Consolidation
GAO-12-972: Published: Sep 12, 2012. Publicly Released: Sep 12, 2012.
Since 2003, the Departments of Justice (Justice) and the Treasury (Treasury) have taken some steps to explore coordinating forfeiture program efforts, including sharing a website for posting notifications and pursuing a contract for seizure efforts abroad. However, limited progress has been made to consolidate the management of their assets. According to department officials, when Congress establi...
Medicare: Important Steps Have Been Taken, but More Could Be Done to Deter Fraud
GAO-12-671T: Published: Apr 24, 2012. Publicly Released: Apr 24, 2012.
The Centers for Medicare & Medicaid Services (CMS)the agency that administers Medicarehas made progress in implementing several key strategies GAO identified in prior work as helpful in protecting Medicare from fraud; however, some actions that could help combat fraud remain incomplete.Provider Enrollment: GAOs previous work found persistent weaknesses in Medicares enrollme...
Indian Health Service: Increased Oversight Needed to Ensure Accuracy of Data Used for Estimating Contract Health Service Need
GAO-11-767: Published: Sep 23, 2011. Publicly Released: Sep 23, 2011.
The Indian Health Service (IHS), an agency in the Department of Health and Human Services (HHS), provides health care to American Indians and Alaska Natives. When care at an IHS-funded facility is unavailable, IHS's contract health services (CHS) program pays for care from external providers if the patient meets certain requirements and funding is available. The Patient Protection and Affordable C...
Office of National Drug Control Policy: Agencies View the Budget Process as Useful for Identifying Priorities, but Challenges Exist
GAO-11-261R: Published: May 2, 2011. Publicly Released: May 2, 2011.
Illicit drug use endangers public health and safety and depletes financial resources. According to the Office of National Drug Control Policy (ONDCP), each day in this country, an estimated 8,000 Americans illegally consume a drug for the first time and the risks posed by their drug use--like that of the estimated 20 million individuals that already use illicit drugs--will radiate to their familie...
Secure Border Initiative: DHS Needs to Strengthen Management and Oversight of Its Prime Contractor
GAO-11-6: Published: Oct 18, 2010. Publicly Released: Oct 18, 2010.
The Department of Homeland Security's (DHS) Secure Border Initiative Network (SBInet) is to place surveillance systems along our nation's borders and provide Border Patrol command centers with the imagery and related tools and information needed to detect breaches and make agent deployment decisions. To deliver SBInet, DHS has relied heavily on its prime contractor. Because of the importance of ef...
Disaster Response: Criteria for Developing and Validating Effective Response Plans
GAO-10-969T: Published: Sep 22, 2010. Publicly Released: Sep 22, 2010.
Among the lessons learned from the aftermath of Hurricane Katrina was that effective disaster response requires planning followed by the execution of training and exercises to validate those plans. The Federal Emergency Management Agency (FEMA) is responsible for disaster response planning. This testimony focuses on (1) criteria for effective disaster response planning established in FEMA's Nation...
Drug Control: International Programs Face Significant Challenges Reducing the Supply of Illegal Drugs but Support Broad U.S. Foreign Policy Objectives
GAO-10-921T: Published: Jul 21, 2010. Publicly Released: Jul 21, 2010.
The overall goal of the U.S. National Drug Control Strategy, prepared by the White House Office of National Drug Control Policy (ONDCP), is to reduce illicit drug use in the United States. GAO has issued more than 20 products since 2000 examining U.S.-funded international programs aimed at reducing the supply of drugs. These programs have been implemented primarily in drug source countries, such a...
Federal Bureau of Prisons: BOP Has Mechanisms in Place to Address Most Second Chance Act Requirements and Is Working to Implement an Initiative Designed to Reduce Recidivism
GAO-10-854R: Published: Jul 14, 2010. Publicly Released: Jul 14, 2010.
This letter formally transmits the briefing in response to the Conference Report accompanying the Fiscal Year 2010 Consolidated Appropriations Act (H.R. Rep. No. 111-366, at 673-74 (2009) (Conf. Rep)), which directed us to evaluate BOP's strategic approach to budgeting for its inmate re-entry programs, including activities related to the Second Chance Act (SCA). To conduct this work, we analyzed t...
Legal Services Corporation: Improvements Needed in Controls over Grant Awards and Grantee Program Effectiveness
GAO-10-540: Published: Jun 11, 2010. Publicly Released: Jul 13, 2010.
The Legal Services Corporation (LSC) was created as a private, nonprofit corporation to support legal assistance for low-income individuals on civil legal matters, primarily through federal grants and is primarily funded through federal appropriations. Effective internal controls over grant awards and oversight of grantees' performance are critical to LSC's mission. GAO and the LSC Inspector Gener...


text:
But fear not - there is plenty to explore...Shop all Liquid Force Shop sale Liquid Force
This thicker, floatier wakesurfer is perfect for larger riders and smaller wakes, but it's bump-wing squashtail shape gives it the maneuverability of a much smaller board. Computer-machined and hand-finished, Liquid Force s Thruster board gives you a hull and rail profile that generates lift and balances precision carving with forgiveness for a looser feel. If you're looking for a truly surf-inspired wakesurfer setup, the Thruster is your board.
CNC Lightweight Stringered Core Computer-machined and hand-finished from the master file, this construction technique provides precision and durability.
Bump-Wing Squashtail Shape A full tail helps you carve the wake harder, but a release point adds looseness for maneuverability and playfulness.
Single to Double Concave Hull Venturi-hill generates speed and lift. Don't know what the Venturi effect is? Wikipedia it, Bro!
Removable Tri-Fins Use all three fins for extra drive, or switch it up to suit your style.
Full Deck EVA Grooved Traction Pads Positive sure footed grip, right were you need it.
REVIEW SNAPSHOT®by PowerReviews
Reviewed by 2 customers
Sort by
Best Uses
Comments about Liquid Force Thruster Wakesurf Board 2013:
Good for all sizes of Wakes and rider abilities. An ideal board.
Best Uses
Comments about Liquid Force Thruster Wakesurf Board 2013:
Great Board for all wake sizes and abilities


text:
GPS Data for Sony SmartWatch
by: IG88 Apps • 12
All Android applications categories
All Android games categories
by: IG88 Apps • 12
Basic GPS Data control for your Sony SmartWatch
Shows Latitude and Longitude, altitude from GPS and GPS data accuracy.
Swipe up to set the screen to stay on. Swipe down to go back to auto/default screen timeout.
Swipe left or right to change to map display. From there touch the zoom-in and zoom-out corners on the right of the map to zoom in or out on your current location.
Continue left or right to get to current address.
Uses GPS data from phone. Not likely to show anything if GPS is not enabled in your location settings. Leaving GPS on works very well under ICS.
LiveWare™ extension for SmartWatch
Tags: sony gps watch , sony smartwatch google maps , sony smartwatch zoom , sony smartwatch maps , gps watch with map display , free maps ad gps for sony , speedometer smartwatch gratis , google maps for smartwatch , sony smartwatch gps
Users review
from 12 reviews
Download GPS Data for Sony SmartWatch
More actions


text:
Current time:0:00Total duration:9:57
0 energy points
Federal Reserve balance sheet
Analysis of the federal reserve balance sheet as of Feb 2007. Created by Sal Khan.
If you're seeing this message, it means we're having trouble loading external resources on our website.
If you're behind a web filter, please make sure that the domains *.kastatic.org and *.kasandbox.org are unblocked.


text:
Location: Ukraine
Member Since: January 2013
Open for read requests: Yes
Poem / Mystery and Crime
Poem / Poetry
This is where you can leave a short message for the writer. All Quickees are public. To leave a private message, use the private.
If you want to write a quickee (a remark or a hint for example) on this writer's profile, please sign in.


text:
HUF Quality Footwear is proud to introduce Joey Pepper to the team. Shot by Stephen Marino, cut by Martin Reigel.
Name (required)
Email (required)
Cancel Reply
Notify me of follow-up comments by email.
Notify me of new posts by email.
© 2017 Take Five Trading All Rights Reserved.
Facebook | Twitter | Instagram


text:
Onion Roasted Potatoes
|Onion soup mix/Onion mushroom soup
|1 1⁄4 Ounce (1 Envelope Lipton Recipe Secrets)
|All purpose potatoes
|2 Pound, cut into large chunks
|Olive oil/Vegetable oil
|1⁄3 Cup (5.33 tbs)
Preheat oven to 450°F.
In large plastic food bag or bowl, combine all ingredients.
Close bag and shake or toss in bowl until potatoes are evenly coated.
Empty potatoes into shallow baking or roasting pan; discard bag.
Bake, stirring occasionally, 40 minutes or until potatoes are tender and golden brown.
Garnish with chopped fresh parsley, if desired.
Recipe Summary
Rate It
Nutrition Rank
Nutrition Facts
Serving size: Complete recipe
Calories 1439 Calories from Fat 644
% Daily Value*
Total Fat 73 g112.2%
Saturated Fat 10.2 g51%
Trans Fat 0 g
Cholesterol 0 mg
Sodium 2901.9 mg120.9%
Total Carbohydrates 190 g63.4%
Dietary Fiber 22.3 g89.2%
Sugars 8.7 g
Protein 21 g42%
Vitamin A 0.5% Vitamin C 299.9%
Calcium 16% Iron 44%
*Based on a 2000 Calorie diet


text: Fabulous Darling! Nightlife, Cabaret and burlesque Add review 0 Love It Save it 0 Add review 0 Love It Save it Time Out says Details Users say Time Out says Cabaret, soul, close-harmony and satirical opera collide courtesy of Charlie Bicknell, Alison Therese Limerick and Melinda Hughes. Details Event website: http://www.pizzaexpresslive.com Users say Share Tweet


text:
Martin Heller
Lucian Constantin
Fahmida Y. Rashid
Paul Krill
Michael Kan
Peter Wayner
Serdar Yegulalp
Java Everywhere
, 07/28/15
Java Everywhere
, 06/25/15
Java Everywhere
, 05/12/15
Java Everywhere
, 04/14/15
Having a Java issue? Find a solution:
Stay up to date on the latest tutorials and Java community news posted on JavaWorld.
Get Our Weekly Newsletter
Follow us on your favorite platforms:


text:
Feefo Trusted Service 2017
It's back! And better than ever. This year's #FeefoTrusted Accreditation takes our award to new heights, for businesses that meet our standard of trust.
Reviews as they should be
Real reviews from real people. Our solutions are built to keep you – and your customers – in sight.
The cutting edge of reviews
We're always one step ahead in reviews. The Feefo platform is loaded with incredible features and industry leading tools, right out of the box.
Our customers love reviewing us
We work with some of the biggest names in the business. Hear what they have to say.
Feefo on show
From exhibiting our platform at expos, to headline sponsoring some of the biggest shows in the world, Feefo are always on the move.
Helping the world make better decisions.
Every second, we help companies and brands listen and connect to their customers; giving them the tools to create better experiences, improve their products and grow their brand.
Our impressive combination of innovative products, award-winning service and industry expertise can be put to work right now in your business.
Make the better decision, with Feefo.
Not received your Feefo Feedback Request?
Let us know!


text:
More Stink than Red Tide
There is no need to dig out your dusty snorkeling gear to see fighting marine life. Tonight wraps up the three-game series of the cross-state battle of who can be worse. Yep, our own suddenly-not-in-last-place Florida Marlins are playing host to the second-to-last-place-in-the-American-League Tampa Bay Devil Rays. (Sorry, Kansas City, but you suck the worst as a .279 team with only nineteen wins. Yikes!) So why should you go see two teams that generate less excitement than a dozen nubile teenage boys going to bat at a Babe Ruth All-Star game? Well, the stands are usually empty, so you can buy the cheapest ticket and then sneak down to the good seats; a dinner of hot dogs and beer goes better with the crack of a bat; and there will be hot girls in tiny tank tops. Tickets range from $6 to $90. The game begins at 7:05 at Dolphin Stadium. Call 1-877-MARLINS, or visit florida.marlins.mlb.com.
Wed., June 28
Get the Things to Do Newsletter
Sign up for our weekly guide to events in Miami, and never be bored again. With suggestions for every day of the week, our recommendations will keep you busy on any budget.
Upcoming Events
Daniel Zamir Quartet
TicketsTue., Feb. 21, 7:30pm
The Summit: Manhattan Transfer Meets Take 6
TicketsTue., Feb. 21, 7:45pm
Florida Panthers v Edmonton Oilers
TicketsWed., Feb. 22, 7:30pm
Ladysmith Black Mambazo
TicketsWed., Feb. 22, 7:30pm
Sponsor Content


text:
Dear Internet User,
Unfortunately, your web browser is not capable of handling the awesomeness that is BuzzFeed. We highly encourage you to upgrade your browser to use this web site in the best possible ways.
Used in non-promotion areas like on the post b-page, homepage feed, userpage, etc.
On Nov. 29, 1972, a crude table-tennis arcade game in a garish orange cabinet was delivered to bars and pizza parlors around California, and a multi-billion-dollar industry was born. Here's how that happened, direct from the freaks and geeks who invented a culture and paved the way for today's tech moguls.
Used in thumbnails, widgets and ads. If you want to test the standard promotion along side these make a copy of it here.
(Allowed HTML Tags: <a href=""> <b> <i> <em> <strong>)
please adjust options and text to fit within splash
Drag to highlight one or more parts of the screen.
We got your feedback, and we'll follow up with you at
Sadly, an error occured while sending your feedback. Please contact email@example.com
to let us know.


text:
Are there any Star Wars or cruise fans in your family? Have they been jumping around with joy this morning? Are you wondering why? It might have something to do with the Disney Cruise Lines announcement that they'll be releasing a […]
Read More »
We can tailor make a cruise to your specific needs
Talk to the team for friendly advice or to book your cruise
0800 408 6228
For more content and advice discover our
Not found the Cruise Line infomation you need?
Not found the destination you're looking for?
British Isles
By using this site you agree to our cookies and privacy policy
Cruise Line Terms & Conditions | www.CRUISE.co.uk Terms & Conditions | Tailor Made Terms & Conditions | Privacy Policy | Sitemap | Unsubscribe | International Sites |
Registered Office: Grosvenor House, Prospect Hill, Redditch, B97 4DL
Copyright 2014 www.CRUISE.co.uk Ltd | Company Reg No. 01827977 | VAT Reg No. 916 2376 24| ABTA Licence No. 78024ATOL Licence No. 3385 | IATA Licence No. 91217862