text:
Kindly featured by:
Photography feature - Top 250 June (2011)B&W:
Bordeaux is sinking 3 by Pierre-LagardeSKELJANSKI by whoskipbob:thumb211808056:
the core by augenweideTransparent Beauty by KrzysztofJedrzejakthe lightness of being by augenweide
hunter by pigarot:thumb213834559:Uncomfortable silences by j-vdb
Lost by NomequiesWindow and shadow by morpheus880223:thumb214687916::thumb212164019:
Appartee ethnologique by TotoRinoStrangulation by DpressedSoul:thumb215079799:
Edge by Hengki24Minuet by Hengki24Deep by acukur
:thumb211970985:through the misty air V. by arbebuk...rovinj II... by roblfc1892
Mist by AlexandruCrisanSquare One by eduardj:thumb214588326:
facade xiii by ChristianRudatMorse code Chicago style by right-angle:thumb213565320:TORTE BUILDING by right-angle
dancing.01 by miguelazevedo:thumb214586540:raindrop by Pete1987:thumb212903884:
Lisbon ::7 by MisterKeythe alien's house by m-lucia:thumb214584457:
Razor by SblourgSummer on the deathstar 2 by Rincewind2106Unfinished Heart by Nightlineself by awjay
:thumb211636669:facade xii by ChristianRudatfacade xiv by ChristianRudat
:thumb214411649:facade xi by ChristianRudat:thumb211645602:
divided by ChristianRudatArchitecture I by GrzechoolLe journal - Block CCLXXXII by bwiti
Enter at your own riskThese artists have all created pieces that make me want to climb inside the art work and have a look around.
Open the doors.
Sit on the chair and gaze outwards.
Go shopping.
Enter if you dare.
What lies within?
Channel surf.
Easy rider.
Do you fit inside the box?
Hit the road.
Take a road trip.
wonderful...a sushi bar.
Ich hasse Sushi (lacht). Kein Problem! Ich liebte die Aufnahme.
mmh - hassen kann ich nicht sagen
ich mag fisch in nahezu jeder form, durchaus auch mal roh
ich mag fisch in nahezu jeder form, durchaus auch mal roh
Great catch
Awesome Image!
there something so human about those motorcycles.
just had the feeling that you were beginning to become an expert
I suppose that live many sushi lovers around...
nice image.
nice image.
I am also thinking in term of "The Three Musketeers of Sushi!
interesting photo....I guess these are sushi delivery bikes...that is a great idea...
Excellent b&w Ulrich!! Do you like sushi?
Actually I like many varieties of raw fish, but sushi is a bit boring
Yes? I quite like it
well, not too bad - but overestimated imho
Yes, I can agree with that
When it come to uncooked fish I love the Dutch fermented variety of virgin herrings (matjes).
What I also do ever once in a while. Put some small diced tuna on a nice simple pasta with garlic. The dices get slightly cooked on the outside by the heat of the pasta, but remain uncooked inside. Quite delicious as well !
What I also do ever once in a while. Put some small diced tuna on a nice simple pasta with garlic. The dices get slightly cooked on the outside by the heat of the pasta, but remain uncooked inside. Quite delicious as well !
It should be because of the "faces" on the "boxes", but it makes me smile!


text:
Jack and Elsa by raskinaWatch
©2013-2016 raskina
I like this ship
Jack Frost from Rise of The Guardians
Queen Elsa from Frozen
(week 22)
TUMBLR: raskina.tumblr.com
I can't stop smiling
love it and elsa with blue hair
awwwwwwwwwwwwwwww i love this
Incredible art work, mate
I love the intensity of emotion you've put into their faces <3
Elsa races her way through the snow storm hearing a voice ahead of her "Elsa!, Elsa!, Elsa where are you?". The tears threaten to come out of her eyes "Jack Frost..." she whisper. Soon she kept running and running to the sound of his voice but she didn't know a cliff that was ahead off her until she slip and starting down really fast. Knowing that facing her end Elsa closes her eyes waiting to shatter like ices on the hard frozen ice suddenly something scope her up high into the skies above the snow storm. "Are you alright Elsa?" said a clam voice. Elsa eyes met with Jack Frost eyes soon the young ice queen and the young man hugged each other tightly never wanting to let each other go. "I'll never leave your side ever again" though Jack Frost.
Very nice and emotional and flowing picture. I'm not sure I would have drawn Elsa's hair with blue. Jack looks great.
May I use this as a cover for my coming Elsa and Jack fanfic?! *w*<3
This picture arouses so many Jelsa feelings in me... *w* Astoundingly good job!!
this is lovely I like the movement and the colors
i ship this, so hard. thank you for feeding my imagination!
Nice worl
What's going on? Elsa's hair looks like Anna's when Elsa hit her in the heart-OH!!!!!!!!!!!!!!!!!!!!!!!
Maybe Jack and her were hanging around and he hit her in the heart and now her heart is turning frozen and Jack is doing everything he can to help her!
P.S. AMAZING art work!! Well done!!!
This is so so beautiful!
this is absolutly stunning! Is it avalable for purchase? xx
haha thank you very much hm , i don't know, nobody's asked me this before
your very welcome, and if you ever decide to sell this i would be more than willing to pay xxx
aww so cute~
Beautiful !! Great job !!!
OMF YES!! I ship so hard~~
hi this is the best drawing ever it should be framed and hung in a museum I love it!-Iaura not kyan
I ship it!
Beautiful! I ship Jack/Elsa because not only does their relationship make thematic sense, it's believable and much more so than Jack Frost with Rapunzel. Jack and Elsa have sisters they would spend eternity alone for. Elsa would definitely learn to let loose with Jack around. She doesn't want to be left alone. She ran away because she had no other choice, because she wasn't understood, and because she didn't want to harm anyone with her powers. Unless you've been in their shoes before, how do you help someone the most? Enter Jack Frost, who can help Elsa realize the error of her ways by reminding her how to have fun again by being playful with her and Elsa retaliating by just being herself. Their personalities complement the other nicely so this works well without a flaw. It's a match made in Heaven. Jack is also older than Elsa by being immortal.
This is neat, but Elsa has blonde hair
Very nice pic. Isn't Elsa a blonde though?
Beautiful! <3
this is lovely! specially the capes!
This ship would be so much fabulous!
wouuu! adorable -3-
I love this!
I like this pairing!
I love how even though his face is sort of buried in her hair, you can still see that he's got a protective expression, that plus the way he's holding her is what really makes this perfect for me. It's almost like he's saying without words that he's always going to be there when she needs him and he's going to keep her safe, and that's always been one of my favorite things about the couples I ship, is when they're protective of each other. Probably because it sort of connects back to Fiyero being protective of Elphaba in Wicked, and since they're my Ultimate OTP, I just really adore seeing my other OTPs being protective of each other, and since Elsa has so much in common with Elphaba besides just their actress...Am I making sense? lol
Oh, it looks great. They look amazing here. Shading is wonderful and background looks beautiful too c:

subset: commoncrawl


text:
-The wanderer-
Credits & Info
- Uploaded
- Oct 21, 2012 | 4:55 PM EDT
- File Info
- Song
- 8 min 16 sec
- Score
- 4.45 / 5.00
Related Content
Licensing Terms
You may not use this work for commercial purposes without making specific arrangements with the artist UNLESS your work is a web-based game or animation, in which case you may use this freely.
- Score:
- Rated 4.45 / 5 stars
- Plays & Downloads:
- 33,867 Plays | 3,617 Downloads
- Share Links:
- Genres:
- Other - Miscellaneous
- journey
- orchestral
- ambient
- ngadm
Author Comments
Rated 5 / 5 stars
Refreshing! An excellent demonstration of your versatility as an artist. I really like the longer theme that takes up 16 measures starting at 3:27 - wonderful chord choices here. Personally I felt that by 4:21 the song could have been completed...like what came after 5:18 wasn't as interesting. You might try making more like this, perhaps with a more pronounced melody idea. Keep it comin' man!
Rated 5 / 5 stars
Again WF, but this one is the most relaxing I heard out of every music.
Nice going again.
Rated 5 / 5 stars
AWESOME SONG!! the best one yet!! and its funny, Kor-Rune won NGADM but yet waterflame is more popular than him, correct? this song is in the top 3 for popular and kor-rune is like 10, am i right? Waterflame shoudve won!! WHO'S WITH ME???!!!
Rated 5 / 5 stars
This song is just amazing, the atmosphere it creates is really great and the amount of effort you put into it really shows. You have really outdone yourself with this one. I like the fact that this song is a longer than most songs, it helps add to the story part of it.
Rated 5 / 5 stars
Very good its like your first songs made with love !


