- name: Register testrepository.subunit file
  stat:
    path: "{{ zuul_work_dir }}/testrepository.subunit.gz"
  register: subunit

- name: Collect test-results
  synchronize:
    dest: "{{ zuul.executor.log_root }}"
    mode: pull
    src: "{{ zuul_work_dir }}/testrepository.subunit.gz"
    verify_host: true
  when:
    - subunit.stat.exists


Blog Pages..

Thursday, January 19, 2012

Gift of gratitude [Short Fiction]

She woke up from the sleep by a
rude disturbance, “Quick, you don’t have time!” her mother screamed into her ears
which shook her awake. She rubbed the sleep from her eyes and walked nimbly to
the courtyard. While she splashed water and cleaned- a basket full of jasmines
waited for her patiently. In a swift movement she picked it up and headed to
the Temple. “Mala, don’t stay out too
long. Come back for lunch!” her mother instructed with concern.

Mala, was a girl of ten. She had
grown up seeing her dad come home with a huge sack for fresh flowers. Her
parents would then carpet the floor with jute bags and splash water over it.
She would sit still and watch as they continued this chore religiously each
day. The flowers would be spread on the wet jute sacks. Her dad would chop off
the green stalks while her mother meticulously strung the colourful flowers
together in beautiful garlands. Different scents signified different seasons.
But there was one constant the- Jasmine, her mother had explained was a fragrant
emblem of gratitude to the lord, the princess of flowers. And, it was bought all round the year hence
forming a source for steady income into their family.

In the initial years had mother
had tagged her along because she didn’t want to leave the child alone but the
girl grew to become and more interested in the profession, till she decided she
should manage to sell a basket of Jasmines all by herself. So this was one of those early morning when
she would walk to the nearby temple, offer the best flower in the basket to the
Lord and carry on with the selling to return back only when the basket was empty.

She walked from one street to another,
identifying people who were likely to buy a garland of flowers it was then that
she saw this woman. A thirty something lady, frantically searching for
something from her purse. Mala waited
till the lady’s mission was accomplished and then took a step towards her
bright blue car, flowers hung from her printed cotton bag as she stretched her
little arm and propped it on the car window, “Just Rs.10 per garland” The
lady’s face softened with the scent of fresh jasmine. She smiled and cheerfully
paid for a garland. When Mala was about to walk back when the lady called out to
her softly,”Hey! Thank you”

Mala didn’t know what it meant.
She thought about that pleasant expression on that woman’s face. A warm and
beaming smile as she spoke those two words- “Thank you. Thank you. Thank you.”
Mala repeated it trying to smile as she lay on her bed before the final moments
of sleep dawned upon her. The next day
she asked her friend Appu, “Do they teach- Thank you in your night
school?” Her little companion jumped
with glee,” They do! They do! It means- Thanks-gratitude” before
she could ask anything else Appu disappeared into the market to continue her
selling. Mala sat at the exact location
as yesterday wishing she would see the lady again. While she waited, “Thank you
Thank you.” She practiced the expression till she got it correct. It moved her deeply to be able to say those
two words.

The following day when her mother
woke her up she uttered the magical words, “Thank you. Thank you Amma.” The
baffled expression of her mom eased when she saw Mala smile. “I am grateful.”
Her mother smiled and carried on with the day. Mala did the same things she did
everyday but today each interaction ended with “Thank you.” When people bought
garlands from her she smiled beaming, expressing her gratitude- “Thank you.” She
managed to empty the basket much earlier than ever and there was this immense
peace, a little joy when she saw people smile as she said those miraculous
words. It was in the late evening, when she saw the lady in the blue car, before she could
reach her, the car had moved keeping pace with the change in the traffic
signal. Mala held the last garland of Jasmines, she had kept aside just in case she saw the lady in the blue car again. A fragrant emblem of gratitude, coupled with two words from the
depth of her heart which she murmured to the lady who faded into the crowd, - “Thank You!” and a smile bent her lips and lightened her heart.

Feedjit

Unless mentioned otherwise, the images used on this blog are usually taken from the net. I do not own the copywrites for these images. In case any owner has an issue. Kindly let me know and I will take it off.


<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
<!-- Copyright © 1991-2014 Unicode, Inc.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
For terms of use, see http://www.unicode.org/copyright.html
-->
<ldml>
	<identity>
		<version number="$Revision: 10701 $"/>
		<generation date="$Date: 2014-07-30 13:14:57 -0700 (Wed, 30 Jul 2014) $"/>
		<language type="mhl"/>
		<script type="Latn"/>
	</identity>
	<layout>
		<orientation>
			<characterOrder>left-to-right</characterOrder>
			<lineOrder>top-to-bottom</lineOrder>
		</orientation>
	</layout>
	<characters>
		<exemplarCharacters draft="unconfirmed">[a b d e f g i k l m n o p r s t u w y]</exemplarCharacters>
		<exemplarCharacters type="auxiliary" draft="unconfirmed">[c h j q v x z]</exemplarCharacters>
	</characters>
</ldml>


//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
// $NoKeywords: $
//=============================================================================//
#include "cbase.h"
#include "baseanimatedtextureproxy.h"

// memdbgon must be the last include file in a .cpp file!!!
#include "tier0/memdbgon.h"

class CAnimatedTextureProxy : public CBaseAnimatedTextureProxy
{
public:
	CAnimatedTextureProxy() {}
	virtual ~CAnimatedTextureProxy() {}
	virtual float GetAnimationStartTime( void* pBaseEntity );
};

EXPOSE_INTERFACE( CAnimatedTextureProxy, IMaterialProxy, "AnimatedTexture" IMATERIAL_PROXY_INTERFACE_VERSION );

#ifdef _WIN32
#pragma warning (disable : 4100)
#endif

float CAnimatedTextureProxy::GetAnimationStartTime( void* pBaseEntity )
{
	return 0;
}


Q:

php dropdown - show current year starting from 2017

<?php

echo '<select name="fromYear"';
 $starting_year  =date('Y', strtotime('-1 year'));
$current_year = date('Y');
 $ending_year = date('Y', strtotime('+10 year'));

 for($starting_year; $starting_year <= $ending_year; $starting_year++) {
     echo '<option value="'.$starting_year.'"';
     if( $starting_year ==  $current_year ) {
            echo ' selected="selected"';
     }
     echo ' >'.$starting_year.'</option>';
 }
 echo '<select>';
?>

Hi i have this code how to modify this..to show current year and previous year starting from 2017
starting year : 2017
when in 2017 : i will only see 2017 in drop down
2018 : 2017, 2018
2019 : 2017, 2018, 2019
2020 : 2017, 2018, 2019, 2020
and so on...

A:

Use do while to start for the current year as follows:
<?php
    $starting_year = 2017;
    $current_year = date('Y')*1;
    echo '<select name="years">';
    echo '<option>Select</option>';
    do {
        echo '<option value="'.$starting_year.'">'.$starting_year.'</option>';
        $starting_year++;
    }
    while ($current_year >= $starting_year);
    echo '</select>';

    ?>

Online Demo
From PHP official documentation:

do-while loops are very similar to while loops, except the truth
  expression is checked at the end of each iteration instead of in the
  beginning. The main difference from regular while loops is that the
  first iteration of a do-while loop is guaranteed to run (the truth
  expression is only checked at the end of the iteration), whereas it
  may not necessarily run with a regular while loop...


Letter from Durden, our Penguin

At last we have been able to get a nice photo of our chicks. As you can see from
the photo the chicks have been doing really well and they are growing fast. That’s
because there are lots of fish close to where we live, so the chicks get plenty
of food to eat. The more they eat the faster they grow.

Being able to catch food easily also means we have more time to spend with the
chicks. It is nice for us to spend time relaxing in the nest with the chicks,
but it is also important for the chicks. We spend lots of time grooming the chicks
to get rid of parasites such as ticks and fleas, which suck their blood and make
them sick if we don’t have time to keep the chicks clean.

Because we are adopted, we have kind people who come to visit us to make sure
that we are okay. That is a big help because we have a lot of work bringing back
enough food to feed the hungry chicks.

It takes about an hour to reach the beach from where our nest is. It is not very
far, but penguins don’t walk very quickly. Then we have to swim about 20km to
where the fish are before we can begin catching them. This takes over an hour
to swim the 20km. Then after catching lots of fish we have to swim the 20km back
home and walk back to the nest with the food for the chicks.

The whole journey takes about 12 hours, and we do it every day. It would take
a lot longer if there were less fish to catch. We set off in the early morning
and return in the afternoon. Luckily in mid summer it is daylight by 4 o’clock
in the morning, and it does not get dark until 11 o’clock at night, so we have
plenty of time to do it all in a day, and still have time to spend with the chicks.
That is the reason that we move here in the summer, because the days are very
long here in summer, making it easier to catch food for the chicks in a single
day.

Now that the chicks are bigger we both have to go to sea in order to bring back
enough food to satisfy their hunger. So the chicks are left on their own for
several hours each day. Of course the chicks get bored, so now that they are
big enough to leave the nest, they go and play with their friends in the neighbouring
nests.

It will not be long before the chicks are ready to leave the nest and head out
into the open ocean to begin life on their own. Before they do that they change
all their fluffy baby feathers for sleek waterproof feathers like ours. This
is important because the baby feathers are only for use on dry land. They soak
up water like a sponge if they get wet, but our feathers are waterproof and made
for the water.

But until then there is lots of work to be done, so I will write to you again
when the chicks are leaving the nest and heading out to sea.


Q:

SQLite keeps the database locked even after the connection is closed

I'm using System.Data.SQLite provider in an ASP.NET application (framework 4.0).
The issue I'm running into is that when I INSERT something in a table in the SQLite database, the database gets locked and the lock isn't being released even after the connection is disposed.
When trying to access the file, the error is: "The process cannot access the file 'catalog.sqlite' because it is being used by another process."
My code is pretty straightforward, I open the connection, read some data from a SQLServer database, insert that data into SQLite (through SQLiteDataAdapter) and then close the connection and dispose everything just to be on the safe side. But still, I get that error when I try to zip the file after it's being populated with the data.
I've read all kind of suggestions here on StackOverflow but none of them has helped solving the problem (turning off the antivirus, changing the transaction model, waiting a few seconds before zipping up the file, wrapping all the insert calls into a transaction, etc.. but none has helped solving this issue.
Maybe there's something specific to ASP.NET (multithreading being the issue? Even though I'm testing it on a development machine where there's only one call to that function and no concurrency?)
As a side note, I tried avoiding DataTable and SQLiteDataAdapter and using only SQLiteCommand directly and that way it works a charm. Of course I can keep building my queries as strings instead of using the data adapters, but I kind of find it a bit awkward when there's a framework built to do that.