text:
The Library of Congress has added a new entry to it's it's YouTube collection. This video is a traditional hula performance from the Hula School of the Community College of Hilo, Hawaii. The presentation is an hour and ten minutes long. Enjoy this performance of traditional dancers…
Women Worked Too!
[Originally posted on YourIslandRoutes.com. Reposted for Fearless Females–Women's History Month, March 12th: Working Girl] After piling over my research notes for the last 10 or more years, I've come to the conclusion that women worked much earlier than movies, television, and books lead us to believe. While many joined the work force during the depression … Continued
Advent Calendar: The Lost Pajamas
(Advent Calendar of Christmas Memories Day 10: Gifts) As I wrote about my doll, Tippy Toes, for the Smile for the Camera Edition #19, I thought I'd bring back my story about Grandma's pajamas. Though the pajamas weren't necessarily my favorite gifts to receive (what five year old dreams of pajamas?), but they do bring … Continued
Advent Calendar: Snowflakes in the Bay Area
(Day 9 of the Advent Calender of Christmas Memories: Grab Bag) At my first job with the County Library system, I worked with a elderly woman. She was all business, no play–very serious. She was a former member of the military who took everything seriously. You can imagine my surprise when I learned a week … Continued
Christmas Morning–Breakfast
(This is day two of Advent Calendar of Christmas Memories…Holiday Foods) Ever since I was wee child my family had a tradition. After all the stockings were emptied and the presents unwrapped, we'd sit down for Christmas breakfast. This included bacon, eggs cooked in several ways, toast, and because of my Mom's Portuguese roots, linguinca. … Continued
That's Old News: Restricting Japanese Immigration
Every now and then you learn something about a relative that makes you cringe. You may have heard of the Chinese Exclusion Act, but didn't you know that in the early 1900s, a wave of anti-Japanese fervor swept through California? On March 6th, 1905, the San Francisco Chronicle dedicated a whole page to the "Japanese … Continued
SNGF: Number One Songs
Randy's Saturday Night Genealogy Fun challenge over at Genea Musings is to look up the #1 songs for the important days in our lives. Here are some of mine: Day I was born: I Want To Hold Your Hand by the Beatles Day I went to Kindergarten: Honky Tonk Woman by the Rolling Stones Day … Continued
The Music of Carlos Paredes
I came across a CD a few years ago. It was a Portuguese musician named Carlos Paredes. Paredes played the Portuguese Guitar which is much rounder than the one that Americans are familiar with. Paredes was born in 1925 in Coimbra, Portugal. His Father was Arthur Paredes, a famous Portuguese musician. Paredes learned to played … Continued
That's Old News: Protecting A Woman's Reputation?
In doing research in the Oakland Tribune, I came across this item under a section on saloon/liquor updates. The section was devoted to inspections on saloons, licenses applied for and the status, and different regulations. This was Oakland, Alameda County, California, 1907. I find it funny that businesses that served alcohol had to be equipped … Continued
Advent Calendar: A Blending of Portuguese Hawaiian Traditions
My Portuguese family was originally from Sao Miguel Island, Azores. They brought with them many Portuguese traditions including setting up a creche (nativity scene). I am told that my Great Great Aunt had the original from the Azores and brought it from Hawaii to California. They arrived on Hawaiian shores in 1882. There they spent … Continued
My Mysterious Ancestor Felicianno de Mello
Felicianno de Mello was almost a lost ancestor. I knew he was my Great Great Great Grandfather from my Great Great Grandmother's baptismal record. Though I knew that he was born and married in the town of Maia on Sao Miguel Island, I could not find any record of his birth or marriage. I had … Continued
The Jackson's Lived Here
I don't think I have any photos of the houses where my Parents or Grandparents grew up. This is why Google Maps has been so important to me. Most of these locations I have never seen. Now I can find them on the map, zoom in, and see where my ancestors once lived. I have … Continued
Saturday Night Genealogy Fun: Your Most Unique Ancestral Name
This week Randy asks us to name our ancestor with the most unique name for Saturday Night Genealogy Fun. I couldn't come up with anything in my ancestry for a first and last name combination, so I'm going with the most unusual first name. I found my maternal Great Great grandfather in several records but … Continued
Courtship and Wedding Traditions, Superstitions, and Lore
There are many traditions throughout the word related to courtships and weddings. Some represent the times they came from. Others have made their way into modern wedding ceremonies. Here is a selection of courtship and wedding traditions from throughout the world. From Africa: This tradition is found in different Southern African cultures. It is called … Continued
Preserving Historic Moments
This week our country had an historical presidential elections. It was a moment of pride and emotion for the entire nation as we elected our first African American President. When historical events, disasters, or momentous occasions occur, do you write about them and save them for your family? After interviewing several older relatives and wondering … Continued


text:
Number and kinds of children's residential institutions in the United States
U.S. Dept. of Health, Education, and Welfare, Children's Bureau, 1967 - Children - 26 pages
From inside the book
5 pages matching foster homes in this book
Where's the rest of this book?
Results 1-3 of 5
What people are saying - Write a review
We haven't found any reviews in the usual places.
Common terms and phrases
Associate Project Director AUSPICES AND NUMBER CB Jan Census April Center for Urban Center's list Center's Master List chil child welfare Children's Bureau children's institutions Children's Residential Institutions CUS Sept Dakota definition delinquent and predelinquent dependent and neglected Directory dren's emotionally disturbed children FACILITIES FOR GROUP Facilities for mentally Facilities for physically foster homes handicapped children hospital Includes Puerto Rico Indian boarding schools Individual States September institution reported institutions for children Institutions for delinquent Institutions for dependent Institutions for emotionally licensed linq list of children's mentally retarded mentally retarded children neglected children North Carolina number of children NUMBER OF INSTITUTIONS operated physical facilities physically handi physically handicapped predelinquent children PROJECT ON PHYSICAL proprietary facilities proprietary institutions Psychiatric inpatient facilities public institutions Puerto Rico Research Assistant residential facilities residential treatment centers South Dakota temporary shelter TOTAL INSTITUTIONS type of facility TYPE OF INSTITUTION Urban Studies Virgin Islands voluntary institutions York North


text:
A Love Supreme
IF I HAVE my calendars straight, it was on February 17 a great many years ago that Noah hustled the family into a boat to weather 40 days and 40 nights. If you read the fine print, you'll find the travail lasted much longer: The ark didn't hit ground until that July, and things didn't really dry out until the following year. When the crew went packing, word from on high warned them to bring plenty of food. (Eating the animals, of course, would fuck things up.) There is no mention in Genesis of music, but I hope someone had the sense to bring along a flute or a hand drum or something. It would've soothed the savage beasts onboard, and helped keep everyone's eyes on the forthcoming spiritual prize, as it were--the way music does in so many traditions.
I'm thinking about this just as Northern California is slowly but surely being washed into the sea under some of the heaviest rainfall ever recorded. Music has been just about the only thing that's kept me sane through the recent weeks; among other things, it serves to erase or at least punctuate the endless, droning patter outside. (Minnesota winters, for all their gusty winds and freezer burn, are sepulchrally silent by comparison.) One rainy-day musical encounter was especially remarkable: It happened on a recent Sunday morning, when a friend and I braved the torrents to attend services at the St. John Coltrane African Orthodox Church in San Francisco's Haight district.
The church is a tiny storefront affair on Divisadero Street with a poster-sized black-and-white photo of Trane in the window. While there is a small service and the occasional gathering during the week, the main event is Sunday, when musical seekers and jazzbos from all over the world jam the six pews and what little room there is around them. Some come with instruments; others are simply curious fans on vacation. Laying our umbrellas on the floor near the entrance, we join the damp congregation beneath a pair of spectacularly neo-Byzantine gold-leaf-and-oil portraits of The Artist, alternately holding a soprano and a tenor, both with flames licking out of their bells.
The service begins with a casual introduction by the charming and impressively dreadlocked Sister Mary Deborah (who also hosts the St. John Will-I-Am Coltrane Uplift broadcast Tuesday afternoons from noon to 4 p.m. on KPOO radio, 89.5 FM). She explains the church's history: its progression from the One Mind Temple Evolutionary Transitional Body of Christ in the '70s; its formal affiliation with the African Orthodox Church in the '80s; its deification of a brilliant if flawed human artist; and Coltrane's shift in the church's pantheon from godhead to saint. (Coltrane's image shares wall space with a dreadlocked depiction of another J.C.) There is nothing here that seems any odder than what's found in other religious congregations, except maybe the church's plainspoken rhetoric. Sister Mary Deborah ties their freestyle tradition to the spirit of improvisation: "We're all just kinda wingin' it," she laughs.
Still, I'd come to the church with one obvious fear: How will a group of amateur players channel the music of a jazz titan? My fear was unfounded. In this room, the collective voice of good players achieves a jaw-dropping greatness. To start the service, a chain of variations on the theme of "Africa" (from Africa/Brass) begins unspooling along a simple but well-rooted electric bass line played by Sister Wanika King. She locks into the open rhythms of a fleet, T-shirted drummer who looks to be in his midteens.
And then the horns rise up: first Father De Haven, a Caucasian tenor man who resembles Joe Lovano, and Bishop Franzo Wayne King, the church's leader, who switches between tenor, sopranos, and hand drums. In the pew in front of me, a guy works an alto sax unobtrusively; two rows up, a trombonist swings more aggressively. Percussion instruments are passed around; someone sits down at the old upright piano and starts laying into some chords. Members of the congregation sing and shout praises, clap, and dance like they're at some funkified, post-bop Baptist revival meeting, or on a journey toward some deep inner space. New players arrive to stir things up further. The theme to A Love Supreme emerges from the free-blowing and people chant along. It is wholly transporting and transportingly holy.
After 90 minutes have passed by without notice, the music subsides and the bishop makes a serious pitch for money: Big Money. The Church is hard-pressed to continue its community outreach work, which includes serving meals to the homeless, and it is in need of a larger space. Feeling a bit strapped, my friend and I pony up a five-spot each and slip out into the rain. As we walked, we talked about the nearly nonexistent place of music in our respective Christian traditions, as well as our attachment to music as a spiritual vehicle--how nightclubs can feel like church just the way this church kinda felt like a nightclub. Slouching toward a breakfast joint on Fillmore, our ears were ringing. But the rain felt like a benediction.
Get the This Week's Top Stories Newsletter
Every week we collect the latest news, music and arts stories — along with film and food reviews and the best things to do this week — so that you'll never miss City Pages' biggest stories.
Sponsor Content


text:
AdBlock blows! Please disable the add-on to ensure you get the most out of Tube8's features and functionality. Read about why you shouldn't use AdBlock. Close
Add to Favorite List:
Create a new folder:
Next »
Beautiful british twink with tattoos jerking off
Recognize a pornstar in this video?
Help make pornstars easier to find on Tube8 by telling us who is in this video.
Thanks! The pornstar names will be added to this video when enough users submit the same names.
You must enter a pornstar name that already exists in our database.
- Description: Gorgeous british twink with tattoos and piercings works his huge pipe and masturbates fusiously
- Tags:
- Pornstars: Add Pornstar
- Favorite by: 0
- Report This Video
Video Comments
All Video Comments (0)


text:
Erin by Enigma-FotosWatch
©2013-2016 Enigma-Fotos
Fave fixed up a bit Have a great hump day
Erin English is such a gorgeous woman. Wow.
Pocahontas <3
what a lovely sea pearl, it's a goddess!
Spetacular work, my friend!
nice natural back-lighting! I will second (or third, or fourth...) the call for more of this model. She is stunning.
Wow, she's....
*thinks of something non-lewd to say*
...erm... fit. Yeah.
*thinks of something non-lewd to say*
...erm... fit. Yeah.
wow so beautiful girl
More of her, please!
She looks a lot sexier in this picture than the one I saw ya post on FB, though both make her look absolutely incredible.
A beautiful portrait of Erin! Love the backlight.
This is an instant FAV!
This is an instant FAV!
Holy sh*t.... what a goddess!! @.@


text:
Bad Education by humonWatch
I've been wanting to do "Bad Education" fanart for a while. This show has all my love.
It's like some sort of demented "GLEE" with pupils such as openly gay Stephen, not-so-openly gay school bully Grayson, Rem Dogg in a wheelchair, Chantelle who pretends to be promiscuous to cover up her lack of self esteem, and Mitchell who comes from a poor home, yet non of them allows themselves to be victims (well, except Joe), all under the care of their posh teacher Alfie.
Mind you, I make it sound way more serious than it is. If you don't know it, have some videos:
If you do know it but haven't watched it in a while and is wondering when Grayson turned out gay/bi, it happened in the 2013 Christmas special when he started dating Stephen.
Turns out this scene was god damn foreshadowing between them:
Effing "Bad Education" man...
'Alfie made me be gay for him' was so beutiful!
You should give "Some Girls" a go, too, that's another really funny BBC Three show.


text:
Respond to Review of Falafel Bistro and Wine Bar
by Penelope
Review: A hidden gem! Delicious, healthy food, and excellent specials. The staff are friendly. This one will become a regular dining spot for us!
You must login to post a response
Login | Register (see member benefits)
Login | Register (see member benefits)


text:
A Taste of Logichttp://blogs.msdn.com/b/jamesche/atom.aspxTelligent Evolution Platform Developer Build (Build: 5.6.50428.7875)2007-03-08T14:52:00ZImage or ImageButton without ImageUrl Causes HTTP GET for Default Documenthttp://blogs.msdn.com/b/jamesche/archive/2009/01/28/image-or-imagebutton-without-imageurl-causes-http-get-for-default-document.aspx2009-01-28T17:25:00Z2009-01-28T17:25:00Z
I recently worked an issue with a customer who was seeing an error in his application due to a null reference. The error was perplexing because the object that was null was populated on the logon page of the application, but the error was occurring after the user logged in. The object should certainly not have been null. Even more perplexing was the fact that the error could be reproduced readily on a Windows 2003 Server, but the exact same code would never reproduce the problem on the development machine running Windows XP.

In order to troubleshoot this problem, I had the customer get a Time Travel Trace, something we often call an iDNA dump. An iDNA dump is analyzed like any other memory dump, but unlike a traditional user-mode dump that contains the contents of memory at a particular moment in time, an iDNA dump contains a "recording" of user-mode memory over a period of time. It's kind of like Tivo for the debugger, and in situations where a problem is easily reproduced in short time, it's a great way to dig into problems.

Using the iDNA dump, I was able to determine that the customer's code was successfully creating the object that was causing the NullReferenceException. I was also able to determine that the customer never explicitly set the object to null and the only place where we entered the constructor for the object was in the logon page just as the customer said. However, I also found that Page_Load for the logon page was hit in a seemingly random place long after the user logged in.

Next, I got a network trace of the application. In that trace, I saw a GET for "/" which causes the web server to serve up the default document. In my customer's case, login.aspx was in the default document list, so this GET caused the code in login.aspx to run. In that code, the customer re-initialized an object and stored it in Session. One of the members of that object was the object causing the NullReferenceException, and because the code in login.aspx reset the variable in Session state, it overwrote the valid member object with a null. (Whew! If you had a hard time following all of that, just think how difficult it was to follow it all by setting breakpoints in Windbg!)

The GET for the default document that we were seeing was a big mystery. I could find nothing in the customer's code that was doing that. I started trying to narrow down where that was coming from. Eventually, we found that it originated with an <input> element in the rendered page that looked like this:

<input type="image" src="" … />

When the browser encountered this element, it performed a GET for the default document. That explained why Page_Load was running for logon.aspx and it explained why we never saw this happen in the browser window. It also explained why the problem didn't happen on Windows XP. On Windows XP, the customer was using the ASP.NET Development Server. The dev server doesn't have any concept of a default document list, so when the GET occurred for the default document, it tried to serve default.aspx. Since there wasn't a default.aspx in the application, the dev server simply served up a directory listing, and because that didn't actually run any code, it had no impact on the application.

The XHTML that caused this problem was caused by an ASP.NET ImageButton control without an ImageUrl property. If you don't specify an ImageUrl property for an ImageButton control (or any control that derives from Image), it will cause ASP.NET to render the XHTML you see above, and that will result in the errant GET. As you can tell from reading about my experience, it's possible for this issue to cause bizarre bugs that are extremely difficult to track down. What's worse is that these bugs can occur long after the GET that caused them.

We thought about correcting this now in version 2, but we were concerned that any change in the ASP.NET code would break existing applications. Therefore, we have this on the slate to look at for the next version of ASP.NET. In the meantime, always make sure that you specify an ImageUrl property when using a control that derives from Image!
Jim Cheshirehttp://blogs.msdn.com/jamesche/ProfileUrlRedirect.ashxSessions and Classeshttp://blogs.msdn.com/b/jamesche/archive/2009/01/09/sessions-and-classes.aspx2009-01-09T22:20:00Z2009-01-09T22:20:00Z
Any programmer knows that logic errors are among the most difficult to troubleshoot. I was recently working with a developer who was encountering an obscure logic bug concerning session variables, and the case raised an interesting (and important) point regarding ASP.NET session state.

Consider the following code in page1.aspx.

public partial class Page1 : System.Web.UI.Page
{

    protected ArrayList al;

    protected void Page_Load(object sender, EventArgs e)
    {
        al = new ArrayList();
        al.Add("Apples");
        al.Add("Oranges");
        al.Add("Bananas");

        Session["list"] = al;

        Response.Redirect("page2.aspx");
    }

}

In this code, I create an ArrayList and then populate it with a few types of fruit. I then save that ArrayList to session and redirect to page2.aspx. Let's look at several different code examples for page2.aspx and discuss how the session variable created in page1.aspx might be inadvertently changed.

First, consider this code snippet for page2.aspx.

public partial class Page2 : System.Web.UI.Page
{

    protected ArrayList al;
    protected ArrayList al1;
    protected void Page_Load(object sender, EventArgs e)
    {
        al = (ArrayList)Session["list"];
        al[2] = "Kiwi";

        al1 = (ArrayList)Session["list"];
        Response.Write(al1[2]);
    }
}

When page2.aspx loads, what is written to the browser window? You may think that you'd see "Oranges", but in fact, you'd see "Kiwi" written to the screen. Why? When you store an instance of a reference type (an ArrayList, in this case) in session and then assign a variable to the session variable, what you are doing is saying "Point my variable to the address of the session variable." Therefore, if you manipulate the member variable that was assigned the session variable, you are also directly manipulating the session variable. In other words, it is not necessary for me to save the modified ArrayList back to session in page2.aspx.

Here's another snippet of code for page2.aspx.

public partial class Page2 : System.Web.UI.Page
{

    protected ArrayList al;
    protected void Page_Load(object sender, EventArgs e)
    {
        al = (ArrayList)Session["list"];
        al = new ArrayList();

        Response.Write(((ArrayList)Session["list"])[0]);
    }
}

When this code runs, what happens? If you said that you'd see "Apples", you're right. Obviously, assigning the al variable to a new instance of ArrayList doesn't impact the session at all. It simply says "Create a new ArrayList and point al at the new ArrayList instead of to the session variable."

Now consider the following code for page2.aspx.

public partial class Page2 : System.Web.UI.Page
{

    protected ArrayList al;
    protected ArrayList al2;
    protected void Page_Load(object sender, EventArgs e)
    {
        al = (ArrayList)Session["list"];
        al2 = al;

        al2.Clear();

        Response.Write(((ArrayList)Session["list"])[0]);
    }
}

When this code runs, what do you see? If you said that you'd see an exception, you're right. This code will produce an ArgumentOutOfRangeException because the session variable, al, and al2 all point to the same object. When you call Clear() on al2, it clears the session variable.

Obviously, this situation doesn't apply to primitive types such as int or to value types. It also doesn't apply to string even though string is a reference type. Why? Because the equality operators for string are designed to compare the value of the string and not the string itself. This situation also doesn't apply to structs because a struct is a value type.
Jim Cheshirehttp://blogs.msdn.com/jamesche/ProfileUrlRedirect.ashxWindows Home Server Data Corruption Fixhttp://blogs.msdn.com/b/jamesche/archive/2008/06/10/windows-home-server-data-corruption-fix.aspx2008-06-10T16:51:20Z2008-06-10T16:51:20Z
Windows Home Server is a great product, but it's been plagued by an infamous bug known as the Data Corruption Bug. Yesterday, the Windows Home Server team released a public beta of Power Pack 1. In addition to some new features and enhancements, Power Pack 1 also fixes the data corruption bug.

I've been involved in small team of internal testers for Power Pack 1. We've been testing this fix for a few months and are confident that the data corruption bug is fixed. In fact, I have been editing files against my Windows Home Server for a while now, and I've not encountered a single occurrence of corruption. (We use an internal tool to test for corruption against our WHS box, so corruption doesn't go unnoticed if it happens.)

You can access the public beta of Power Pack 1 by going to the Windows Home Server Connect site.

Spread the word!

Jim
Jim Cheshirehttp://blogs.msdn.com/jamesche/ProfileUrlRedirect.ashxThird Party ASP.NET Controls and Visual Studio 2008http://blogs.msdn.com/b/jamesche/archive/2008/02/28/third-party-asp-net-controls-and-visual-studio-2008.aspx2008-02-29T00:36:21Z2008-02-29T00:36:21Z
We've had a few cases recently where customers are using third-party ASP.NET server controls (either written by a third-party company or by the customer) and finding that the controls are not rendering correctly in the Visual Studio 2008 design surface. Most recently, we had an issue where a popular third-party control company's custom property editor was not working correctly in Visual Studio 2008.

In all of these cases, we've investigated the issue and found the problem to be that as the third-party was developing their controls in Visual Studio 2005, they relied on our implementation in the Visual Studio design surface. What they did not anticipate was that our implementation would change with Visual Studio 2008.

The HTML design surface in Visual Studio 2008 is completely new. In order to get a much better representation of page rendering and to add new features, we incorporated the Expression Web design surface into Visual Studio 2008. (That decision also gives you the great new CSS features in Visual Studio 2008.) In almost all cases, controls that were developed against Visual Studio 2005 will work without any problems, but there are cases where the change in the designer causes undesirable behavior for server controls built against Visual Studio 2005. For example, one company found that the hierarchy of the control tree in the Visual Studio 2008 designer differed slightly from Visual Studio 2005. This change caused their control's code to incorrectly parse the page.

It is highly unlikely that you will encounter a problem with any controls in the Visual Studio 2008 designer. If you do, it's very likely that a change will be required in the control itself in order to take into account any implementation changes in the new designer.

Jim
Jim Cheshirehttp://blogs.msdn.com/jamesche/ProfileUrlRedirect.ashxNew IIS.NET Website for the Windows Server 2008 Launchhttp://blogs.msdn.com/b/jamesche/archive/2008/02/27/new-iis-net-website-for-the-windows-server-2008-launch.aspx2008-02-27T21:15:39Z2008-02-27T21:15:39Z
We've just launched a completely revamped and overhauled IIS 7 website with new content. Visit the premiere IIS 7 resource at www.iis.net.

Jim
Jim Cheshirehttp://blogs.msdn.com/jamesche/ProfileUrlRedirect.ashxError When Opening ASP.NET Site on IIS 7 Using Visual Studio 2005http://blogs.msdn.com/b/jamesche/archive/2008/02/25/error-when-opening-asp-net-site-on-iis-7-using-visual-studio-2005.aspx2008-02-25T21:46:51Z2008-02-25T21:46:51Z
Now that Windows Server 2008 is out the door, we're starting to see more customers using IIS 7. I recently worked on a case where one of our engineers was dealing with a customer using Visual Studio 2005 and IIS 7. He was encountering an error message when attempting to open his ASP.NET 2.0 application running on his local instance of IIS that displayed the following message:

When we checked the application pool in IIS, it was configured correctly for the 2.0 Framework, so what exactly is the problem here?

The problem is that Visual Studio 2005 came out prior to IIS 7. Therefore, it doesn't deal well with the way that the handler mappings work in IIS 7. As it turns out, the .aspx file extension is mapped to both the ASPNET-ISAPI-1.1-PageHandlerFactory (for 1.1) and to the PageHandlerFactory-ISAPI-2.0. When Visual Studio 2005 hits the site to check for ASP.NET, it is fooled into thinking that the site is configured for ASP.NET 1.1 by the mapping for the ASPNET-ISAPI-1.1-PageHandlerFactory.