A:

I had the same problem using the datasets/tableadapters generated with the designer shipped with System.Data.Sqlite.dll version 1.0.82.0 -- after closing the connection we were unable to read the database file using System.IO.FileStream. I was disposing correctly both connection and tableadapters and I was not using connection pooling.
According to my first searches (for example this and this thread) that seemed a problem in the library itself -- either objects not correctly released and/or pooling issues (which I don't use).
After reading your question I tried to replicate the problem using only SQLiteCommand objects and I found that the problem arises when you don't dispose them. Update 2012-11-27 19:37 UTC: this is further confirmed by this ticket for System.Data.SQLite, in which a developer explains that "all SQLiteCommand and SQLiteDataReader objects associated with the connection [should be] properly disposed".
I then turned back on the generated TableAdapters and I saw that there was no implementation of the Dispose method -- so in fact the created commands were not disposed. I implemented it, taking care of disposing all the commands, and I have got no problem.
Here's the code in C#, hope this helps. Please note that the code is converted from the original in Visual Basic, so expect some conversion errors.
//In Table Adapter
protected override void Dispose(bool disposing)
{
   base.Dispose(disposing);

    Common.DisposeTableAdapter(disposing, _adapter, _commandCollection);
}

public static class Common
{
    /// <summary>
    /// Disposes a TableAdapter generated by SQLite Designer
    /// </summary>
    /// <param name="disposing"></param>
    /// <param name="adapter"></param>
    /// <param name="commandCollection"></param>
    /// <remarks>You must dispose all the command,
    /// otherwise the file remains locked and cannot be accessed
    /// (for example, for reading or deletion)</remarks>
    public static void DisposeTableAdapter(
        bool disposing,
        System.Data.SQLite.SQLiteDataAdapter adapter,
        IEnumerable<System.Data.SQLite.SQLiteCommand> commandCollection)
    {
        if (disposing) {
            DisposeSQLiteTableAdapter(adapter);

            foreach (object currentCommand_loopVariable in commandCollection)
            {
                currentCommand = currentCommand_loopVariable;
                currentCommand.Dispose();
            }
        }
    }

    public static void DisposeSQLiteTableAdapter(
            System.Data.SQLite.SQLiteDataAdapter adapter)
    {
        if (adapter != null) {
            DisposeSQLiteTableAdapterCommands(adapter);

            adapter.Dispose();
        }
    }

    public static void DisposeSQLiteTableAdapterCommands(
            System.Data.SQLite.SQLiteDataAdapter adapter)
    {
        foreach (object currentCommand_loopVariable in {
            adapter.UpdateCommand,
            adapter.InsertCommand,
            adapter.DeleteCommand,
            adapter.SelectCommand})
        {
            currentCommand = currentCommand_loopVariable;
            if (currentCommand != null) {
                currentCommand.Dispose();
            }
        }
    }
}

Update 2013-07-05 17:36 UTC gorogm's answer highlights two important things:

according to the changelog on the official site of System.Data.SQLite, starting from version 1.0.84.0 the above code should not be needed, since the library takes care of this. I haven't tested this, but in the worst case you only need this snippet:
//In Table Adapter
protected override void Dispose(bool disposing)
{
  base.Dispose(disposing);

  this.Adapter.Dispose();
}

about the implementation of the Dispose call of the TableAdapter: it is is better to put this in a partial class, so that a dataset regeneration does not affected this code (and any additional code you may need to add).

A:

I have the same problem. My scenario was after getting the data inside SQLite Database file I want to delete that file but it always throw an error "...using by other process". Even I dispose the SqliteConnection or SqliteCommand the error still occur. I've fixed the error by calling GC.Collect().
Code snippet
public void DisposeSQLite()
{
    SQLiteConnection.Dispose();
    SQLiteCommand.Dispose();

    GC.Collect();
}

Hope this help.

A:

In my case I was creating SQLiteCommand objects without explicitly disposing them.
var command = connection.CreateCommand();
command.CommandText = commandText;
value = command.ExecuteScalar();

I wrapped my command in a using statement and it fixed my issue.
static public class SqliteExtensions
{
    public static object ExecuteScalar(this SQLiteConnection connection, string commandText)
    {
        // Added using
        using (var command = connection.CreateCommand())
        {
            command.CommandText = commandText;
            return command.ExecuteScalar();
        }
    }
}

Then you can use it like this
connection.ExecuteScalar(commandText);


Cardiovascular radiology in Peking: trends for the future.
The author outlines his visit to the People's Republic of China, and relates his observations. Comments about the present state of cardiovascular radiology in China, her special health care and economic problems, and the potential for educational exchange are offered.


Q:

WPF CustomControl Commands and databinding

Well i have a custom control called Dialog to slim it down to the problem
Here is my vb.net code:
Public Class Dialog
    Inherits System.Windows.Controls.Control

#Region "DependencyProperties"

    Public Shared ReadOnly OkCommandProperty As DependencyProperty = _
                           DependencyProperty.Register("OkCommand", _
                           GetType(ICommand), GetType(Dialog), _
                           New FrameworkPropertyMetadata(Nothing))

    Private Shared ReadOnly YesCommandPropertyKey As DependencyPropertyKey = _
                            DependencyProperty.RegisterReadOnly("YesCommand", _
                            GetType(ICommand), GetType(Dialog), _
                            New FrameworkPropertyMetadata(Nothing))

    Public Shared ReadOnly YesCommandProperty As DependencyProperty = _
                           YesCommandPropertyKey.DependencyProperty

#End Region

    Public ReadOnly Property YesCommand() As ICommand
        Get
            Return CType(GetValue(ConfirmationDialog.YesCommandProperty), ICommand)
        End Get
    End Property

    Public Sub New()
        MyBase.New()
        SetValue(ConfirmationDialog.YesCommandPropertyKey, New RelayCommand(AddressOf Yes))
    End Sub

#Region "Commands"
    Public Property OkCommand() As ICommand
        Get
            Return CType(GetValue(OkCommandProperty), ICommand)
        End Get
        Set(ByVal value As ICommand)
            SetValue(OkCommandProperty, value)
        End Set
    End Property
#End Region

#Region "Functions"
    Sub Ok()
        Dim command As ICommand = OkCommand
        If (command Is Nothing AndAlso command.CanExecute(Nothing)) Then
            command.Execute(Nothing)
        End If
    End Sub

    Sub Yes(ByVal parameter As Object)
        Ok()
        Me.Visibility = Windows.Visibility.Collapsed
    End Sub
#End Region

    Shared Sub New()
        'This OverrideMetadata call tells the system that this element wants to provide a style that is different than its base class.
        'This style is defined in themes\generic.xaml
        DefaultStyleKeyProperty.OverrideMetadata(GetType(Dialog), New FrameworkPropertyMetadata(GetType(Dialog)))
    End Sub
End Class

and here is my xaml:
<Style TargetType="{x:Type local:Dialog}">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type local:Dialog}">
               <Button Content="Yes" Command="{Binding YesCommand}"/>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

But YesCommand does not seem to work, but if i put OkCommand it works so why can't i bind to a command thats defined and set in codebehind (or the control code)?

A:

What is your DataContext? Do you need to set it:
Public Sub New()
    MyBase.New()
    SetValue(ConfirmationDialog.YesCommandPropertyKey, New RelayCommand(AddressOf Yes))
    DataContext = Me
End Sub


AFL-CIO President Richard Trumka is expected to get another 4-year term as head of the nation's largest labor federation Alex Wong/Getty Images

The AFL-CIO, the country’s largest labor federation, kicked off its quadrennial convention in Los Angeles Sunday on the heels of the announcement by its president Richard Trumka that it was considering opening its ranks to millions of non-union members in a bid to inject political power into the nation’s sagging labor movement.

"The labor movement really is at a crossroads, and we have some decisions to make," Trumka said in an interview with Reuters several days before the gathering.

At center stage in Trumka’s calculus is the decades-long political clash between big labor and corporate America, a battle that he said has overwhelmingly favored the latter.

"During the last 20 years, corporate America went for the final victory and used every front they could to take away workers' rights," Trumka said. "So it's important for us to come together to...function like the majority we are, rather than little silos that can be marginalized."

To that end, this year’s convention is seeking a wider coalition of politically progressive entities in a bid to transform the federation’s effectiveness as part of a broader permanent political coalition.

Community organizations, non-union labor groups, religious leaders and other potential allies will try to help the AFL-CIO figure out its four-year blueprint for bolstering the status of workers.

"Our opposition is well-financed and determined...We're too small to do it alone," he told the Los Angeles Times Thursday.

Echoing Trumka’s call on the opening night was an upbeat address by Sen. Elizabeth Warren, D-Mass., who proclaimed that the cause of the labor movement was inseparable from a wider agenda to protect the average American from special corporate interests.

“On almost every issue of economic concern, our values are America’s values, and our agenda is America’s agenda,” she said.

She said that over the course of the last century, it has been labor organizations which have stood up against “powerful interests.”

“At every turn, in every time of challenge, organized labor has been there, fighting on behalf of the American people,” she said.

Warren, who is her state’s freshmen senator and serves on the Senate Banking Committee, has been lauded by labor groups for her resolute stance on issues from Wall Street regulation to consumer protection.

While the AFL-CIO is easily the nation’s largest labor bloc, representing more than 12 million workers and 57 member unions, its political power has declined alongside the broader shrinking in the labor movement as a whole. The proportion of the U.S. workforce with union representation was 11.3 percent in 2012, down from 20.1 percent in 1983, when Bureau of Labor Statistics data began.

Tom Kutsch contributed to this report, with wire services