To correct this problem, you can either click Yes to the dialog shown above (and you'll have to do that each time you open the project) or you can change the order of the handlers mapped to your application.

To change the order of the handlers, follow these steps:

Select your application in the IIS Manager.
Double-click on the Handler Mappings feature as shown below.

 Click the View Ordered List link on the right side of the IIS Manager as shown below.

Select the PageHandlerFactory-ISAPI-2.0 (or PageHandlerFactory-ISAPI-2.0-64 on 64-bit Windows).
Click the Move Up link as shown below until the handler appears above the ASPNET-ISAPI-1.1-PageHandlerFactory handler.

You should now be able to open the project without any issues.

By the way, this issue does not occur in Visual Studio 2008.

Jim
Jim Cheshirehttp://blogs.msdn.com/jamesche/ProfileUrlRedirect.ashxHotfix Rollup for Visual Studio / Visual Web Developer Express Edition 2008http://blogs.msdn.com/b/jamesche/archive/2008/02/14/hotfix-rollup-improves-performance-in-visual-studio-visual-web-developer-express-edition-2008.aspx2008-02-14T19:29:43Z2008-02-14T19:29:43Z
We recently released a hotfix rollup that fixes numerous issues in Visual Web Developer 2008, both the Visual Studio release and the Express edition. News of this rollup has circulated through many blogs and websites, but we're still seeing a fair number of people who are unaware of it.

The rollup can be downloaded from the link in Scott's blog.

Jim
Jim Cheshirehttp://blogs.msdn.com/jamesche/ProfileUrlRedirect.ashxThe Power of !dumpmodulehttp://blogs.msdn.com/b/jamesche/archive/2008/01/24/the-power-of-dumpmodule.aspx2008-01-24T22:19:34Z2008-01-24T22:19:34Z

Scenario: My customer is experiencing a hang and I see many threads with an identical stack. I also see that the customer has one thread that is running a component that is an OCX. What I want to find out is whether that component is referenced in the page that is executing on these numerous threads, but Reflector chokes on the module when I try to open it there.

Fortunately, you can use !dumpmodule in SOS to get that information. Not only will this tell you what types are defined in that module, but it will also tell you what references there are in the module. This can be especially useful if you see an unknown module in a dump. (An unknown module is often a dynamic assembly that is not serialized to disk.)

In this scenario, suppose I look at thread 68 and I see this:

0:068> !clrstack
Thread 68
ESP EIP
0x21d3e9a8 0x77f82870 [FRAME: GCFrame]
0x21d3ea68 0x77f82870 [FRAME: HelperMethodFrame]
0x21d3ea9c 0x0cb9eb92 [DEFAULT] [hasThis] Void JC.Business.Spec.ProcessPDF(Object)
0x21d3ead4 0x0d12b933 [DEFAULT] [hasThis] Void JCC.Export.GoSpec()
0x21d3eb10 0x0d12b41f [DEFAULT] [hasThis] Void JCC.Export.Page_Load(Object,Class System.EventArgs)
0x21d3eb28 0x0ca2752c [DEFAULT] [hasThis] Void System.Web.UI.Control.OnLoad(Class System.EventArgs)

I believe that there is a problem in the JCC.Export page and I want to see what that references. The first thing I need to do is find out what assembly it lives in. I do that by dumping out the stack objects and getting the address of that type:

0:068> !dumpstackobjects
Thread 68
ESP/REG Object Name
0x21d3e4f8 0x27c8f84 System.String Project_Titl
0x21d3eaac 0x15144c4 System.Object[]
0x21d3eae0 0x536b4c8 System.String pdf
0x21d3eae4 0x1513e44 System.String \\netshare\webshare$\Temp\spec\
0x21d3eaf0 0x5a1b4b0 _ASP.Export_aspx

Now that I know the name of the type (_ASP.Export_aspx), I can find out what module it's in by first using the !name2ee command to search all loaded modules for this type:

0:068> !name2ee * _ASP.Export_aspx
Searching all modules, this may take a while.
Loading all modules
Searching modules...
Module: 0c490220 (lbtrt0sh.dl )
MethodTable: 0x0d27002c
EEClass: 0x0d04f334
Name: _ASP.Export_aspx
----------------------------------- -------

The asterisk after the command tells it to search all modules. Note that the type name is case-sensitive

Now I've got the address of the module as reported by name2ee. To get the address to pass to !dumpdomain, you need to subtract 0x1d8 from that

0:068> ? 0c490220 -0x1d8
Evaluate expression: 206110792 = 0c490048

There's the address we use to get the module information via !dumpmodule:

0:068> !dumpmodule -mt 0c490048
Name c:\winnt\microsoft.net\framework\v1.1.4322\temporary asp.net files\root\b6f74a28\3807bf05\lbtrt0sh.dll
dwFlags 0x00200080
Attribute PEFile
Assembly 0x0bad89d0
LoaderHeap* 0x0017299c
TypeDefToMethodTableMap* 0x0c6b6618
TypeRefToMethodTableMap* 0x0c6b6664
MethodDefToDescMap* 0x0c6b67d4
FieldDefToDescMap* 0x0c6b6e18
MemberRefToDescMap* 0x0c6b6f78
FileReferencesMap* 0x0c6b786c
AssemblyReferencesMap* 0x0c6b7870
Types defined in this module
MT TypeDef Name
-----------------------------------------------------------------
0x17be8fbc 0x02000002 _ASP.MailMerge_aspx
0x1ee2ab4c 0x02000004 _ASP.AddPhone_aspx
0x0b9435d4 0x02000005 _ASP.AddEmail_aspx
0x21381254 0x02000007 _ASP.Calendar_aspx
0x17bef57c 0x02000009 _ASP.AddURL_aspx
0x0b9405f4 0x0200000b _ASP.AddAddress_aspx
0x25ef6cfc 0x0200000d _ASP.AssignProject_aspx
0x25ef2794 0x02000011 _ASP.MailMergeDownload_aspx
0x0b941244 0x02000012 _ASP.AssignCompany_aspx
Types referenced in this module
MT TypeRef Name
0x17be8c2c 0x02000001 JCC.MailMerge
0x0c7431ec 0x02000002 System.Web.SessionState.IRequiresSessionState
0x0ca193dc 0x02000003 System.Web.UI.WebControls.Literal
0x0ca19b5c 0x02000004 System.Web.UI.HtmlControls.HtmlForm
0x79ba0d74 0x02000005 System.Collections.ArrayList
0x0b97faac 0x02000007 System.Web.UI.Control
0x0ca1c944 0x02000008 System.Web.UI.HtmlTextWriter
0x1ee2a6e4 0x0200000e JCC.AddPhone
0x0b94322c 0x0200000f JCC.AddEmail
0x21380e64 0x02000011 JCC.Calendar
0x0d05fc0c 0x02000012 JCC.Export

I don't really see what'm interested in here. Because the JC.Business.Spec class is at the top of the stack I'm working with, I want to find out what is in that class. First I need to find out what module that lives in, so I'll use !name2ee again.

0:068> !name2ee * JC.Business.Spec
Searching all modules, this may take a while.
Loading all modules.
Searching modules...
Module: 0ba77100 (planspec.dll)
MethodTable: 0x0d2706bc
EEClass: 0x0d04fa7c
Name: JC.Business.Spec
----------------------------------- -------

Instead of evaluating the module address and subtracting 0x1d8 before dumping it, I'll now just pass the expression straight to !dumpmodule:

0:068> !dumpmodule -mt 0ba77100 -0x1d8
Name c:\winnt\microsoft.net\framework\v1.1.4322\temporary asp.net files\root\b6f74a28\3807bf05\assembly\dl2\2fb2768b\c0e90b4e_3b3cc501\planspec.dll
dwFlags 0x00200080
Attribute PEFile
Assembly 0x0ba76de8
LoaderHeap* 0x0017299c
TypeDefToMethodTableMap* 0x0c2622e4
TypeRefToMethodTableMap* 0x0c2622f8
MethodDefToDescMap* 0x0c262410
FieldDefToDescMap* 0x0c262490
MemberRefToDescMap* 0x0c2624e8
FileReferencesMap* 0x0c262644
AssemblyReferencesMap* 0x0c262648
MetaData starts at 0x0c273d30 (0x221c bytes)
Types defined in this module
MT TypeDef Name
-----------------------------------------------------------------
0x145f2630 0x02000002 PlanSpecFileType
0x145f283c 0x02000003 JC.PlanSpecBiz.GroupList
0x0d2706bc 0x02000004 JC.Business.Spec
Types referenced in this module
MT TypeRef Name
-----------------------------------------------------------------
0x0cb25a70 0x02000021 OCXLib.OCXClass
0x0cb22718 0x02000024 OCXLib._DOCX
0x0d2772c8 0x02000029 RasterIO.LRIOClass
0x0d27bc24 0x0200002a RasterLib.LRasterClass
0x0d272ca8 0x0200002b LRIOLib.ILRasterIO

Look at those OCX classes. If I look to see where they are, I find an interop component:

0:068> !name2ee * OCXLib.OCXClass
Searching all modules, this may take a while.
Loading all modules.
Searching modules...
Module: 0bad99a8 (interop.ocxlib.dll)
MethodTable: 0x0cb25a70
EEClass: 0x0d28c8b0
Name: OCXLib.OCXClass
----------------------------------- -------

I now know that the stacks that are hanging are sitting on a function call in a class that references the interop component that's using the OCX that I found on another thread. This doesn't get me to root cause, but it does give me a clear indicator of where I need to start looking.

Jim
Jim Cheshirehttp://blogs.msdn.com/jamesche/ProfileUrlRedirect.ashxCool Things You Can Do with AppCMD in IIS 7http://blogs.msdn.com/b/jamesche/archive/2008/01/16/cool-things-you-can-do-with-appcmd-in-iis-7.aspx2008-01-16T21:43:45Z2008-01-16T21:43:45Z
If you haven't had a chance yet to mess around with IIS 7, you should take the time. One of the changes that will impact everyone is configuration. Not only have we changed where configuration settings are stored, but we've also released a very cool command-line tool for examining and changing configuration called appcmd.exe. However, appcmd.exe is not just about configuration. There are some really cool things that you can do with it.

Wildcard Mapping

You can use wildcard characters with appcmd using the following syntax:

appcmd list apppool /name:"$=*2007"

This command will list all application pools with a name ending in "2007". Using a variation on the same method, you can find all application pools running under the identify of users in a particular domain.

appcmd list apppool /processModel.userName:"$=MyDomain\*"

This will list all application pools with running with an identity of users in the "MyDomain" domain.

Tip: You can find out all of the attributes that can be used with appcmd by querying for help after using an attribute. For example:

appcmd list apppools /name:DefaultAppPool -?

ERROR ( message:-name
-queueLength
-autoStart
-enable32BitAppOnWin64
-managedRuntimeVersion
-enableConfigurationOverride
-managedPipelineMode
-passAnonymousToken
-processModel.identityType
-processModel.userName
-processModel.password
-processModel.loadUserProfile
-processModel.manualGroupMembership
-processModel.idleTimeout
-processModel.maxProcesses
-processModel.shutdownTimeLimit
-processModel.startupTimeLimit
-processModel.pingingEnabled
-processModel.pingInterval
-processModel.pingResponseTime
-recycling.disallowOverlappingRotation
-recycling.disallowRotationOnConfigChange
-recycling.logEventOnRecycle
-recycling.periodicRestart.memory
-recycling.periodicRestart.privateMemory
-recycling.periodicRestart.requests
-recycling.periodicRestart.time
-recycling.periodicRestart.schedule.[value='timespan'].value
-failure.loadBalancerCapabilities
-failure.orphanWorkerProcess
-failure.orphanActionExe
-failure.orphanActionParams
-failure.rapidFailProtection
-failure.rapidFailProtectionInterval
-failure.rapidFailProtectionMaxCrashes
-failure.autoShutdownExe
-failure.autoShutdownParams
-cpu.limit
-cpu.action
-cpu.resetInterval
-cpu.smpAffinitized
-cpu.smpProcessorAffinityMask
-cpu.smpProcessorAffinityMask2
)

By appending "-?" to the command above, appcmd generates an error that lists all of the attributes that can be used with application pools.

Piping Output

You can pipe appcmd output to another appcmd command. Having this capability is extremely powerful, especially in the area of scripting functionality around appcmd.

The following command will find all application pools with names ending in "2007" and will then recycle each of them.

appcmd apppool list /name:"$=*2007" /xml | appcmd apppool recycle /in

(The "/in" switch causes the output from the first command to be sent to stdin.)

A more useful example might be to restart all application pools serving requests that have been executing for longer than a particular amount of time. The following command will recycle all application pools serving requests that have been executing for more than 30 seconds.

Appcmd list request /xml /time:"$>30000" | appcmd recycle apppool /in

In such situations, you might want to also obtain a list of the application pools. You can use multiple pipes to achieve that result.

Appcmd list request /xml /time:"$>30000" | appcmd list apppool /in /xml | appcmd recycle apppool /in

AppcmdUI

These examples only touch on the capabilities of appcmd.exe. One of the best ways to discover the capabilities of this tool is to use AppcmdUI. AppcmdUI is an interface into appcmd.exe. It gives you auto-completion for appcmd.exe commands and nicely formatted documentation so that you can more easily learn this powerful tool.

AppcmdUI is available from the IIS.net website.

By the way, those of you familiar with PowerShell might think that appcmd.exe uses PowerShell for some of its functionality. It doesn't. Therefore, appcmd.exe can be used with Windows 2008 Server Core as well.

Jim
Jim Cheshirehttp://blogs.msdn.com/jamesche/ProfileUrlRedirect.ashxUpdate on Slow Startup Fixhttp://blogs.msdn.com/b/jamesche/archive/2008/01/08/update-on-slow-startup-fix.aspx2008-01-08T18:13:59Z2008-01-08T18:13:59Z
A while back, I wrote a post regarding slow startup of ASP.NET 2.0 applications due to a lookup on a bad account. The hotfix for that issue is now available. The KB number is 944157. You can get the fix by calling PSS or by using our online automated system.

Jim
Jim Cheshirehttp://blogs.msdn.com/jamesche/ProfileUrlRedirect.ashxHaving Network Problems on Win2003 SP2?http://blogs.msdn.com/b/jamesche/archive/2007/12/19/having-network-problems-on-win2003-sp2.aspx2007-12-20T05:14:00Z2007-12-20T05:14:00Z
We've seen quite a few issues recently from customers having network problems on Windows Server 2003 SP2. These issue range from connections being reset to seeing things like database mirroring issues, etc. In other words, anything involving network traffic. In many of these issues, the problem is a new setting in Windows Server 2003 SP2 called TCP Chimney.

TCP Chimney is a new feature that improves network performance by offloading handling of TCP packets to the hardware layer, specifically to the network interface card (NIC). It works great if your NIC and NIC driver are capable. If they aren't, you will see strange network issues such as I described in above.

If you're experiencing problems with your network on SP2, the first step is to look for a new driver for your NIC. A new driver will sometimes correct the problem. In cases where it doesn't, disabling TCP Chimney is a good idea. If that resolves the issue, you can chalk your issue up to a NIC and/or NIC driver that just doesn't work correctly with this new feature.

1. To disable TCP Chimney, follow these steps:

2. Click Start, click Run, type cmd, and then click OK.

3. At the command prompt, type:

Netsh int ip set chimney DISABLED

4. Press the ENTER key.

No reboot or restart is required for this to take effect. It will take effect immediately.

Jim
Jim Cheshirehttp://blogs.msdn.com/jamesche/ProfileUrlRedirect.ashxCreating Strings - A Case Studyhttp://blogs.msdn.com/b/jamesche/archive/2007/12/11/creating-string-a-case-study.aspx2007-12-11T22:45:27Z2007-12-11T22:45:27Z
I recently worked an issue with a customer who was experiencing high CPU. Performance Monitor data showed that the % of Time in GC was 46%. We generally recommend that you not be in GC more than 5% of the time, so this was a point of interest.

One of the common causes of very frequent GC is GC.Collect() being called. I checked the # of Induced GC Perfmon counter and it was greater than 8,000 with a process uptime of only a few hours. This was obviously a clear sign that someone was calling GC.Collect() a lot! ASP.NET will call GC.Collect() at times, but not nearly this often.

We found a DLL that was causing that problem and fixed it. Good news. Induced GC was now 0. Bad news. CPU and Time in GC were both still high.

Many issues that we work are like this; like peeling an onion. We resolve one part of the issue only to discover other problems coming to the surface. This was just such an issue. Once we resolved induced GCs, a pattern became clear.

Have a look at the Perfmon data shown below. The color-key appears below the image:

Red: % of Time in GC
Blue: % Processor Time
Tan: # of Bytes in All Heaps
Black: Large Object Heap Size

The first thing to notice is that things started out okay and then went bad very quickly. One of the things that can cause that pattern is a problem call stack. (In fact, that's the issue here. More soon.) We can also see that something is creating a lot of objects and that's causing considerable memory pressure. That's causing us to go into GC often, but even when we're not in GC, you can see that CPU remains high.

The first thing I decided to do was to check the Large Object Heap to see what we had there.

0:046> !dumpheap -min 85000 -stat

Statistics:

        MT      Count     TotalSize Class Name

0x000f3198         69    87,714,456      Free

0x03084300        123   158,192,160 System.String

Total 192 objects, Total size: 245,906,616

This tells me that the memory we see in the LOH is taken up by strings. In fact, when I looked at some of these strings in the debugger, they turned out to be XML data generated by the customer.

I then checked to see where one of these big strings was rooted. It was rooted in a thread, so I checked that stack and saw this:

0:053> kL

ChildEBP RetAddr

0635b890 791c134c mscorsvr!wstrcopy+0x26

0635b8a4 035ac67c mscorsvr!COMString::FillStringChecked+0x37

This tells me that we're making a copy of a string, so I checked the managed stack. When I did, I found a couple of interesting problems. First of all, the customer had a function call that was recursive and had hundreds of iterations already. Secondly, I could tell that each iteration of that function created more strings via wstrcopy. This is a clear sign of string concatenation, and indeed, in another dump I could see concat being called.

In the end, the customer's allocation pattern caused memory pressure and caused us to go into GC much more often than we should have. (In particular, the customer was creating a large number of objects on almost a per-request basis.) Because of this, the customer experienced high CPU and poor application performance.

I hope this helps others who might see the same kind of thing in production applications.

Jim
Jim Cheshirehttp://blogs.msdn.com/jamesche/ProfileUrlRedirect.ashxPurchase My Books in the Microsoft Company Storehttp://blogs.msdn.com/b/jamesche/archive/2007/11/28/purchase-my-books-in-the-microsoft-company-store.aspx2007-11-29T04:18:14Z2007-11-29T04:18:14Z
I received notification today that Microsoft has decided to carry a small number of non-Microsoft Press books in the Microsoft Company Store in Redmond. One of those books will be mine, most likely my latest book on ASP.NET 3.5.

If you're a Microsoft employee or otherwise have access to the Company Store in Redmond, please drop by and buy my book! At this time, the book will not be available at other Microsoft campuses, nor will it will be available on the online Company Store. That may change if this pilot is successful.

Jim
Jim Cheshirehttp://blogs.msdn.com/jamesche/ProfileUrlRedirect.ashxMy New Zune : Thoughts from an iPod Junkiehttp://blogs.msdn.com/b/jamesche/archive/2007/11/14/my-new-zune-thoughts-from-an-ipod-junkie.aspx2007-11-14T16:19:00Z2007-11-14T16:19:00Z
Yesterday morning I replaced my iPod with a new Zune 2. I've owned 4 iPods over the years, and I've always loved them. When the first Zunes released, I wasn't tempted at all to replace my trusty iPod. That all changed when I heard of the new features in Zune 2, and after using the new Zune for a day, I am convinced that it's hands-down better than what Apple offers.

The Hardware

My 80GB Zune feels smaller than my 80GB iPod, but the screen on it seems HUGE in comparison. I'd love to see a higher resolution screen on the Zune for video (you can see pixels if you look closely enough), but it's not a big deal to me. Video looks great and the colors are incredibly vibrant. The huge, widescreen display is perfect for watching my video podcasts. (Yes, the Zune has podcast support now.)

Another great thing about the Zune 2 is that it's extremely scratch-resistant. The screen is glass, so it's just about impervious to scratches. The rest of the front of the case is a matte finish that resists fingerprints. The rear of the case is a matte aluminum that doesn't show fingerprints and doesn't scratch. It also provides a great feel when holding the Zune.

The new controller on the Zune is called a ZunePad. It's one of those things that you can't truly appreciate until you use it. It's touch-sensitive so that you can swipe your thumb across it for fast scrolling, but it's also a tactile clicker. I've often been frustrated by the iPod wheel because it's sometimes hard to select an item with it. Because the ZunePad can be swiped with the thumb as well as clicked for precise selection, it's a perfect solution.

The new Zunes also offer WiFi sync. It works well and is a huge convenience. Users of first-version Zunes get all of the new software features in a firmware update, including the ability to sync via WiFi.

The Software (on the device and on the PC)

The Zune 2 software flashed onto the device is nice for someone coming from the utilitarian iPod. My favorite feature is the full-screen album art. I'm not a big fan of the huge letters on the home screen. It would be nice to have the option of making them smaller.

Navigation is easy and very attractive. I played with a friend's first-generation Zune when they first released and I found it confusing and a little awkward. The Zune 2 is a huge improvement and I find it to be very intuitive. It also has nice touches that you don't appreciate at first. For example, when you select an album for a particular artist, you get the typical screen showing the tracks where you can select to play all tracks or an individual track. However, you also get a horizontally-scrolling thumbnail view of all of that artist's albums along the top of the screen. If you're trying to find a particular song but you're not sure which album it's on, you can swipe your thumb left and right until you find the track. That same operation on the iPod requires you to select an album, scroll through the track list, click Menu to go back, scroll to a new album, select it, etc. The Zune's interface feels more polished to me.

The Zune software that installs on your PC is equally nice, and it solves some of the frustrations I have with iTunes. Podcast support is certainly not an afterthought (as I thought it would be) and unlike iTunes, you can control how many episodes are kept, etc. for individual podcasts. In other words, I have some podcasts that release daily, and I want to keep the latest 4 episodes. Another podcast might release weekly and I might only want to keep the latest episode of that one. The Zune software makes configuring that easy. You can't do it at all in iTunes.

Another enormous advantage is being able to add as many folders as I want for my music collection. I like to keep my music separated from video and podcasts. Using the Zune software, I can add as many folders as I want (on any drive) and Zune software will watch those folders. With iTunes, you have one folder and that's it.

When I first set up my Zune, I pointed it to the music on my external firewire hard drive. After using it for a few hours, I decided that I wanted to put all of my music on my laptop hard drive, so I copied it all over and reconfigured the Zune software to point to the new folder on my hard drive. When I synced my Zune, it was smart enough to accept the new configuration without requiring me to resync the entire device. Making that same change in iTunes often requires a resync of your iPod, a process that can take a considerable amount of time.

Another huge plus with the Zune is the Zune Pass. For $15 per month, I can download anything I want. I can use that music on up to three computers and three Zunes, and I can keep it as long as I keep my subscription active. The iPod doesn't offer any subscription services.

The Zune Marketplace doesn't have as much music as iTunes yet, but it does offer more music than many other music services. (James Taylor's new album released yesterday and I was able to download it immediately!) You can also purchase DRM-free MP3 music from the Zune Marketplace. (Yes, MP3 format, not WMA.)

I could go on and on, but you get the idea. I'm sure you think that I'm a Zune fan because I work for Microsoft. Not true! I've been an iPod junkie for years. I am a fan of the Zune 2 because it truly is a superior device in my opinion, is a joy to use, sounds great, and "fixes" many of the annoyances I have with iTunes/iPod.

Great job, Zune team! This one's a winner.

Jim

 [In order to avoid prolonging the debate of iPod vs. Zune, I've decided to close comments on this post. I think the existing comments sufficiently represent both sides of the debate.]

Jim Cheshirehttp://blogs.msdn.com/jamesche/ProfileUrlRedirect.ashxNew Hotfix: Run ASP.NET Without Full Trust in My_Computer_Zonehttp://blogs.msdn.com/b/jamesche/archive/2007/11/12/new-hotfix-run-asp-net-without-full-trust-in-my-computer-zone.aspx2007-11-12T18:27:36Z2007-11-12T18:27:36Z
I have been working with the product group on a new hotfix that allows you to run ASP.NET 2.0 applications without associating the My_Computer_Zone code group with the Full Trust permission set in Code Access Security. The new hotfix is available now under KB article 943598.

Pay careful attention to the KB article because it gives you the specific CASPOL commands that you need to run after installing the hotfix.

Keep in mind that the configuration changes made after you install this hotfix will affect anything running ASP.NET 2.0. For example, SQL Server Reporting Service will not work after you change CAS settings for the My_Computer_Zone. (A solution for that is available in the KB article.) SharePoint will also likely be impacted by reconfiguring CAS and we have not tested this hotfix configuration with SharePoint.

Simply installing the hotfix will not impact your applications.
Jim Cheshirehttp://blogs.msdn.com/jamesche/ProfileUrlRedirect.ashxLong Delay on First Request to ASP.NET 2.0 Applicationhttp://blogs.msdn.com/b/jamesche/archive/2007/10/25/long-delay-on-first-request-to-asp-net-2-0-application.aspx2007-10-25T19:00:37Z2007-10-25T19:00:37Z
I have worked several issues recently regarding long delays on the first request to an ASP.NET application. These delays are much longer than typical app domain startups and JIT compiles. To troubleshoot these issues, I get hang dumps of the process to see what's going on. In those dumps, I can see that we are calling the LsaLookupNames2 API and we're waiting on that call. In almost all of the cases, we're waiting on an account lookup for an account named ProcessIdentity.

The source of this is a call we make in webengine.dll during the startup of the application domain. Because the ProcessIdentity account doesn't exist, we sit and wait on name resolution from trusted domains, etc. A workaround is to add a local account called ProcessIdentity to the web server, but many customers don't like that workaround.

We currently have a hotfix in the works for this issue. Once that hotfix is available, I will post information on it. In the meantime, you can use the workaround mentioned above. Please don't contact me or PSS asking for the fix for this. We haven't finished the fix yet and you won't be able to get it, but I thought it was an important enough issue to let you know about it now.

If you have a question, please post a comment here instead of calling PSS.

Thanks!

Jim
Jim Cheshirehttp://blogs.msdn.com/jamesche/ProfileUrlRedirect.ashxRunning ASP.NET in a Shared Hosting Environmenthttp://blogs.msdn.com/b/jamesche/archive/2007/09/30/running-asp-net-in-a-shared-hosting-environment.aspx2007-10-01T00:04:45Z2007-10-01T00:04:45Z
I was recently working on an issue with a large international hosting company. This company hosts many websites in a shared hosting environment, and one of their customers had uploaded a page that performed some tasks using ASP.NET that greatly concerned them.

The ASP.NET page allowed the following when it was browsed:

Browsing of files in the Windows directory using the System.IO namespace.

Browsing of folders in the Program Files directory using the System.IO namespace.

Browsing of files in the System32 directory using the System.IO namespace.

Output of the OS name and version number using the Environment class.

Output of the physical disk path (including one on an external file server) for the website's content using Server.MapPath.

Output of the server's local IP address using server variables.

These capabilities are not unique to ASP.NET. Most server-side programming technologies allow for the same functionality. However, my customer was concerned over exposing this much information about his internal environment and he wanted me to do something about it!

As you certainly know, ASP.NET runs inside of the CLR (Common Language Runtime), and because of that, ASP.NET is able to take advantage of the CLR's capabilities. One of those capabilities is a powerful security architecture that makes it easy to define the capabilities of a .NET Framework application.

By default, ASP.NET runs under full trust. That means that an ASP.NET application has a lot of powerful functionality, some of which might not be desirable in a shared hosting environment. The solution to my customer's problem was to change ASP.NET to run under medium trust. When running under medium trust, an ASP.NET application runs in a much more restricted environment. Among other restrictions, running under medium trust prevents an ASP.NET application from accessing any directories outside of the application's own directory structure.

To run ASP.NET under medium trust, a simple change is made to the default web.config file located in the Microsoft.NET\Framework\v2.0.50727\Config folder. The specific change you should make is in the following section.

<location allowOverride="true">
<system.web>
  <securityPolicy>
    <trustLevel name="Full" policyFile="internal"/>
    <trustLevel name="High"
        policyFile="web_hightrust.config"/>
    <trustLevel name="Medium"
        policyFile="web_mediumtrust.config"/>
    <trustLevel name="Low"
        policyFile="web_lowtrust.config"/>
    <trustLevel name="Minimal"
        policyFile="web_minimaltrust.config"/>
   </securityPolicy>
   <trust level="Full" originUrl=""/>
</system.web>
</location>

The first change you'll want to make is to set the allowOverride attribute to false. By making that change, you prevent an ASP.NET developer from overriding your change in his or her own web.config file. After making that change, you'll need to change the trust level from Full to Medium. Once you'd made those changes, the new section looks like the following. Changes appear in bold text.

<location allowOverride="false">
<system.web>
  <securityPolicy>
    <trustLevel name="Full" policyFile="internal"/>
    <trustLevel name="High"
        policyFile="web_hightrust.config"/>
    <trustLevel name="Medium"
        policyFile="web_mediumtrust.config"/>
    <trustLevel name="Low"
        policyFile="web_lowtrust.config"/>
    <trustLevel name="Minimal"
        policyFile="web_minimaltrust.config"/>
   </securityPolicy>
   <trust level="Medium" originUrl=""/>
</system.web>
</location>

Notice that the <trustLevel> element defines which configuration file contains the specific configuration settings for the specific trust level. The configuration for medium trust is contained a file called web_mediumtrust.config which is also located in the Config folder.

You can modify the web_mediumtrust.config file if you want more precise control over your security model. For example, my customer was concerned that ASP.NET developers were able to use the Environment class to access the OS name and the computer's netbios name. I was able to resolve that for him by making a modification to the ASP.NET permission set in the web_mediumtrust.config file.

<IPermission
     class="EnvironmentPermission"
     version="1"
     Read="TEMP;TMP;USERNAME;OS;COMPUTERNAME"
/>

By removing OS and COMPUTERNAME from the Read attribute of this element, I was able to prevent ASP.NET developers from accessing the information that concerned my customer.

You can read more about other limitations that this method imposes along with many more details in the following MSDN article.

http://msdn2.microsoft.com/en-us/library/ms998341.aspx

If you're interested in performing these same steps in ASP.NET 1.1, you can get details on doing so by watching the following video.

http://msdn.microsoft.com/msdntv/episode.aspx?xml=episodes/en/20050317ASPNETSS/manifest.xml

Jim
Jim Cheshirehttp://blogs.msdn.com/jamesche/ProfileUrlRedirect.ashxAutomating aspnet_compiler in Visual Web Developerhttp://blogs.msdn.com/b/jamesche/archive/2007/09/27/automating-aspnet-compiler-in-visual-web-developer.aspx2007-09-27T22:39:48Z2007-09-27T22:39:48Z
Visual Studio has a cool user interface for publishing a website using the Publish Web Site dialog, accessible by selecting Build, Publish Web Site. You can use this dialog to pre-compile your website and avoid having to deploy source code.

Visual Web Developer Express doesn't offer this dialog, but because the Publish Web Site dialog is just a front-end for aspnet_compiler.exe, you can use aspnet_compiler.exe from a command prompt to accomplish the same thing if you are a VWD user. While using aspnet_compiler.exe from a command prompt gives you the same functionality, using a menu option is a lot more user-friendly and avoids possibly typos that can be frustrating.

In this post, I'm going to show you how you can add some menu options to VWD that will automate the user of aspnet_compiler. It won't give you the same flexibility and convenience you get with the full-blown Visual Studio, but it will come darn close.

Note: While I will show these steps in Visual Web Developer 2005 Express Edition, you can use the same steps for Visual Web Developer 2008 Express Edition.

To add the new menu item, I'll use the External Tools option on the Tools menu in VWD. (This menu option is also available in Visual Studio.) Using the External Tools dialog, you can add menu items that will execute external applications, and you can also control command line arguments that are passed to your external application and more.

Note: I also explain how to do this in my book, The Expression Web Developer's Guide to ASP.NET 3.5.

We'll create two menu items; one for pre-compiling an updatable application and another for a non-updatable application.

Launch Visual Web Developer Express.

Select Tools, External Tools to display the External Tools dialog.

In the Title box, enter Pre-&Compile (non-updatable).

Click the browse button next to the Command box and browse to aspnet_compiler.exe located in c:\Windows\Microsoft.NET\Framework\v2.0.50727.

Click Open to add the command line for aspnet_compiler.exe.

Now that you've got the correct command line for the aspnet_compiler.exe, it's time to add the arguments that will correctly pre-compile your application. This is where you'll see the true power of the External Tools dialog.

Type -p " in the Arguments box. (That's an opening double-quote after the p.)

Click the right-facing arrow next to the Arguments box and select Project Directory.

Add a trailing double-quote to the Arguments box.

Press the spacebar to add a space at the end of the existing arguments.

Type -v / " after the space you just entered.

Click the right-facing arrow next to the Arguments box and select Project Directory.

Type \..\CompiledApp" after the existing arguments.

At this point, the Arguments box should contain the following:

-p "$(ProjectDir)" -v / "$(ProjectDir)\..\CompiledApp"

Now check the Close on Exit checkbox and click OK to add the new command to your Tools menu.

You can create another menu item that will compile the application and allow it to be updated by creating another entry using Pre-Co&mpile (updatable) as the Title and by appending -u to the arguments.

After you complete these steps, your pre-compiled application will be saved at the same level as your application's folder. For example, if your website exists in the c:\MyWebsites\WebApplication1, the pre-compiled application will be saved to c:\MyWebsites\CompiledApp. If that folder structure doesn't suit you, you can alter the steps above for your own purposes.
Jim Cheshirehttp://blogs.msdn.com/jamesche/ProfileUrlRedirect.ashxASP.NET Version Madnesshttp://blogs.msdn.com/b/jamesche/archive/2007/09/25/asp-net-version-madness.aspx2007-09-26T00:22:00Z2007-09-26T00:22:00Z
With the impending release of Visual Studio 2008 and Visual Web Developer 2008, along with the .NET Framework 3.5, there is a bit of confusion around version numbers for ASP.NET. Before I get too far into this, let me just say right now that this post has little hope for clarifying things too much, but at least you won't feel so alone in your confusion.

If you've already installed one of the betas of the 3.5 Framework, you may have noticed that the C:\Windows\Microsoft.NET\Framework\v3.5 directory doesn't contain all of the files you would normally see in a .NET Framework release. In fact, the .NET Framework 3.5 is not a full release like version 2.0 was, or even like 1.1 was for that matter. Instead, version 3.5 kind of sits on top of version 2.0 and adds new features (significant new features) to the existing Framework.

How exactly does the 3.5 version affect ASP.NET developers? You'll get new features (like the AJAX Extensions built-in and LINQ features) and you'll get some fixes that we rolled up into the 3.5 Framework. Technically, however, you don't have a new version of ASP.NET. In fact, if you look at a standard ASP.NET error message after installing the 3.5 Framework, you'll see the ASP.NET version reported as 2.0.50727.xxxx.

Here's a bulleted list of some facts that apply after an install of the 3.5 Framework that may not seem intuitive:

You won't find ASP.NET 3.5 listed in the ASP.NET configuration dialogs for IIS. Application pools will still be configured to run ASP.NET 2.0.50727.

If you need to run aspnet_regiis, aspnet_compiler, etc., you'll still run them from the C:\Windows\Microsoft.NET\Framework\v2.0.50727 folder.

In order to use AJAX Extensions and the new LinqDataSource control in Visual Studio or Visual Web Developer 2008, you'll need to configure your project to target the .NET Framework 3.5. (See the docs that ship with your respective product for details.)

ASP.NET error pages (non-custom) will still report the ASP.NET version as v2.0.50727.xxxx.

Script maps in IIS will still be mapped to the 2.0.50727.xxxx version of the aspnet_isapi.dll.

With that in mind, you're probably thinking that we will continue to refer to ASP.NET as ASP.NET 2.0 after Visual Studio 2008 and Visual Web Developer 2008 release, right? Wrong! The official name for ASP.NET will be "ASP.NET in the .NET Framework 3.5", but the shorthand name is simply ASP.NET 3.5. But don't be confused. ASP.NET 3.5 is really ASP.NET 2.0 with the .NET Framework 3.5 installed running ASP.NET 2.0 binaries, even if your ASP.NET project in Visual Studio is targeting the .NET Framework 3.5. :)

Hopefully that clears up some of the confusion for ASP.NET developers. If it doesn't, there's always therapy.

Jim

Jim Cheshirehttp://blogs.msdn.com/jamesche/ProfileUrlRedirect.ashxWhy don't my .NET Framework patches install?http://blogs.msdn.com/b/jamesche/archive/2007/09/25/why-don-t-my-net-framework-patches-install.aspx2007-09-25T23:43:00Z2007-09-25T23:43:00Z
I recently worked an issue with a customer who was rolling out some patches to over 50,000 computers across his enterprise using SMS. SMS reported that the patches successfully installed on all workstations, but my customer noticed a strange anomoly that he couldn't explain. Even though SMS reported a successful installation on all of his workstations, it also reported many of these same workstations as unpatched on successive scans. Something was obviously awry.

Upon investigation, we found a log file in the customer's temp directory that contained the following:

[2007-09-22 01:00:00] ProcessFiles completed.
[2007-09-22 01:00:06] PatchExec: Unhandled Exception Microsoft.WindowsInstaller.InstallerException: The configuration data for this product is corrupt. Contact your support personnel.
 at Microsoft.WindowsInstaller.Installer.get_Products()
 at Microsoft.DDPatch.PatchInstallation.ApplyPatchToInstalledProducts(String mspFile, String target, TargetProduct[] targetProducts, Boolean quiet, String logfile, String& lastPatchedProductName)
 at Microsoft.DDPatch.PatchInstallation.Install(String targetProduct, Boolean quiet, String logfile)
 at Microsoft.DDPatch.PatchExec.Main(String[] args)
[2007-09-22 01:00:15] Process returned: 0

This sure doesn't look right. Obviously something didn't go well during the patch installation, but the return code we see here is 0. No wonder SMS believed that the patch successfully installed.

What happened? This particular patch (and some other .NET Framework patches) consists of a Windows Installer patch file (a .msp file) along with some wrappers around some APIs for the Windows Installer. These wrappers provide, among other things, support for rollback and for proper installation of the patch. In this particular case, one wrapper called an API that enumerated products installed by the Windows Installer. That API enumerated the HKEY_CLASSES_ROOT/Installer/Products registry key which contains a GUID for each product that's installed, but in my customer's case, it also contained some textual string values that were written to it by a bad installer from a third-party company.

When the API encountered this bad registry key, it returned an error code to our wrapper. Our wrapper then wrote out the failure to the log file and returned 0 because it had successfully done its job and logged the failure. Unfortunately, the other wrapper got the return code of 0 and believed that the install was successful.

It's worth pointing out that this is an extremely uncommon scenario. The keys written to the HKEY_CLASSES_ROOT/Installer/Products registry key should be added using the Windows Installer API. The Windows Installer API will create valid GUID keys and all will be fine. However, not all installation packages play by the rules, and in this case, we got bit.

WARNING: If you encounter a problem like this, it's important that you not just extract the .msp file out of the patch and install it manually. If you do that, you'll lose the ability to fully roll back the patch. Instead, you should try and locate the offending registry key and remove it.

In the long term, you won't have to worry about this. We've fixed this problem in our wrappers in order to provide a more fail-safe installation experience. The new wrappers should be incorporated into our .NET Framework patches soon.

Jim Cheshirehttp://blogs.msdn.com/jamesche/ProfileUrlRedirect.ashxVisual Studio 2008 Beta 2 Available - Now with VWD 2008http://blogs.msdn.com/b/jamesche/archive/2007/07/29/visual-studio-2008-beta-2-available-now-with-vwd-2008.aspx2007-07-29T17:44:00Z2007-07-29T17:44:00Z
We recently announced the RTW of Visual Studio 2008 beta 2. What you might not know is that beta 2 also introduces the new Visual Web Developer Express Edition 2008. ASP.NET developers should be pretty excited about the new features, and this product will be available free once it RTMs.

You can download the beta 2 build of VWD 2008 from the following URL:

 http://msdn2.microsoft.com/en-us/express/future/bb421473.aspx

If you're new to ASP.NET and want a great introduction to architecture and building web applications using VWD 2008 without a focus on writing a lot of server-side code, you might want to pre-order my book, The Expression Web Developer's Guide to ASP.NET 3.5. While the title does mention Expression Web, this isn't an Expression Web book. My publisher wanted to target Expression Web users because many of them are feeling the push to ASP.NET and we wanted to give them a strong foundation book.

You can pre-order my book on Amazon right now.

Jim

Jim Cheshirehttp://blogs.msdn.com/jamesche/ProfileUrlRedirect.ashxGet Hotfixes Without Calling PSShttp://blogs.msdn.com/b/jamesche/archive/2007/07/27/get-hotfixes-without-calling-pss.aspx2007-07-27T17:40:00Z2007-07-27T17:40:00Z
You can now get a hotfix from Microsoft without having to call PSS! Just browse the the following site.

https://support.microsoft.com/contactus2/emailcontact.aspx?scid=sw;en;1410&WS=hotfix

When you get there, enter the requested information and we'll send the hotfix to you automatically.

Jim

Jim Cheshirehttp://blogs.msdn.com/jamesche/ProfileUrlRedirect.ashxPlease listen carefully as our menus have changed.http://blogs.msdn.com/b/jamesche/archive/2007/03/09/please-listen-carefully-as-our-menus-have-changed.aspx2007-03-10T08:05:00Z2007-03-10T08:05:00Z
I recently had to call Samsung customer service due to a broken TV set. (It's actually a very long story that involved many calls over a 2-month period, but I won't bore you.) Shortly after that debacle, my Xbox went belly up with the dreaded three-red-light syndrome. That prompted a call to Microsoft Xbox support, and despite what many Microsoft outsiders think, Microsoft employees have no special access to such assistance. Both of these experiences required me to listen to a long menu of choices (and for some reason, all of these services have menus that have "recently changed" so you are encouraged to "listen carefully" to the entire, drawn out thing.)

Wouldn't it be nice if you had a way to look up a company's number along with the "secret" codes to punch in to get directly to a real, live human being? If only there were a massive network with information such as this that any person with a computer could access. It just so happens that there is just such a thing! It's called gethuman, and it includes a database of hundreds of companies and how to get straight to a real person. Very cool!

Jim Cheshirehttp://blogs.msdn.com/jamesche/ProfileUrlRedirect.ashxWPF Provides the Best of Timeshttp://blogs.msdn.com/b/jamesche/archive/2007/03/09/wpf-provides-the-best-of-times.aspx2007-03-09T19:24:00Z2007-03-09T19:24:00Z
New York Times publisher Pinchy Suzberger recently told Haaretz Daily Newspaper Israel, "I don't know if we will be printing in five years, and you know what, I don't care." My dad was in the newspaper business for many decades and worked for a few very large papers. I have a little experience with the publishers of these papers, and I wouldn't prop them up as technical visionaries, but in this case, Pinchy might just be right!

If you haven't already checked out the beta of the Times Reader, you should. It uses Windows Presentation Foundation (WPF) to display the Times in a very readable format. WPF is part of the 3.0 version of the .NET Framework, and it's darned impressive!

When you install the Times Reader on Windows XP SP2, you'll have to install the .NET Framework 3.0 as well. If you're on Vista, you're set and the download will be small. When you run the Times Reader, it downloads all of the content to your machine, so you can read offline if you want. However, if you stay online, the Times Reader will run in your system tray and keep your news updated on the fly.

While the Times Reader is in beta, you'll be able to read the paper free of charge.

Jim Cheshirehttp://blogs.msdn.com/jamesche/ProfileUrlRedirect.ashxFree VWD and SQL Server 2005 Express Hosting (For 30 Days)http://blogs.msdn.com/b/jamesche/archive/2007/03/08/free-vwd-and-sql-server-2005-express-hosting-for-30-days.aspx2007-03-08T23:52:00Z2007-03-08T23:52:00Z
If you're just getting around to checking out Visual Web Developer (whether as part of Visual Studio or by using the free Visual Web Developer Express Edition,) you might want to test out your application in a real-world hosting environment. Then again, most developers don't ever test anything, so why bother? :)

Assuming you do want to test things out without having to pay for ASP.NET 2.0 hosting, you can use Microsoft's VWDHosting.NET site to get a free Visual Web Developer and SQL Server 2005 Express hosting account good for 30 days. You'll get 50MB of disk space and 30MB of database space as well. This is a great way for new ASP.NET developers to test out how all of this works in a real-world hosting environment.

You can sign up right here.

Jim Cheshirehttp://blogs.msdn.com/jamesche/ProfileUrlRedirect.ashx


text:
WASHINGTON -- Interviewed by The New York Times during the 1960 Democratic National Convention, an unnamed 10-year-old boy spoke for generations of convention spectators: "You know, this is really very boring -- but somehow, you aren't bored."
The politics of any political convention is interesting for only the briefest of moments. Leading into the 1960 convention, Eleanor Roosevelt publicly hoped that John Kennedy's "unselfishness and courage" would lead him to accept the vice presidency where he could "grow and learn." The novelist Gore Vidal contributed an unused draft of Kennedy's convention speech. Sammy Mysels -- the composer of "Mention My Name in Sheboygan" -- co-wrote the Democratic campaign song.
But the right convention speech can transcend the trivia -- and Kennedy had a talent for injecting significance into a political moment. After almost 50 years, the New Frontier remains a vague concept, having something to do with the rising generation that fought World War II and the coming burdens of the Cold War. But the speech lent the young senator a gravity that comes with sternness, promising "more sacrifice instead of more security."
Once again we are hip-deep in convention politics, and Barack Obama has no shortage of tactical advice: Peel the bark off John McCain. Deal with "bread and butter" economic issues. Abandon all this gauzy "rhetoric." And Obama seems to have embraced the conventional wisdom: "I'm not aiming for a lot of high rhetoric," he said Monday. "I'm much more concerned with communicating how I intend to help middle-class families live their lives. ... This is going to be a more workmanlike speech."
That would be a blunder of historic proportions, precisely because Obama has been given a unique historical moment. He will fill it with significance or eventually be filled with regret.
Obama is advised to emphasize middle-class economic themes, as all recent Democrats have done. But to make a speech that will outlive the moment, he should also address America's deeper divisions based on wealth and opportunity, rooted in slavery and segregation, hidden behind highway sound barriers, revealed in crises such as Katrina, forgotten in a politics where only the middle class seems to count. Inequality is inseparable from liberty in a society that rewards striving -- but inequality becomes morally unjustifiable in the absence of economic mobility. America cannot accept the existence of a permanent underclass without altering its defining ideals. If Obama doesn't confront this reality -- given his background and aspirations of unity and justice -- it is hard to imagine that it will ever be confronted.
Bush mocks Rubio and his fans: Stop whining that it's "unfair" that you're being attacked by another candidate's Super PAC | Allahpundit