Such a door arrangement is disclosed e.g. in US 2009/0096339 A1, where an attenuation and retraction device is hidden inside a rail element. Other arrangements are known where the attenuation and retraction devices are placed at the midpoint of a door's long edge. In the first case, such known solutions suffer from being relatively complex and very difficult to assemble, adjust or repair for an end user. In the latter case, the solution suffers from the attenuation and retraction device extending from the side wall in an obstructive way. Additionally, with such an attenuation and retraction device, the door becomes very difficult to adjust, e.g. in order to compensate for a side wall of an opening to be closed by the door deviating lightly from the vertical.


Share this:

It’s only Hump Day, and this is already shaping up to be the busiest week of the NFL offseason. More so, with the lockout blockout and the draft on the horizon, it’s amazing to think about the impact this week will have on the future of the league.

This edition of the Two-Minute Drill touches on both subjects and a whole lot more, including a couple of very interesting quotes — one about the Jets and another about the general uselessness of the annual rookie symposium.

1. NFLPA executive Pete Kendall is one of the most knowledgeable sources when it comes to the labor negotiations, and I caught up with him Tuesday. My opinion for the last month was the players would need to win the owners’ injunction appeal in order for there to be a full regular season in 2011. If the owners win the appeal, the only chance for a full season would come through negotiations for a new CBA, and the two sides are simply too far apart right now to believe that can happen. Plus, the owners will have every ounce of leverage if they win the appeal, so they’ll have little need to back down from their stringent CBA demands.

2. I asked Kendall about that, and here was his response: “At this point, any conversation or any discussions have to be under the framework of a settlement of a lawsuit. There is no collective bargaining going on, and I don’t know if in fact there ever will be again. The union announced they’re no longer a collective-bargaining unit for the players. So we’ll see how this process plays itself out. There was court-supervised mediation that allowed for a conversation to take place between the two parties, and perhaps that will be the forum going forward.”

3. A couple things stand out there. First, Kendall said he doesn’t know if there will ever be collective bargaining again, which means he doesn’t know if the NFLPA will ever get back together. That’s probably a stretch on Kendall’s part, but it’s very interesting to hear him say it’s even possible.

4. Next, Kendall couldn’t even entertain the thought of collectively bargaining because it would conflict with the purpose of dissolving the union, which was for the players to try their hand in court. Therefore, if the owners win the appeal, the players’ next course of action will likely be reforming the union and heading back to collective bargaining. But for now, they can’t admit that because it would crush their stance in court.

5. It’s all speculation at this point, but the players’ side is definitely less confident about winning the owners’ injunction appeal than they were about winning the preliminary injunction ruling. Kendall, though, thinks Judge Susan Nelson‘s 89-page court ruling was worded so heavily in the players’ favor that it might be more difficult for the Eighth Circuit to rule in favor of the owners. “She wrote a very tightly worded decision, and it may be difficult to overturn on an appeal,” Kendall said. “But we’ll have to wait and see.”

6. The Patriots have a reputation for not dealing with agent Tom Condon and his agency, CAA, and that resulted from some rocky negotiations with tight end Ben Watson. The Patriots haven’t drafted a CAA client since, and that’s important to note because Boston College tackle Anthony Castonzo, Wisconsin defensive end J.J. Watt and BC linebacker Mark Herzlich are all CAA products, and all three would be good fits in New England.

7. I asked around the league to find out if it was common for teams to avoid certain players due to their agents and heard stories about several teams that follow the same pattern. One league source said, “I know for a fact the Jets do it.”

8. Obviously, a rookie scale could change that approach, but there’s still no certainty that it will be implemented for this draft class. Plus, teams know that agent could still be in place for their second contract.

9. How crazy are these NFL draft rumors? Within the last few days, John Elway told reporters the Broncos haven’t received a single call about their second overall pick. On Tuesday, NFL Network cited several general managers who believed the Redskins would move up to No. 2 to draft Blaine Gabbert. Obviously, this stuff can happen very quickly, but I find it extremely hard to believe Elway on this one.

10. Had a good talk with Patriots backup quarterback Brian Hoyer on Tuesday, and I asked him what he thought about the Pats working out quarterbacks Jake Locker (a near-certain first-rounder) and Ryan Mallett (a likely second-rounder who has a slight chance to go in the first round). Hoyer was candid with his response: “It’s a business. That’s why you’ve got to stay ahead of the game and keep working out, and whatever they decide to do, I’m comfortable with it. There’s always going to be some sort of competition, so I just assume every year there’s going to be a new guy coming in. I’ll just work hard to stay ahead of that.”

11. Hoyer has already beaten out third-round pick Kevin O’Connell, Matt Gutierrez and Zac Robinson, among others, and I think Hoyer has a little bit of Tom Brady‘s attitude in him. As in, Hoyer won’t let someone come in and outwork him for his own job. If the Patriots used a high-round pick on a quarterback, it might turn into one of the most fun battles to watch in training camp.

12. The general consensus insists the Panthers will take Cam Newton with the No. 1 pick, but there’s as much uncertainty this close to the draft as there has been in recent memory. One major contributor to the guess work: The Panthers can’t negotiate with their potential picks, which has become a common tactic for teams that want to make sure they don’t take a guy who could hold out.

13. Vince Wilfork surprisingly mentioned Tuesday that he could get used to retirement. Though his 2011 season won’t be in jeopardy, Wilfork did sound sincere with his explanation. He said he’s been blessed with good health and doesn’t want to wind up like the many players who live in pain after their careers. Wilfork is a very strong family man who lost both of his parents at a young age, so I really believe that he values a high quality of life after his career.

14. In an unrelated note, Wilfork was asked if he thought the labor negotiations could affect the relationships between players and owners when the work stoppage comes to a conclusion. “I hope no one holds a grudge against anyone,” Wilfork said. “When you resume, you’re a team.”

15. Patriots left tackle Matt Light held a charity event Tuesday to benefit his foundation, which is geared toward helping young kids reach their potential through outdoor activities. He held a breakfast at the Liberty Hotel in Boston to teach fans about the intricacies of the lockout and labor negotiations.

“Really, the only reason that we do this is to raise money for the foundation, so the one thing I don’t want to lose sight of is we do some amazing things with the kids in our programs,” Light said. “I’ve been very proud of all the people that have supported us and the people that represent us in this room.

“It’s been a real treat for me to be a part of it, to have fun seeing our programs grow and see the work that we do all unfold in front of me. From my heart, this means a lot to me.”

16. The trials and tribulations of the league’s quest for an 18-game regular season have been a very popular storyline for at least a year. Light thinks the 18-game proposal is off the table at this point, and Wilfork said, “I haven’t met one player that has vouched for it.”

17. Of course, the players don’t want 18 games, but everything I’ve heard — which includes comments from a player representative — suggests the players would accept the 18-game proposal if the owners conceded to prorated salary hikes and increased health benefits and pension plans. The owners have shown very little willingness to work with those demands.

18. Wilfork touched on the change in draft philosophy during this unique offseason, but he is excited about the Patriots’ prospects. “It’s going to be kind of different this year,” he said. “We’ve always gone with the best player available in the past, but with this year and free agency all screwed up, we’ve got to draft on needs. We need somebody who will be able to come in and help us right away. With that being said, there are a couple things I think that can help us as a ball club, especially as a defense. There’s a couple positions that I think we can go and attack and get to in the draft. With us having two picks in the first and another two in the second, I think we’ll have a real good draft class. I think we’ll do real well in the draft.”

19. It was an interesting experience while writing my “Tales From the Broke” feature, hearing about the stories of players who made poor financial decisions and lost loads of money as a result. By the way, could you imagine being an unemployed 20-something who walks into a bank and lands a $500,000 line of credit? Amazing stuff.

20. One note I didn’t use in the feature: I asked an agent if he was concerned that the lockout might prevent his clients from attending the rookie symposium, where they learn about life in the NFL and these financial horror stories. Let’s just say I got a very, very passionate “no.”

“Honestly, that’s not even a thought in my mind,” the agent said. “I speak to my clients every single day. They’re going to learn a whole lot more from me than they’ll learn from anything at a conference. Honestly, out of everything I’m worried about, that’s reason No. 476.”


Request More Information

University of Phoenix-Memphis Campus Info Request

Start Date

Create an automatic account?

Yes! I want easier future form submissions.

Usage and Terms

I consent to the storage of my personal data so that InternationalStudent.com can deliver the monthly newsletter and other relevant emails to me. I consent to the delivery of my personal data only to those schools or other partners that I select. I agree to the Terms of Use and Privacy Statement, which detail my rights to control my personal data under US law, as this is a US-based website, but also consistent with the principles of the EU’s GDPR.

Request information about IELTS! (Optional)

International students who are non-native English speakers are typically required to provide evidence of their English abilities before they are admitted into a US college or university. «IELTS» provides a fair, accurate and reliable measure of language skills, and is trusted by organizations worldwide as a proof of English proficiency.

Study in the USA School Search

Study in Tennessee

Tennessee is home to a few of the United States' top universities, such as Vanderbilt University, Rhodes College, and the University of Tennessee. International students might like to get a look at the Appalachian Mountains or visit the cities of Memphis or Nashville, Tennessee. International students might also like to get in touch with music in Tennessee, because it is a mecca for country, blues, and legends like Elvis Presley.

Get the International Student Newsletter!

I consent to the storage of my personal data so that College and University Search can deliver the monthly newsletter and other relevant emails to me. I agree to the Terms of Use and Privacy Statement, which detail my rights to control my personal data under US law, as this is a US-based website, but also consistent with the principles of the EU’s GDPR.

About International Student

Our vision is to be the company that best recognizes and serves the needs of international
students around the world. We strive to provide students world-class resources to help them
investigate and pursue an international education, through relevant content, custom online
tools and engaging websites that offer only best in class products and services.


Employers Could Do More To Help The Wellbeing Of Their Employees – Survey

Employee wellbeing has risen to the top of many companies’ agendas as the impact of work related stress, illness and mental health issues is better understood. We surveyed working adults from across the UK to find out what they think, and how they think the problem could be solved.

Feeling the strain

Wellbeing is an issue that is not being tackled by the NHS, which is under more pressure than ever before, and 70% of those surveyed believe it doesn’t have the budget to be able to offer these services.

It’s a burden taken on in part by employers, but employees still don’t feel it’s enough. 86% believe firms are not doing enough to help them deal with work-related mental health issues.