text:
Kwaidan by redredundance
Odd Crew day version by Mikeypetrov
Daughters of Boreas by Ryan-Alexander-Lee
Previous Issues | Digitally Delicious @ Tumblr
Digitally Delicious: Feb. 8th by ThiefoworldWatch
©2013-2016 Thiefoworld
OM NOM NOM! Yum~
So beautiful
WOW! I'll be diving into all of these galleries now. I know what I'm doing for the rest of the night! Thank you for the AMAZING feature!!
Brilliant feature.


text:
Tags: blonde, bitch, penetrated, , huge, cock, followed, cum, shower
Pornstars: Shyla Stylez
Submited: 7 years old
Views: 3049
Copyright © 2006 - 2016 DeviantClip.com - All Rights Reserved.
Support / Contact
Webmasters Area
Site Map
All actors and models appearing on this website are 18 years or older.
Section 2257
Blonde bitch penetrated by a huge cock followed by cum shower


text:
How ungrateful -- but keep it coming, people. I'll simply enjoy this game more for its strengths than bicker on personal downsides. Either way, I'm entertained.
I have a statement for everyone who's ********.
Less Q.Q more pew pew. kthaxbai.
The thing that makes it worse is that they haven't even played the game and they are saying this stuff. It's hilarious.
Tis' sad really.
How about you guys ***** at legitimate problems for your personal tastes, AFTER the game has been played extensively by yourself and the public.


text:
Why socialists and egalitarians hate the Big Society
A few months ago I visited a London prison where a group of volunteers were running a programme of restorative justice. Once a week and usually more these women would sacrifice hours of their time to go to a depressing environment to help complete strangers. Not just complete strangers, but not particularly nice ones either.
These are just the sorts of people David Cameron wants more of for his "Big Society", which he's re-launching today. It says much about the way socialist thinking has completely penetrated British life that even the idea of a voluntary society in which the state does not arrange everything is now considered unexplainably complicated to the British public.
Someone raised in the spirit of Victorian liberalism would understand instinctively the idea of civil society in which individuals and groups were joined through a network of obligation and trust, a society of "little platoons"; for most people today such ideas are as obscure as gnostic theological debates from the third century.
Cameron's Big Society is, I think (and I admit I'm not entirely sure what he means, and probably nor is he), based on the idea that, not only is the state not especially good at running some things, but by trying to do so it's actually eroding society by destroying the millions of social networks. This is aggravated by modern economic conditions in which people move houses and jobs too quickly for them to get to know their neighbours.
Instead of doing things ourselves, increasingly we have come to rely on the state to do not just the basic services, but even manage society. Compared to the United States, for instance, levels of volunteering, club membership and political activism in Britain are perilously low.
We all pay our high taxes and mostly obey the law and get on with it. Unfortunately, a society that lives merely by the "Golden Rule" will soon struggle to function economically or socially, as we are now – you need to live by the Platinum Rule, which is to do unto others better than they would to you.
And this is where Dave's Big Society runs into its first major problem – volunteering is, and always will be, dominated by religious groups, almost all of which have views that are incompatible with the moral ethos of the elite; some of them have views that give me the willies, let alone Dave's new Independent-reading friends in the SDP.
For example, I'm willing to bet that almost every one of those women I met giving up their time to care for prisoners would, if asked, tell you that gays are all going to Hell. They wouldn't express this view publicly, of course, because not only would the Prison Service kick them out, they could even be investigated by police, but their evangelical Christianity is clear on the subject.
Not only that, but religious groups are also by their vary nature exclusive, and some are actively separatist. Although most of the mainline churches now see themselves as a wing of the race relations industry – which helps to explain many an empty pew – not all religious groups see "faith communities" this way.
And just as a civil society is, arguably, impossible without the strong social networks of a religion, so it's perhaps impossible in a society with many religions. One of the reasons socialists love "diversity" so much is because it has to be policed and regulated by the state.
This is especially problematic here because of the ambiguity of how much these groups will be entirely voluntarily and how much state-subsidised. Harry's Place has already warned that the Big Society will be an "Islamist Bunfight".
It's not just in prisons where religious groups dominate, either. Church schools are so much better than their secular equivalents because they have higher levels of social capital; parents, pupils, priests and teachers are better connected to each other outside of school and this sense of community aids learning and good behaviour. Even parents who don't have religious belief recognise its use as a social adhesive.
The idea behind Free Schools is that, created by parent-volunteers, they will benefit from the same tight bonds sadly lacking in your typical comprehensive, but without the religious dogma or sectarianism of faith schools. You'd think "progressives" would be in favour.
Quite the opposite – the egalitarians hate "faith schools" not primarily because of the religious content but because, as elite state schools, they attract more middle-class pupils than others. Good church schools educate thousands of desperately poor children, and make a considerable effort to give them help and provide a social mix, but any organisation that provides a good product will become disproportionately middle class to a certain extent, just because there are always inequalities in life.
The same thing will happen in any area of Cameron's Big Society, whether it's communities that run their neighbourhood watch or their local museums. Everywhere it will be disproportionately full of middle-class types with education and time, and so will be accused of "excluding the most deprived members of society" – because only the Big State can strive for equality of outcome. Until the Conservatives and "real Liberals" take on that unobtainable, and evil, goal the Big Society can never take off.
Recent Posts
Conservatives – depressing everyone since 500BC
May 16th, 2013 16:22
Why are taxpayers supporting pro-immigration charities?
May 10th, 2013 13:50
Ukip is a reaction to Britain's new class system
May 2nd, 2013 14:04
What's the point of having a Tory party if it refuses to challenge the liberal consensus?
April 30th, 2013 10:59
I'm a Catholic, and I have a confession: I love Richard Dawkins
April 25th, 2013 12:17