Presenteeism, where employees are at work in body but unable to work to their full capacity, is an issue that is having a significant impact on the UK economy. In a recent report, Deloitte found that presenteeism could be more detrimental to productivity than absenteeism and costs the UK between £16.8bn – £26.4bn per year.

A possible solution

In an effort to relieve the pressure, our survey found 75% of adults believe some of their National Insurance payments should be redirected to employee wellbeing programs. A government-backed auto-enrolment scheme, similar to the move on pensions, is one example of how the long-term financial needs of the NHS could be addressed.

David Capper, Commerical Director at Westfield Health, said “With the financial pressures of a growing and ageing population, alongside rising public expectations of the level of care they receive, the NHS is under greater strain than ever before. And, with the cost of presenteeism being so vast for UK businesses, doesn’t it make sense for employers to relieve some of the pressure though wellbeing initiatives?”

“From sleep to nutritionand mental health to physical fitness, there are so many elements that contribute to your overall wellness, happiness and healthiness. It’s more than free fruit in the office and discounted gym memberships. As business leaders, we need to create a culture where our people’s health and wellbeing is prioritised to drive confidence, capability, inspiration and ultimately prosperity.”

We’ve pulled the most interesting stats from the survey together in this infographic:

Join Now

Are you ready to start enjoying the benefits of membership of Kent Invicta Chamber of Commerce?

Privacy Overview

This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful.

Strictly Necessary Cookies

Strictly Necessary Cookie should be enabled at all times so that we can save your preferences for cookie settings.

disable

If you disable this cookie, we will not be able to save your preferences. This means that every time you visit this website you will need to enable or disable cookies again.


Search This Blog

Ponderize 2 Timothy 1:7 - The Sprit of Power

"For God hath not given us the spirit of fear; but of power, and of love, and of a sound mind” (2 Timothy 1:7).As I thought about this idea of spiritual power and how we can obtain it, my mind was turned to the first chapter of Moses where it describes how the creation was accomplished. "And by the word of my power, have I created them, which is mine Only Begotten Son, who is full of grace and truth." (Moses 1:32)I have often thought about that phrase “the word of my power” It is used again in Jacob 4:9. This verse seem to explain it more clearly. "For behold, by the power of his word man came upon the face of the earth, which earth was created by the power of his word. Wherefore, if God being able to speak and the world was, and to speak and man was created, O then, why not able to command the earth, or the workmanship of his hands upon the face of it, according to his will and pleasure?" (Jacob 4:9)All of the things that God has created are obedient to him. Except for one. A careful reading of Abraham chapter 4 clearly shows that the elements that came together to form this earth obeyed the word of His power. As you read that chapter, focus on words like order and obey. Now go back to Abraham 3:25. We (mankind) were placed on this earth to see if we would obey. Unlike the rest of God’s creations who have already demonstrated their obedience to the word of his power (Abraham 4:31), man was given agency to see if he would obey (Abraham 3:25). How does that apply to each of us obtaining and using the power of God in our lives? Let me use this example to illustrate. When Enoch was called upon to prophesy and cry repentance to the people (Moses 6:27), he listed a series of inadequacies in including his youth, how much the people hate him, and that he was “slow of speech” (Moses 6:31). However the Lord promised him that he would justify all of Enoch’s words (Moses 6:34) and that he would have the power to move mountains and turn rivers from their course. Now contrast those initial feelings that Enoch had about his ability to serve with this scripture: "And so great was the faith of Enoch that he led the people of God, and their enemies came to battle against them; and he spake the word of the Lord, and the earth trembled, and the mountains fled, even according to his command; and the rivers of water were turned out of their course; and the roar of the lions was heard out of the wilderness; and all nations feared greatly, so powerful was the word of Enoch, and so great was the power of the language which God had given him." (Moses 7:13) All of this was the working of a young man who complained that he was slow of speech. What happened? What changed? President Thomas S. Monson clearly teaches this principle: "Now, some of you may be shy by nature or consider yourselves inadequate to respond affirmatively to a calling. Remember that this work is not yours and mine alone. It is the Lord’s work, and when we are on the Lord’s errand, we are entitled to the Lord’s help. Remember that whom the Lord calls, the Lord qualifies." (Thomas S. Monson, “Duty Calls”, April 1996 LDS General Conference)We know that when we are equally yoked with the Lord that he can do far more with us than we can do with ourselves. The key appears to be that we must cast off fear and doubt and allow the power and love of God permeate our souls, change our hearts, and deepen our resolve.

Get link

Facebook

Twitter

Pinterest

Google+

Email

Get link

Facebook

Twitter

Pinterest

Google+

Email

Comments

Post a Comment

Popular posts from this blog

It is time for the showdown. Which one is best: Bajio, Cafe Rio, or Costa Vida? Or is it (as was my opinion) that they are all exactly the same?

I decided to do a taste test. Six people participated. Three were salad testers and three were burrito testers. None of the people who participated have any food judging experience although a couple of them have competed in cooking contests and have a couple of first place finishes to their name. Each couple went to a different restaurant and picked up a Sweet Pork Salad and an Steak Burrito to go. We ordered each salad with black beans and their creamy green dressing (whatever they happened to call it). The steak burritos were ordered enchilada style with black beans. Then we all met at a central location and judged each dish on the following:

As I thought about the experience of the woman who was "taken in adultery", a thought came to my mind. What do we have in our personal bag with when we leave our homes each day? Did the scribes and Pharisees make sure they had a bag of stones with them at the ready just in case there was someone who needed their judgment and punishment? Do we figuratively fill our pouch with stones so we are ready to meet out our own self-righteous verdicts and penalties? Let's review the story:3 And the scribes and Pharisees brought unto him a woman taken in adultery; and when they had set her in the midst,4 They say unto him, Master, this woman was taken in adultery, in the very act.5 Now Moses in the law commanded us, that such should be stoned: but what sayest thou?6 This they said, tempting him, that they might have to accuse him. But Jesus stooped down, and with his finger wrote on the ground, as though he heard them not.7 So when they continued asking him, he lifted up himsel…


[Factors influencing the origination and development of intracranial meningioma].
Basing on analysis of the clinico-laboratory investigations results the risk factors, provoking origination of intracranial meningioma (IM), were revealed in periods of maximal activity of an organism, pubertal and climacteric changes: hormonal disorders, roentgen irradiation, hereditary-genetic factors, cranio-cerebral trauma. In 8 patients receptors of estrogens and progesterone were revealed. Influence on these factors would permit to increase the possibilities of treatment with nonoperable and recurrent IM.