text:
"Double Down: Delving in the Details of Diacid Adsorption at Aqueous Surfaces", P. G. Blower, N.A. Valley, S.R. Wood, K. L. Plath and G.L. Richmond, J. Phys. Chem. A, 118 (4778-4789) 2014.
"Designated Driver: The Differing Roles of Divalent Metal Ions in Surfactant Adsorption at the Oil-Water Interface", E.J. Robertson, D.K. Beaman and G.L. Richmond, Langmuir, 29 (15511-15520) 2013.[Download PDF]
"Ion Induced Reorientation and Distribution of Pentanone in the Air-Water Boundary Layer", K. L. Plath, N.A. Valley and G.L. Richmond, J. Phys. Chem., A, 117 (11514-11527) 2013.[Download PDF]
"Science Unlimited: Diversity Breeds Creativity", G. L. Richmond, Chemistry World, Royal Society of Chemistry, Invited Editorial, August 22, 2013. [Download PDF]
"Chunks of Charge: Effects at Play in the Assembly of Macromolecules at Liquid Surfaces", E. J. Robertson and G.L. Richmond, Langmuir, 29 (10980–10989) 2013. [Download PDF]
"Sink or Surf: Atmospheric Implications for Succinic Acid at Aqueous Surfaces", P. A. Blower, S. T. Ota, N. Valley S. Wood and G.L.Richmond, J. Phys. Chem, A, 117 (7887-7903) 2013.[Download PDF]
"The Unique Molecular Behavior of Water at the Chloroform-Water Interface" C.L. McFearin, G.L. Richmond, Appl. Spec. 64 (986-994) 2010. [Download PDF]


text:
About Group
No activity in last 7 days
Group Description
This is group of friends who just want to share valuable job openings information in IT, especially for Freshers.
Minimum number of mails.........but MAXIMUM information.
Minimum number of mails.........but MAXIMUM information.
Group Website
Group Information
- 5803
- Special Education
- Jun 13, 2004
- English
Group Settings
- This is a public group.
- Attachments are permitted.
- Members can hide email address.
- Listed in Yahoo Groups directory.
- Membership does not require approval.
- Messages require approval.
- All members can post messages.


text:
Hershey's Oversized Kiss Pillow is a cute and realistic Hershey's Kiss shaped pillow that measures 10 inches. The soft touch and candy wrapper resemblance is sure to make chocolate lovers have sweet dreams!
Double click on above image to view full picture
Hot Weather Tip
Please protect your treats on their journey by adding a Hot Weather Protection Package when you check out.Learn More


text:
Derpy Hooves and Shining Armor Dice Bags by WolferahmWatch
©2013-2016 Wolferahm
I must have this Derpy Dice Bag
Fricken awesome!! Do you do custom ones? :3
These are great, got to ask, are you going to be at any con in the cail area and sell these =x
I wish, I'm over in Minnesota.
These are really awesome!


text:
Ask DST #272: Minimate Multitudes!
It's another week, and another installment of Ask DST with Diamond Select Toys president DSTChuck! This week, the subject is Minimates, and while the toys themselves are small, the Minimates column is always long, the questions compounded and the character requests numerous! DSTChuck does his level best to answer all your questions, although the future is yet unwritten, so read on and learn! Continue reading