Introduction {#s1}
============

*Streptococcus pneumoniae* (the pneumococcus) is a Gram-positive bacterium that causes a wide range of diseases in humans [@pone.0082583-Miller1]. Despite advances in antibiotic therapy and vaccination, pneumococcal diseases still represent a major public health challenge [@pone.0082583-Yuste1]. Pneumococcal diseases result in substantial morbidity and mortality, especially in young children and patients over 65 years of age [@pone.0082583-Kyaw1]. In order to establish infection, *S. pneumoniae* has to have effective mechanisms to escape the host immune defense, especially at the first line of the humoral immune response provided by the complement system [@pone.0082583-Yuste1].

Complement activation is mediated via three distinct pathways; the classical (CP), the alternative (AP) and the lectin pathway (LP). The CP is initiated by the binding of C1q to charge clusters on targets or to antigen-antibody complexes. Thus, activation may depend either on the presence of natural antibodies in the non-immune host (primarily IgM or IgG with relatively low affinity to bind to specific antigens) or affinity-matured, specific immunoglobulins of the immunoglobulin classes IgM or IgG1, IgG2 or IgG3 in immune sera. LP activation is initiated via several LP specific carbohydrate recognition subcomponents, such as mannan binding lectin (MBL), ficolins and collectin 11 (CL-11) [@pone.0082583-Ali1]. The alternative pathway can be activated by both antibody-dependent and independent routes, and acts as an amplification loop for both the classical and the lectin pathways [@pone.0082583-Gadd1]. The LP recognition molecules, MBL and CL-11, recognize carbohydrate residues on the surface of different microorganisms, while ficolins primarily recognize and drive LP activation on acetylated ligand structures. This diversity in the recognition of different carbohydrate residues broadens the range of microbial structures that initiate and activate the LP and provides protection against a wide range of microorganisms [@pone.0082583-Ali1].

Initiation of complement activation leads to the formation of C3 convertases of either the CP or the LP (i.e. C4b2a) and/or the AP (i.e. C3bBb). These C3 convertases cleave the abundant plasma protein C3 into C3a and C3b. While C3a serves as an anaphylatoxin, C3b and its factor I-processed cleavage product iC3b are bound to the surface of microorganisms and serve as opsonins by facilitating the phagocytosis and killing of pathogens like *S. pneumoniae* through C3-receptor bearing phagocytes [@pone.0082583-Ali1]. Complement C3b and iC3b deposition on *S. pneumoniae* can lead to the clearance of this pathogen through enhanced opsonophagocytosis which constitutes a key event in the innate and adaptive immune response against the pneumococcus [@pone.0082583-Ali1]. Consequently, the pneumococcus has evolved several mechanisms to resist complement-mediated immunity. The capsular polysaccharides play a key role in the protection of pneumococci from complement attack and opsonophagocytosis because they may to some extent prevent complement C3 deposition and CP activation on the pathogen surface by masking or hiding bacterial surface antigens from natural IgM [@pone.0082583-Jarva1], [@pone.0082583-Brown1]. In addition to the capsular polysaccharides, the pneumococcal surface proteins A and C (PspA, PspC) have been identified as being involved in the inhibition of complement deposition on the surface of *S. pneumoniae*. Both inhibit C4 deposition on the bacterial surface by sequestering the complement regulatory components factor H (FH) and C4-binding protein (C4bp) from host plasma. PspA and PspC serve as potent cofactors in the factor I-mediated conversion of C4b to iC4b (N.B. iC4b has lost the ability to form a C3 convertase and therefore C4b cleavage inhibits subsequent complement activation). This in turn impairs complement activation on the surface of *S. pneumoniae* by the CP [@pone.0082583-Quin1], [@pone.0082583-Li1], while the LP can still opsonize the pneumococcal surface with C3 activation products (C3b and iC3b) since MASP-2 can activate C3 in the absence of C4b through a C4-bypass activation route [@pone.0082583-Ali1]. The pneumococcal toxin PLY is also considered to contribute towards pathogen evasion from the complement-mediated clearance by directing complement activation away from bacterial surface. Mutant pneumococcal strains deficient in PLY showed increased C3 deposition on the bacterial cell surface and reduced pathogenicity, indicating an important role of PLY in the pathogenesis of *S. pneumoniae* infection [@pone.0082583-Yuste1].

PLY is a potent multifunctional virulence factor produced by all serotypes of *S. pneumoniae* as a 52 kDa soluble monomer that is capable of binding to cholesterol-rich membranes [@pone.0082583-Kalin1]. Upon binding, PLY monomers oligomerize to form a pore in the host cell membrane, which mediate cell lysis and cell death [@pone.0082583-Tilley1]. In addition, at sublytic concentrations, PLY was shown to have various effects on host cells: for example, PLY has been found to inhibit ciliary beating of the respiratory epithelium in mice and to inhibit phagocytosis and induce cytokine synthesis. PLY was also shown to mediate CD4^+^ T cell activation and chemotaxis [@pone.0082583-Tilley1], [@pone.0082583-Kadioglu1].

PLY was previously shown to activate complement via the CP independently of the presence of PLY-specific antibodies, a mechanism considered to play an important role in the pathogenesis of *S. pneumoniae* infection [@pone.0082583-Yuste1], [@pone.0082583-Mitchell1], [@pone.0082583-Paton1]. We show that C1q fails to bind to PLY directly and its binding requires the presence of immunoglobulines binding to PLY via their Fc regions. Our present analysis identified that either IgM or the IgG subclass IgG3 mediate this effect. PLY-bound IgM and IgG3 offer multiple binding interaction sites for the globular heads of C1q to initiate complement activation via subsequent activation of the C1q-associated serine protease tetramer C1s-C1r-C1r-C1s embedded within the dome structure formed by the hexameric C1q macromolecule [@pone.0082583-Wallis1], [@pone.0082583-VenkatramanGirija1].

Furthermore, we show for the first time that PLY activates the LP of complement in human serum by direct binding interactions between PLY and the human LP recognition subcomponent L-ficolin, while the mouse L-ficolin orthologue ficolin-A (as well as any of the other murine LP recognition subcomponents) fails to bind and activate the LP on PLY.

Materials and Methods {#s2}
=====================

Ethics statement {#s2a}
----------------

All animal procedures were authorized by the UK Home Office (Animals Scientific Procedures Act 1986; Home Office project license (60/4327)) and approved by the University of Leicester animal welfare committee. Every effort was made to minimize suffering of mice and mice were immediately culled by cervical dislocation after cardiac puncture. Human blood was obtained from healthy adult donors who provided written and informed consent, as required by the local ethics committee at the University of Leicester.

Chemicals and Reagents {#s2b}
----------------------

Unless otherwise stated, all chemicals and reagents were obtained from Sigma-Aldrich. PSA, a polysaccharide produced by *Aerococcus viridans* that binds to H-ficolin (alias FCN3), was prepared as previously described [@pone.0082583-Tsujimura1]. OMS721, a recombinant monoclonal antibody (mAb) that potently inhibits human MASP-2 functional activity, has been described previously and was kindly provided by OMEROS Corporation, Seattle, USA [@pone.0082583-Schwaeble1].

Anti ficolin-A antibodies were kindly provided by Professor T. Fujita, Fukushima University, Japan. Mouse anti-human CL-11, rat anti-mouse CL-11 mAb, rabbit anti-human C1q were kindly provided by Dr. Soren Hansen, Center for Medical Biotechnology Institute of Medical Biology, University of Southern Denmark, Odense, Denmark.

Blood was collected from MASP-2^−/−^, C1q^−/−^ or wild type mice. Mouse blood was taken by cardiac puncture under anesthesia. Mice were culled immediately by cervical dislocation after cardiac puncture. Blood was allowed to clot on ice for 2 hrs and serum was separated by centrifugation and kept as aliquots at −80°C. Human C1q depleted serum was purchased from Quidel, USA. Purified human and mouse C1q were prepared as previously described by [@pone.0082583-Tan1].

Cloning, expression, and purification of recombinant PLY {#s2c}
--------------------------------------------------------

The open reading frame (ORF) of PLY was amplified from the genomic DNA of *S. pneumoniae* D39 using forward (5′ GGATCCACTCTTGACCCATCAGGGAGAAAGTATTG 3′) and reverse (5′ GGTACCCTAGTCATTTTCTACCTTATCCTC 3′) primers. The stop codon of the PLY ORF was mutated to be in frame with the 6-histidine tag provided by the bacterial expression vector pRsetB (Promega). Recombinant protein with 6-histidine tag was expressed and purified as previously described [@pone.0082583-ElAswadBel1].

Solid phase binding assays {#s2d}
--------------------------

Nunc Maxisorb microtiter plates were coated with 100 µl of the following reagents: 10 µg/ml mannan (a control for MBL binding), 10 µg/ml zymosan (control for CL-11 binding), 10 µg/ml N-acetylated BSA (Promega; a control for Ficolin-A and L-ficolin (FCN2) binding), and 10 µg/ml PSA (control for FCN3), 10 µg/ml PLY in coating buffer (15 mM Na~2~CO~3~, 35 mM NaHCO~3~, pH 9.6). For C1q binding assays, an *in situ* immune complex was prepared by coating plates with human serum albumin (HSA) then incubating with goat anti HSA (Scottish antibody production unit). Wells were blocked with 250 µl of 1% (w/v) BSA in TBS buffer (10 mM Tris-HCl, 140 mM NaCl, pH 7.4), and then washed three times with 250 µl of TBS with 0.05% (v/v) Tween 20 and 5 mM CaCl~2~ (wash buffer). Serial dilutions of serum in 100 µl of BBS (4 mM barbital, 145 mM NaCl, 2 mM CaCl~2~, 1 mM MgCl~2~, pH 7.4) were added and the plates were incubated for 1 hr at room temperature. Plates were washed and bound proteins were detected using monoclonal rat anti-mouse MBL-A (Hycult), rat anti-mouse MBL-C (Hycult), rabbit anti-mouse ficolin-A, rabbit anti-human L-ficolin (Sigma), mouse anti-human H-ficolin (Hycult), mouse anti-human CL-11, rat anti-mouse CL-11 mAb, rabbit anti-human C1q.

For detection of IgG and IgM binding to PLY, different IgG isotypes (IgG1, IgG2, IgG3 (Sigma)) and IgM were serially diluted in BBS buffer and incubated with PLY-coated plates. Secondary antibodies were alkaline phosphatase-conjugates (Sigma). Bound antibodies were detected using the chromogenic substrate p-nitrophenylphosphate (pNPP). The developed color was measured at wavelength 405 nm [@pone.0082583-Ali1].

Complement activation assay {#s2e}
---------------------------

Complement activation was measured by the detection of C3b deposition. To measure C3b deposition, Nunc MaxiSorb microtiter plates were coated with 100 µl of 10 µg/ml of mannan (Promega), or recombinant PLY in coating buffer. After overnight incubation, wells were blocked with 0.1% (w/v) HSA in TBS and then washed. Serum samples were diluted in BBS buffer, added to the plates and incubated for 1 hour at 37°C. Plates were washed and bound C3b was detected using rabbit anti-human C3c (Dako) followed by alkaline phosphatase-conjugated goat anti-rabbit IgG (Sigma). Bound antibody was detected using the chromogenic substrate pNPP [@pone.0082583-Lynch1].

Fluid-phase PLY-induced complement C3 activation {#s2f}
------------------------------------------------

Activation of C3 by PLY was assessed using Western blotting analysis as previously described [@pone.0082583-Quin1]. Briefly, 1.25% (v/v) human serum was incubated with serial dilutions of PLY BBS buffer for 1 hr at 37°C starting with 100 µg/ml. Samples of this reaction were taken at different time points and analysed for C3 activation on 10% SDS-PAGE followed by Western blot staining using rabbit anti-human C3 (Santa Cruz) as a primary antibody and goat anti-rabbit-HRP conjugate (Dako) as a secondary antibody.

Results {#s3}
=======

In a solid phase binding assay, C1q binds to PLY in an antibody dependent fashion and promotes complement activation via the CP {#s3a}
-------------------------------------------------------------------------------------------------------------------------------

Binding of C1q to PLY was assessed in a solid phase binding ELISA. When exposing NHS or WT mouse sera (NMS) to solid phase bound recombinant PLY, C1q binding to PLY was even detected in high serum dilutions (see [figs. 1a, b](#pone-0082583-g001){ref-type="fig"}). The ability of PLY to capture C1q from serum was similar to that of immune complex coated plates used as a positive control. In order to assess whether C1q binds directly to PLY also in absence of immunoglobulins, serial dilutions of purified human C1q were incubated with PLY as well as with PLY that was pre-incubated with PLY specific monoclonal antibodies to allow the formation of immune complexes used here as a positive control. The results shown in [figures 1c](#pone-0082583-g001){ref-type="fig"} clearly demonstrate that on its own, C1q has no direct binding affinity to PLY. Following previous reports that described CP activation on PLY pre-incubated with polyclonal non-immune serum IgG preparations (Mitchell *et al.*, 1991), we aimed to identify which IgG subclass (es) mediate(s) this non-specific binding to PLY and whether or not the potent CP activating immunoglobulin class IgM may also bind to PLY in a non-specific, but high affinity manner. [Figure 1c](#pone-0082583-g001){ref-type="fig"} shows that purified human C1q does not bind to PLY in absence of immunoglobulins, C1q binding to PLY is therefore strictly dependent on the presence of either an anti-PLY monoclonal antibody or on immunoglobulins of pre-immune sera that non-specifically bind to PLY. [Figure 1d](#pone-0082583-g001){ref-type="fig"} demonstrates that amongst the non-immune immunoglobulins tested, only the IgG subclass IgG3 or IgM bind to PLY, while IgG1 and IgG2 antibodies (which can form immune complexes that bind C1q and activate the CP) show no specific binding to PLY. Since it is well established that IgG4 has no exposed interaction site for C1q binding (and this does not initiate CP activation), it was not included in this analysis. Although IgA is known not to activate the CP, its binding to PLY was also assessed revealing that IgA has no binding affinity to PLY (data not shown).

![C1q binding to recombinant PLY exclusively occurs when either a PLY specific antibody or IgG3 or IgM binds to PLYin a non-specific fashion.\
Microtiter ELISA plates were coated either with PLY or immune complexes (positive control) formed by incubation of HSA and a polyclonal goat anti-HSA antibody to capture C1q from NMS (A) or NHS (B). Purified human C1q was serially diluted in BBS and incubated for 1 hr at RT in ELISA plates pre-coated with PLY. Purified C1q showed strong binding to PLY in the presence of a specific anti-PLY antibody, but not in the absence of immunoglobulins (C). Non-specific polyclonal antibodies of either all isotypes or isotype-specific preparations of IgM or IgG subclasses were serially diluted and incubated in PLY-coated ELISA plates. PLY binds non-immune IgM and IgG3, but does not bind IgG1 or IgG2 (D). Results are means (±SEM) of 3 independent experiments.](pone.0082583.g001){#pone-0082583-g001}

Complement activation on PLY monitored by the detection of C3 cleavage products in solid phase and fluid phase assays {#s3b}
---------------------------------------------------------------------------------------------------------------------

Serial dilutions of NMS and NHS were incubated in ELISA plates coated with either recombinant PLY or mannan (as positive control). Complement activation was measured in a C3 deposition assay as described. [Figs 2a and 2b](#pone-0082583-g002){ref-type="fig"} (NMS and NHS) show that complement is activated even at high serum dilutions, which indicates that either the CP or the LP drives C3 deposition on PLY, since the AP is inactive at serum concentrations below 5%. Interestingly, C3 deposition is also seen in lower serum dilutions in Mg^+2^ EGTA buffer (in which both the LP and the CP are inactive) indicating that the AP also contributes to C3 deposition on PLY in serum with serum concentrations higher than 5% and above (see [Figs 2c and 2d](#pone-0082583-g002){ref-type="fig"}).

![Deposition of C3 activation products, C3b and iC3b, on PLY.\
Serial dilutions of NMS or NHS in BBS were incubated in microtiter ELISA plates pre-coated with either PLY or mannan (positive control). ELISA plates were incubated for 1 hr at 37°C. The degree of C3b or iC3b deposition was monitored using a rabbit anti-human C3 antibody (as described in Materials and Methods). In both mouse (A) and human (B) sera, a significant degree of C3 activation occurred on PLY. This was seen even at high serum dilutions where complement activation can only occur by either the LP or the CP. At high serum concentration, using Mg^+2^-EGTA buffer (which inhibits C3 deposition via the calcium-dependent LP & CP), AP-mediated deposition of C3 activation products on PLY was also detected in both NMS (C) and NHS (D). Results are means (±SEM) of 3 independent experiments.](pone.0082583.g002){#pone-0082583-g002}

To assess the ability of PLY to activate the complement cascade in the fluid phase (i.e. away from the bacterial surface) we incubated NHS with increasing concentrations of soluble PLY at 37°C. C3 degradation products were identified by Western blot analysis following SDS-PAGE under reducing conditions, filter blotting and staining of C3 fragments blotted to the filter membrane using a polyclonal anti-C3 antibody, as described in Materials and Methods. As shown in [figure 3](#pone-0082583-g003){ref-type="fig"}, the degree complement activation (monitored through the reduced intensity of the C3α chain band and increased abundance of C3 cleavage products) significantly increased with the concentration of PLY added to each serum sample. Our findings indicate that PLY can trigger C3 cleavage in the fluid phase, resulting in a significant degree of complement activation away from the pathogen surface.

![Western blot analysis to monitor C3 cleavage in response to the addition of increasing concentrations of PLY to NHS using a fluid phase assay.\
1.25% NHS was incubated with serial dilutions of PLY in BBS buffer (starting concentration 100 µg/ml) for 1 hr at 37°C. Samples of this reaction were collected at different time points and subjected to a Western blot analysis using rabbit anti-human C3 to identify the various C3 activation products as described in Materials and Methods. A dose-dependent increase in the abundance of C3 activation products was observed to correlate with increasing PLY concentrations added to the serum.](pone.0082583.g003){#pone-0082583-g003}

We further assessed sera from gene-targeted mouse lines with selective deficiencies for C1q (i.e. CP deficient) or MASP-2 (i.e. LP deficient) for possible defects in their ability to drive complement activation on PLY. C1q^−/−^ mouse serum failed to initiate complement activation and C3 deposition on PLY, while MASP-2^−/−^ mouse serum showed a reduced, but clearly detectable degree of C3 deposition on PLY-coated surfaces when compared to WT serum run in the same assay (see [fig 4a](#pone-0082583-g004){ref-type="fig"}). Our finding implies that in the mouse, the LP is not the major mechanism that drives complement activation on PLY.

![In C1q-depleted human serum, C3 can still be activated on PLY in a LP-dependent fashion.\
ELISA plates were either coated with PLY, or mannan, or immune complexes (as either positive or negative controls). (A) The deposition of C3 activation products on PLY was measured in serially diluted WT, C1q^−/−^ and MASP-2^−/−^ mouse sera. MASP-2 deficiency does not abolish C3 activation on PLY, while in the absence of C1q, no C3 activation can be detected in mouse sera. In human serum, however, absence of C1q has only a minor effect on the level of C3 deposition on PLY (**B**). In figure **C**, C1q-depleted human serum was incubated with different concentrations of anti-hMASP-2 mAb OMS721 followed by incubation with ELISA plates coated with PLY or mannan (as positive control) for 1 hr at 37°C. C3 deposition was detected using anti-human C3 as described in Materials and Methods. Inhibition of MASP-2 functional activity using the anti-hMASP-2 mAb OMS721 abolished C3 deposition on PLY in human C1q-depleted serum. Results are means (±SEM) of 3 independent experiments.](pone.0082583.g004){#pone-0082583-g004}

In human serum, however, there is a completely different scenario: As shown in [figure 4b](#pone-0082583-g004){ref-type="fig"}, C1q-depleted human serum fails to deposit C3 on immune complexes, but shows no marked defect in its ability to deposit C3 on PLY. Since the serum dilutions chosen are too high for the AP to contribute to C3 deposition in C1q-depleted serum (which is CP deficient), the only activation pathway that could account for the high residual degree of C3 deposition at the given serum dilutions is the LP. In order to test this assumption, we added increasing concentrations of our recombinant antibody-based LP inhibitor OMS721. This mAb specifically binds MASP-2, the essential effector enzyme of the LP, and depletes LP functional activity [@pone.0082583-Schwaeble1]. As shown in [figure 4c](#pone-0082583-g004){ref-type="fig"}, MASP-2 depletion effectively blocks C3 deposition in C1q depleted human serum on mannan as well as on PLY-coated plates in an antibody concentration dependent manner. This underlines that the significant degree of C3 deposition on PLY seen in C1q-depleted NHS is mediated by the LP.

Binding of LP carbohydrate recognition molecules to recombinant PLY {#s3c}
-------------------------------------------------------------------

As a next step, we aimed to identify which of the LP-specific recognition subcomponents may directly bind to PLY to trigger C3 activation in a CP-independent fashion.

In order to identify the human and murine LP recognition molecules that can directly bind to PLY and activate the LP, microtitre ELISA plates were coated with either recombinant PLY or known specific ligands for each of the LP recognition subcomponents tested. The results demonstrate that neither human MBL nor mouse MBL-A or MBL-C showed any detectable binding affinity towards recombinant PLY ([fig. 5a--b](#pone-0082583-g005){ref-type="fig"}). Likewise, neither human H-ficolin (alias FCN3) nor CL-11 (sourced from NHS) nor murine CL-11 (sourced from NMS) showed any binding affinity to PLY ([fig. 5d--f](#pone-0082583-g005){ref-type="fig"}). The only LP recognition component that showed strong and specific binding interaction with PLY was human L-ficolin (alias FCN2), while the murine orthologue of L-ficolin, ficolin-A failed to bind to PLY directly ([fig. 5c,d](#pone-0082583-g005){ref-type="fig"}). Addition of N-acetylated BSA (a ligand for L-ficolin) at increasing concentations to C1q-depleted human serum inhibited C3 activation on PLY with 10 microgram/mL of *N-acetylated BSA* showing complete inhibition (data not shown).

![Human L-ficolin is the only LP recognition molecule that binds to PLY.\
Serial dilutions of NMS or NHS in BBS were incubated in ELISA plates pre-coated with PLY or specific ligands for LP recognition molecules. The binding of specific LP recognition molecules to PLY was subsequently detected using antibodies directed against MBL, ficolins and CL-11. The binding of murine MBL-A and MBL-C (A), murine ficolin-A (C), murine CL-11 (E), human MBL (B), human FCN2 & 3 (D) and human CL-11 (F) were assessed by ELISA. In contrast to mouse ficolin-A (which has no binding affinity to PLY) human L-ficolin (FCN2) (the human orthologoue of murine ficolin-A) showed strong binding to PLY. Results are means (±SEM) of three independent experiments.](pone.0082583.g005){#pone-0082583-g005}

Discussion {#s4}
==========

PLY is a potent virulence factor produced by all clinical isolates of *S. pneumoniae*. The toxin is a cholesterol-dependent cytolysin (CDC) that binds to membranes of eukaryotic cells where it oligomerises to form pores in the cell membrane with subsequent cell lysis [@pone.0082583-Gilbert1]. The cytotoxic activity of PLY plays an essential role for optimal multiplication and dissemination of pneumococci into the lungs and blood [@pone.0082583-Berry1].

PLY-mediated complement activation has been attributed to CP activation, with several studies suggesting that PLY acts to protect *S. pneumoniae* from complement attack and opsonophagocytosis by depletion of complement within the environment of the pneumococcus [@pone.0082583-Mitchell1], [@pone.0082583-Berry1], [@pone.0082583-Rossjohn1]. Our present work aimed to shed more light on molecular events leading to complement activation on PLY. We were able to show for the first time that the potent CP-activating immunoglobulin class IgM can bind non-specifically to PLY and refined the previous observation that PLY non-specifically binds to non-immune IgG to drive CP activation [@pone.0082583-Yuste1], [@pone.0082583-Mitchell1], [@pone.0082583-Paton1] by showing that of all of the 4 human IgG subclasses, only IgG3 Initiates CP activation on PLY [@pone.0082583-Yuste1], [@pone.0082583-Mitchell1], [@pone.0082583-Paton1]. The differences in the binding affinities between the IgG subclasses to PLY may be mainly due to the length of the hinge regions in each subclass rather than due to different glycosylation pattern (since the glycosylation pattern are identical in all IgG subclasses (IgG are glycosylated at aspargine residue 297 at the CH2 region of the IgG)). While, IgG1 and IgG2 have a relatively short hinge region (15 and 12 amino acid residues respectively), IgG3 has the longest hinge region corresponding to 62 amino acid residues [@pone.0082583-Phillips1]. The heavy glycosylation pattern at CH2 region and the relatively short hinge region of IgG1 (15 aa) and IgG2 (12 aa) may hinder its binding to PLY. In contrast, the extraordinary long hinge region of IgG3 (62 aa) keeps the Fab fragment away from the Fc region of IgG3. This may make it possible for the Fc region to bind directly to PLY.

We have shown that in human serum, the LP recognition molecule L-ficolin (alias FCN2) drives the LP on PLY and subsequently demonstrated that C3 deposition on PLY in C1q-depleted human serum was MASP-2 dependent, since inhibition of LP functional activity through application of our recombinant anti human MASP-2 mAb (OMS 721) abolished any C3 deposition on PLY in C1q deficient human serum in a dose dependent manner (see [fig. 4c](#pone-0082583-g004){ref-type="fig"}).

In mouse serum, PLY failed to activate complement via the LP, an observation that is underlined by the failure to detect any binding activity of PLY with any of the murine LP recognition subcomponents, including the murine L-ficolin orthologue ficolin-A ([fig. 5a,c,e](#pone-0082583-g005){ref-type="fig"}).

Interestingly, we also found that PLY binds to IgM non-specifically leading to subsequent activation of the CP.

It was suggested previously that complement activation on PLY in the fluid phase might be protective since it consumes complement activation away from the bacterial surface of *S.pneumoniae* [@pone.0082583-Yuste1], [@pone.0082583-Quin1]. In order to determine to what extent the CP affects C3 deposition on PLY, we measured the levels of C3 deposition on PLY using C1q deficient mouse serum and C1q depleted human serum.

In human serum, we clearly show, for the first time, that PLY is able to trigger complement activation via the LP. When using C1q depleted human serum, C3 deposition was not abolished, as it was in C1q^−/−^ mouse serum, due to binding of the human LP recognition molecule L-ficolin to PLY.

The failure of ficolin-A, the murine orthologue to L-ficolin to bind to PLY is in line with previously reported observations indicating that murine ficolin-A has distinct binding specificities when compared with those of its human orthologue L-ficolin [@pone.0082583-Matsushita1]. X-ray crystallography has revealed that human L-ficolin has 4 potential binding sites that can bind to acetylated carbohydrates (N-acetyl glucosamine, N-acetylneuraminic acid) and neutral carbohydrates, such as β (1→3)-D-glucan. L-ficolin was also found to bind lipoteichoic acid, C-reactive protein, fibrinogen, fibrin, DNA, elastin and corticosteroid [@pone.0082583-Matsushita1]. On the other hand, mouse ficolin-A has a limited binding spectrum to some acetylated carbohydrates and to elastin [@pone.0082583-Ohashi1], [@pone.0082583-Fujimori1].

Our findings provide more detailed answers to the question raised by Paton *et al.* in 1984 wondering by which mechanisms human serum intitates complement deposition on PLY in the absence of specific antibodies. We show that in human serum, PLY initiates LP-mediated complement activation via the specific binding of L-ficolin to PLY. CP activation in human serum depends either on the presence of specific antibodies or can be driven by the non-specific binding of PLY to non-immune IgG3 and/or IgM.

Surprisingly, PLY does not induce LP activation in mouse serum since none of the murine LP recognition molecules bind to PLY, while both the classical and the alternative pathways can activate C3 on PLY in mouse serum.

Previous *in vivo* studies have shown that PLY is naturally released by *S. pneumoniae* at relatively high concentrations shortly after infection [@pone.0082583-Feldman1] and that PLY deficient *S.pneumoniae* strains are far less pathogenic then their PLY positive WT confounders [@pone.0082583-Quin1]. The *in-vitro* data presented here show that PLY induces a significant degree of complement activation (as monitored by the degradation of complement C3 in the fluid phase), even when PLY was added at relatively low concentrations (such as 3.125 µg/ml) (see [fig. 3](#pone-0082583-g003){ref-type="fig"}). Our findings are in strong support of the hypothesis that the ability of PLY to activate and consume complement may increase the pathogenicity of *S.pneumoniae* since it may protect the pneumococcus from opsonophagocytosis through host immune cells by directing complement deposition and opsonisation away from the bacterial surface.

[^1]: **Competing Interests:**The authors have declared that no competing interests exist.

[^2]: Conceived and designed the experiments: WS PWA YMA HIK. Performed the experiments: YMA HIK AM. Analyzed the data: WS PWA RBS YMA HIK. Contributed reagents/materials/analysis tools: WS MYA. Wrote the paper: WS PWA MYA HIK.


/*
Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
*/
CKEDITOR.plugins.setLang( 'docprops', 'pt', {
	bgColor: 'Cor de fundo',
	bgFixed: 'Fundo fixo',
	bgImage: 'Caminho para a imagem de fundo',
	charset: 'Codificação de caracteres',
	charsetASCII: 'ASCII',
	charsetCE: 'Europa Central',
	charsetCR: 'Cirílico',
	charsetCT: 'Chinês Traditional (Big5)',
	charsetGR: 'Grego',
	charsetJP: 'Japonês',
	charsetKR: 'Coreano',
	charsetOther: 'Outra codificação de caracteres',
	charsetTR: 'Turco',
	charsetUN: 'Unicode (UTF-8)',
	charsetWE: 'Europa Ocidental',
	chooseColor: 'Escolher',
	design: 'Visual',
	docTitle: 'Título da página',
	docType: 'Tipo de cabeçalho do documento',
	docTypeOther: 'Outro tipo de cabeçalho do documento',
	label: 'Propriedades do documento',
	margin: 'Margem das páginas',
	marginBottom: 'Fundo',
	marginLeft: 'Esquerda',
	marginRight: 'Direita',
	marginTop: 'Topo',
	meta: 'Metadados',
	metaAuthor: 'Autor',
	metaCopyright: 'Direitos de autor',
	metaDescription: 'Descrição do documento',
	metaKeywords: 'Termos para indexação do documento (separadas por vírgulas)',
	other: '<outro>',
	previewHtml: '
Isto é algum texto amostra. Está a usar o CKEditor.
',
	title: 'Propriedades do documento',
	txtColor: 'Cor do texto',
	xhtmlDec: 'Incluir declarações XHTML'
} );


Measurement of piperacillin plasma concentrations in cancer patients with suspected infection.
Piperacillin (PIP) in combination with tazobactam is commonly used for anti-infective treatment in cancer patients. PIP exerts a time-dependent killing. Thus, the maintenance of plasma concentrations above a pre-defined target concentration for a pre-defined time may be relevant for optimal efficacy. It is assumed that PIP-plasma concentrations above the clinical breakpoint of the target pathogen [Pseudomonas aeruginosa, clinical breakpoint at minimal inhibitory concentration (MIC) 16 mg/L] should be reached for 100% of the dosing interval or >4xMIC (64 mg/L) for 50% of the dosing interval. Whereas studies in the intensive-care setting have shown underdosing in patients with sepsis, little is known about PIP-plasma concentrations in cancer patients. Data of 56 cancer patients who received piperacillin/tazobactam (PIP/TAZ, 4.5 g three times daily) as empiric therapy for suspected infection were analysed at baseline and 4 h after the infusion. Median trough concentrations in steady state [median 3 days (IQR 3-5) after start of PIP/TAZ] were 4.6 mg/L (95% CI 0.3-136.3) and median PIP-plasma concentrations 4 h after infusion were 46.2 mg/L (95% CI 10.1-285.6). A second evaluation 5 days (IQR 4-7) after start of PIP/TAZ confirmed these results: trough concentrations were 2.7 mg/L (95% CI 0.5-6.3), concentrations after 4 h 28.0 mg/L (95% CI 1.7-47.3). A good renal function was associated with lower plasma concentrations (r = -0.388, p < 0.003). Detailed pharmacokinetic measurements in six patients showed low maximum plasma concentration (median 165 mg/L) and a rapid decline of plasma concentrations (median plasma half time 1.38 h). In conclusion, piperacillin plasma concentrations in cancer patients are below target levels warranting prospective trials to investigate therapeutic drug monitoring.


using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using System.Data.SqlTypes;
using System.Globalization;

namespace indigo
{
   public class MangoIndexData : BingoIndexData
   {
      object _sync_object = new Object();

      public MangoIndexData (BingoIndexID id, string id_column, string data_column, string bingo_schema) :
         base(id, id_column, data_column, bingo_schema)
      {
      }

      public override IndexType getIndexType ()
      {
         return IndexType.Molecule;
      }

      public override void CreateTables (SqlConnection conn)
      {
         base.CreateTables(conn);

         StringBuilder cmd = new StringBuilder();

         // Create shadow table
         cmd.AppendFormat(@"CREATE TABLE {0}
            (id int not null, storage_id int not null, gross VARCHAR(500), cmf varbinary(max),
            xyz varbinary(max), mass real not null, fragments int not null", shadowTable);

         for (int i = 0; i < MangoIndex.COUNTED_ELEMENTS_COUNT; i++)
            cmd.AppendFormat(", {0} int not null", BingoCore.mangoGetCountedElementName(i));
         cmd.Append(")");

         BingoSqlUtils.ExecNonQuery(conn, cmd.ToString());

         // Create shadow table for molecule components
         BingoSqlUtils.ExecNonQuery(conn,
            "CREATE TABLE {0} (id int not null, hash int not null, count int not null, primary key(id, hash))",
            componentsTable);
      }

      public override void createIndices (SqlConnection conn)
      {
         BingoSqlUtils.ExecNonQuery(conn,
            "ALTER TABLE {0} ADD PRIMARY KEY (storage_id)", shadowTable);
         BingoSqlUtils.ExecNonQuery(conn,
            "CREATE UNIQUE INDEX id ON {0}(id)", shadowTable);
         BingoSqlUtils.ExecNonQuery(conn,
            "CREATE INDEX gross ON {0}(gross)", shadowTable);
         BingoSqlUtils.ExecNonQuery(conn,
            "CREATE INDEX mass ON {0}(mass)", shadowTable);
         for (int i = 0; i < MangoIndex.COUNTED_ELEMENTS_COUNT; i++)
         {
            BingoSqlUtils.ExecNonQuery(conn,
               "CREATE INDEX {1} ON {0}({1})", shadowTable,
               BingoCore.mangoGetCountedElementName(i));
         }

         // Create indices for components shadow table
         BingoSqlUtils.ExecNonQuery(conn,
            "CREATE INDEX id ON {0}(id)", componentsTable);
         BingoSqlUtils.ExecNonQuery(conn,
            "CREATE INDEX hash ON {0}(hash)", componentsTable);
         BingoSqlUtils.ExecNonQuery(conn,
            "CREATE INDEX count ON {0}(hash, count)", componentsTable);
      }

      public override void DropTables (SqlConnection conn)
      {
         base.DropTables(conn);

         BingoSqlUtils.ExecNonQueryNoThrow(conn, "DROP TABLE " + shadowTable);
         BingoSqlUtils.ExecNonQueryNoThrow(conn, "DROP TABLE " + componentsTable);
      }

      DataTable shadow_datatable = null;
      DataTable components_datatable = null;

      public void addToShadowTable (SqlConnection conn, MangoIndex index, int id, int storage_id)
      {
         lock (_sync_object)
         {
            if (shadow_datatable == null)
               _createDataTables();

            if (shadow_datatable.Rows.Count >= 10000)
               _flushShadowTable(conn);

            DataRow shadow_row = shadow_datatable.NewRow();
            shadow_row["id"] = id;
            shadow_row["storage_id"] = storage_id;
            shadow_row["gross"] = index.gross;
            shadow_row["cmf"] = index.cmf;
            shadow_row["xyz"] = index.xyz;
            shadow_row["mass"] = index.mass;

            int fragments_count = 0;
            for (int i = 0; i < index.hash.elements.Count; i++)
               fragments_count += index.hash.elements[i].count;
            shadow_row["fragments"] = fragments_count;

            string[] counted = index.counted_elements_str.Split(',');
            for (int i = 0; i < MangoIndex.COUNTED_ELEMENTS_COUNT; i++)
               shadow_row[BingoCore.mangoGetCountedElementName(i)] = Convert.ToInt32(counted[i + 1]);

            shadow_datatable.Rows.Add(shadow_row);

            foreach (MoleculeHashElement elem in index.hash.elements)
            {
               DataRow comp_row = components_datatable.NewRow();
               comp_row["id"] = id;
               comp_row["hash"] = elem.hash;
               comp_row["count"] = elem.count;

               components_datatable.Rows.Add(comp_row);
            }
         }
      }

      private void _createDataTables ()
      {
         shadow_datatable = new DataTable();
         DataColumnCollection sc = shadow_datatable.Columns;

         sc.Add(new DataColumn("id", Type.GetType("System.Int32")));
         sc.Add(new DataColumn("storage_id", Type.GetType("System.Int32")));
         sc.Add(new DataColumn("gross", Type.GetType("System.String")));
         sc.Add(new DataColumn("cmf", Type.GetType("System.Array")));
         sc.Add(new DataColumn("xyz", Type.GetType("System.Array")));
         sc.Add(new DataColumn("mass", Type.GetType("System.Single")));
         sc.Add(new DataColumn("fragments", Type.GetType("System.Int32")));
         for (int i = 0; i < MangoIndex.COUNTED_ELEMENTS_COUNT; i++)
            sc.Add(new DataColumn(BingoCore.mangoGetCountedElementName(i), Type.GetType("System.Int32")));

         components_datatable = new DataTable();
         DataColumnCollection cc = components_datatable.Columns;

         cc.Add(new DataColumn("id", Type.GetType("System.Int32")));
         cc.Add(new DataColumn("hash", Type.GetType("System.Int32")));
         cc.Add(new DataColumn("count", Type.GetType("System.Int32")));
      }

      public override bool needFlush()
      {
         lock (_sync_object)
         {
            if (base.needFlush())
               return true;
            return shadow_datatable != null && (shadow_datatable.Rows.Count > 0 || components_datatable.Rows.Count > 0);
         }
      }

      public override void flush(SqlConnection conn)
      {
         lock (_sync_object)
         {
            base.flush(conn);
            _flushShadowTable(conn);
         }
      }

      private void _flushShadowTable (SqlConnection conn)
      {
         if (shadow_datatable == null || (shadow_datatable.Rows.Count == 0 && components_datatable.Rows.Count == 0))
            return;

         if (conn.ConnectionString == "context connection=true")
         {
            // SqlBulkInsert cannot be used in the context connection
            _flushShadowTableInContext(conn);
            return;
         }

         BingoTimer timer = new BingoTimer("shadow_table.flush");

         using (SqlTransaction transaction =
                  conn.BeginTransaction())
         {
            // Copy shadow table
            using (SqlBulkCopy bulkCopy = new SqlBulkCopy(conn,
                                                SqlBulkCopyOptions.TableLock, transaction))
            {
               bulkCopy.DestinationTableName = shadowTable;

               foreach (DataColumn dc in shadow_datatable.Columns)
                  bulkCopy.ColumnMappings.Add(dc.ColumnName, dc.ColumnName);

               bulkCopy.BatchSize = shadow_datatable.Rows.Count;
               bulkCopy.BulkCopyTimeout = 3600;
               bulkCopy.WriteToServer(shadow_datatable);
            }
            shadow_datatable.Rows.Clear();

            // Copy components table
            using (SqlBulkCopy bulkCopy = new SqlBulkCopy(conn,
                                                SqlBulkCopyOptions.TableLock, transaction))
            {
               bulkCopy.DestinationTableName = componentsTable;

               foreach (DataColumn dc in components_datatable.Columns)
                  bulkCopy.ColumnMappings.Add(dc.ColumnName, dc.ColumnName);

               bulkCopy.BatchSize = components_datatable.Rows.Count;
               bulkCopy.BulkCopyTimeout = 3600;
               bulkCopy.WriteToServer(components_datatable);
            }
            components_datatable.Rows.Clear();

            transaction.Commit();
         }

         timer.end();
      }

      private void _flushShadowTableInContext (SqlConnection conn)
      {
         foreach (DataRow row in shadow_datatable.Rows)
         {
            using (SqlCommand cmd = new SqlCommand())
            {
               cmd.CommandTimeout = 3600;
               StringBuilder cmd_text = new StringBuilder();

               cmd_text.AppendFormat("INSERT INTO {0} VALUES ", shadowTable);

               cmd_text.AppendFormat(CultureInfo.InvariantCulture,
                   "({0}, {1}, '{2}', @cmf, @xyz, {3}, {4} ",
                  row["id"], row["storage_id"], row["gross"],
                  row["mass"], row["fragments"]);

               for (int i = 0; i < MangoIndex.COUNTED_ELEMENTS_COUNT; i++)
                  cmd_text.AppendFormat(", {0}", row[BingoCore.mangoGetCountedElementName(i)]);
               cmd_text.Append(")");

               cmd.Parameters.AddWithValue("@cmf", new SqlBinary((byte[])row["cmf"]));
               cmd.Parameters.AddWithValue("@xyz", new SqlBinary((byte[])row["xyz"]));

               cmd.Connection = conn;
               cmd.CommandText = cmd_text.ToString();
               cmd.ExecuteNonQuery();
            }
         }
         shadow_datatable.Rows.Clear();

         foreach (DataRow row in components_datatable.Rows)
         {
            using (SqlCommand cmd = new SqlCommand())
            {
               cmd.CommandTimeout = 3600;
               StringBuilder cmd_text = new StringBuilder();

               cmd_text.AppendFormat("INSERT INTO {0} VALUES ", componentsTable);
               cmd_text.AppendFormat("({0}, {1}, {2}) ",
                  row["id"], row["hash"], row["count"]);

               cmd.Connection = conn;
               cmd.CommandText = cmd_text.ToString();
               cmd.ExecuteNonQuery();
            }
         }

         components_datatable.Rows.Clear();
      }

      public byte[] getXyz (int storage_id, SqlConnection conn)
      {
         object ret = BingoSqlUtils.ExecObjQuery(conn, "SELECT xyz from {0} where storage_id={1}",
            shadowTable, storage_id);
         return (byte[])ret;
      }

      public override void prepareForDeleteRecord (SqlConnection conn)
      {
         lock (_sync_object)
         {
            _flushShadowTable(conn);
         }
      }

      public override void deleteRecordById (int id, SqlConnection conn)
      {
         lock (_sync_object)
         {
            base.deleteRecordById(id, conn);
            BingoSqlUtils.ExecNonQuery(conn, "DELETE from {0} where id={1}",
               componentsTable, id);
         }
      }

      public string componentsTable
      {
         get { return "[" + bingo_schema + "].components_" + id.table_id; }
      }
   }
}


I would like to take this opportunity to thank each of you for your
participation in the Stanford Associate interviews last week.  Our efforts
resulted in 6 summer associate offers and 1 full-time associate offer.
Althea Gordon will be e-mailing you the names of the individuals who will
receive offers.  We would like you to contact these individuals to
congratulate them and encourage their acceptance.  Althea will match you up
with the candidates you interviewed and provide you with contact information.

Althea has verbally contacted both the offers and the declines.  We will be
sending out both offer letters and decline letters by end of day Tuesday,
March 20.  In the meantime, should any of you be contacted by students who
did not receive an offer, I recommend the following verbal response:

"Our summer program is highly competitive, forcing us to choose a smaller
number of candidates from a highly qualified pool.  Our summer hiring this
year will be between 35-40 associates.  The full-time program typically hires
between 80-90 associates.  Given that you made it this far in our selection
process, I would strongly encourage you to apply in the fall for the
full-time associate program."

We will keep you informed via e-mail of our acceptance rate at Stanford.

Again, thank you for your support.  We look forward to working with you on
potential future Stanford recruiting events.

Regards,
Celeste Roberts