text:
by Mitch Garnaat
Just about a year ago I wrote an article called Monster Muck Mashup that showed how to combine the Big Three of Amazon Web Services:
- Elastic Compute Cloud(EC2) for scalable compute resources
- Simple Storage Service(S3) for unlimited, reliable storage
- Simple Queue Service(SQS) for reliable messaging and loose coupling
Because of the level of interest the original article generated, it seemed like a good idea to update that article. After all, lot's of things have changed since then. New features have been added to all of the three services involved and whole new services such as SimpleDB have been added. And, the boto library used in the original article has also progressed significantly in the past year.
So, in this article we're going to revisit our video conversion service. We are going to address some of shortcomings of the previous version and add some new functionality by leveraging new services and features from Amazon Web Services. Let's get started!
We Can Make It Better
Based on the feedback I have received over the past year, I would like to focus the improvements in the following areas:
- Make it easier to use. The original system required a bunch of boto utilities to make it work. We wil still use some boto tools to enable some of the more advanced features but it should be possible to start up the AMI and convert videos without having anything other than the standard EC2 command line tools.
- Allow the actual ffmpeg command to be passed to the AMI upon startup rather than hardcoding it into the AMI. The ffmpeg package supports an enormous number of options and conversions so having all of that power reduced to a single conversion is frustrating and silly.
- Provide better error handling. Running the conversion as a remote service makes debugging a challenge. We can't solve all of those problems but we can certainly make things a bit easier.
- Take advantange of AWS's newest service, SimpleDB to provide an alternative to logging status messages to another queue. We will allow the status information to be stored in SimpleDB so we can query our database later to generate status reports and track individual files and batches.
- Update the ffmpeg code on the AMI to the latest code base.
Updating FFMPEG
The last item in our list above is the easiest so let's get that over with. The original AMI has been rebundled as ami-dc799cb5 and it contains the following ffmpeg version.
FFmpeg version SVN-r12488, Copyright (c) 2000-2008 Fabrice Bellard, et al. configuration: --enable-libmp3lame --enable-libfaac --enable-libvorbis --enable-libfaad --enable-libxvid --enable-libx264 --enable-liba52 --enable-liba52bin --disable-shared --enable-static --enable-gpl libavutil version: 49.6.0 libavcodec version: 51.51.0 libavformat version: 52.10.0 libavdevice version: 52.0.0
In addition to updating the ffmpeg program the new AMI also includes the latest version of boto which will allow us to tackle some of the other items on our todo list.
With Great Power Comes Great Responsibility...
The ffmpeg program provides a daunting array of options and supports multitudes of different input and output formats. In the original MMM article, we nullified all of that by basically hard-coding the command to convert our AVI format videos to MP4's that would work on our iPod. We're going to remedy that in our update and allow the full capabilities of ffmpeg to be utilized in our conversion service. So, the good news is that you will have the full power of ffmpeg at your disposal. The bad news is, you are responsible for determining the right set of command line options to achieve your desired conversions.
Probably the easiest way to determine which command line options work best for your videos is to fire up the sonofmmm AMI with a SSH keypair, login and actually run the command on the instance. You can use scp or sftp to transfer videos to and from the instance. Once you have a command that produces the output you need to copy that command down. You will need it later!
Let's Start Simple
We are going to start with the simplest scenario. Let's assume that you have a bunch of videos sitting in a bucket in S3 (let's call it my_source_videos. Let's also assume that you want to perform the same conversion on all of those files and store the results in another bucket in S3 (let's call this one my_converted_videos. We can accomplish this task using only the EC2 command-line utilities. The only thing we need to do is to put together the instructions that will tell our sonofmmm AMI what to do when it starts up. You may recall that in the original article, we passed data to the instance by stringing together name/value pairs, using a pipe ("|") character as a separator. That works okay for simple values but would be a pretty awkward way to pass full ffmpeg command lines. To address this, and other issues, the underlying boto system now uses config files to specify the options passed to new instances. That means you can edit the files with any text editor and you can also manage them as files, i.e. they can be checked into your version control system. An example of a config file for the new sonofmmm AMI is shown below.
# # Your AWS Credentials # You only need to supply these in this file if you are not using # the boto tools to start your service # [Credentials] aws_access_key_id = AWS Access Key Here aws_secret_access_key = AWS Secret Key Here # # Fill out this section if you want emails from the service # when it starts and stops # #[Notification] #smtp_host = your smtp host #smtp_user = your smtp username, if necessary #smtp_pass = your smtp password, if necessary #smtp_from = email address for From: field #smtp_to = email address for To: field [Pyami] scripts = boto.services.sonofmmm.SonOfMMM [SonOfMMM] ami_id = ami-dc799cb5 ffmpeg_args = -y -i %%s -f mov -r 29.97 -b 1200kb -mbd 2 -flags +4mv+trell -aic 2 -cmp 2 -subcmp 2 -ar 48000 -ab 19200 -s 320x240 -vcodec mpeg4 -acodec libfaac %%s output_mimetype = video/quicktime output_ext = .mov input_bucket = my_input_bucket output_bucket = my_output_bucket input_queue = my_input_queue
First, let's look at the values that are being passed to the conversion service itself. These can be found in the section title [SonOfMMM].
- ffmpeg_args - These are the actual options passed to the ffmpeg command. Any valid ffmpeg options can be specified here. Note the %%s characters in the list of args. These symbols will be substituted with the actual input filename and output filename at run time, based on the message read from the queue.
- output_mimetype - The mime type of the file being produced as an output of the ffmpeg command.
- output_ext - The file extension used for the output file generated by ffmpeg. Note that the extension must include the period character.
- input_bucket - The S3 bucket that contains source videos to be converted. This is also used later as the place to upload videos to be converted when we are using the boto tools to manage our services. In our simple example, the AMI, upon startup, will iterate over all videos in the bucket and create an input message for each file. It will then start reading the messages from the input_queue and performing the conversion.
- input_queue - The SQS queue from which messages will be read. Each message represents one unit of work or, in our case, one video file to be converted.
- output_bucket - The S3 bucket in which the converted videos will be stored. If this bucket does not exist, the converter will attempt to create it. This can be the same bucket as the input_bucket.
Now, let's look at those other sections in the config file. The [Pyami] section contains a single entry, scripts. This basically tells the newly started instance the name of a Python class that should be run upon startup. In our case, that's our SonOfMMM class. The latest version of that code can be found here.
The [Credentials] section contains, obviously, your AWS credentials. When you are using the boto tools to manage your services, this section will be added automatically by the tools. That's kind of nice because it means you don't have to put those valuable credentials in yet another file on your system where they could be compromised. However, if you are starting the services using the AWS command line tools you need to supply these credentials explicitely in the config file. These are the credentials that will be used by the service to read the videos to be converted and to write the output videos so make sure the credentials you supply here have sufficient access to the resources to perform their work.
The entire [Notification] section is optional but can be useful for helping you understand what's going on with your remote service. If you include the section and supply the appropriate SMTP values the conversion service will send email messages when an instance starts up and when it terminates.
So, the idea is to create your own version of this config file or possibly many versions of this config file. Each version of the file would represent a different kind of conversion or a different set of inputs and outputs. Then you would pass the appropriate config file to the new conversion service instance when it starts. For our purposes, let's assume that we have done that and our config file now exists on our local machine as the file ~/sonofmmm.cfg. Now, we want to start up a new instance of the SonOfMMM AMI and turn it loose on our videos. The command to do that is:
mitch$ ec2-run-instances -f ~/sonofmmm.cfg ami-bc6184d5
This will start up a new instance and pass the data in our config file to it so it's available to the instance once it starts up. The instance will then iterate over all of the keys in input_bucket, create an SQS message for each one and then start reading the messages from the queue and processing the videos. The results will be stored in output_bucket and when all of the conversions have been performed the instance will write a log file to the output_bucket that gives details about the work performed by the instance and any errors encountered. Then the instance will shut itself down.
Same As It Ever Was
The previous example represents the simplest possible scenario and didn't require any boto tools to be installed locally. That's a new capability available in this version of the AMI that, hopefully, will prove useful to some folks. For the next scenario I would like to recreate the same example used in the original MMM article. In that example, we did the following:
- Submitted files to the conversion process by copying them to an S3 bucket using the submit_files.py command.
- Launched our conversion service(s) using the start_service.py command
- Retrieved our results using the get_results.py command
It all worked but it was far more complicated than it needed to be. For starters, each of those commands took a bunch of different options and each command was run with no context of the service being called. So, each time we had to tell the command things like what bucket to use for inputs, what bucket to use for outputs what queue to use, etc. Fortunately, that's exactly the information we have now captured in our config file. So, all of those commands have now been replaced with a single command, bs.py which stands for boto service, of course. The basic syntax for the command is:
bs.py [options] config_file command
So, let's recreate the example from the first article using the new tools. Since the original example used a separate SQS queue to store results, we need to make a small edit to our config file to specify which queue to use.
... [SonOfMMM] ami_id = ami-bc6184d5 ffmpeg_args = -y -i %%s -f mov -r 29.97 -b 1200kb -mbd 2 -flags +4mv+trell -aic 2 -cmp 2 -subcmp 2 -ar 48000 -ab 19200 -s 320x240 -vcodec mpeg4 -acodec libfaac %%s output_mimetype = video/quicktime output_ext = .mov input_bucket = my_input_bucket output_bucket = my_output_bucket input_queue = my_input_queue output_queue = my_output_queue
The first step is to submit the videos to be converted. Let's assume we have the videos sitting on your local machine in the directory ~/movies. We would use the following command to submit those files for processing.
mitch$ bs.py -p ~/movies ~/sonofmmm.cfg submit Submitting /Users/mitch/movies/MVI_3110.AVI ... Submitting /Users/mitch/movies/MVI_4902.AVI A total of 50 files were submitted Batch Identifier: 2008_4_11_13_53_37_4_102_0
The -p option tells the command where to find the video files to submit to the service. You can either point the command at a single video file or a directory containing lots of videos. The next thing on the command line is the path to the config file for the service to which we are submitting the videos. The config file specifies what bucket the files should be stored in and which queue to write the messages to so there is no need to pass that information on the command line. The final element is the command we are performing. In our case we are submitting files so the command name is The submit. This command will upload all of the files in the specified directory to the appropriate bucket in S3 (based on info in the config file). If the files already exist in the bucket the upload operation will be skipped. The command will also queue up a message in the appropriate SQS queue for each file that is submitted. Finally, the command prints some stats and a The Batch Identifier. You should record that batch identifier somewhere, we'll need it later.
Now that we have submitted the files to be converted, we can start up our conversion service. We'll use the same The bs.py command to do that but with a different command.
mitch$ bs.py ~/my_sonofmmm.cfg start Starting AMI: ami-bc6184d5 Reservation r-1502fd7c contains the following instances: i-00dd1b69
There are some options I could have passed to the command, such as a The -k option to specify an SSH keypair which would allow me to login to the instance or a The -n option to control how many instances are started. You can get a complete list of available options by calling the command with the The -h option. For our purposes here, though, the simplest form will suffice. The The bs.py command takes care of adding our AWS credentials to the config file if they aren't there already and also serializes the config file and passes it to the instance so all of the same data is available to the conversion service when it starts.
The final step is to retrieve the results of our conversion. We can't do that until the conversion process is complete. If you have filled in the The [Notification] section of your config file you will get email when the service starts and stops. If not, just wait until the instance terminates. Once the conversions are complete, you can retrieve the generated files using the The retrieve command.
mitch$ bs.py -b 2008_4_11_13_53_37_4_102_0 -p ~/movies ~/sonofmmm.cfg retrieve retrieving file: MVI_3330.mov to /Users/mitch/movies/MVI_3330.mov ... 50 results successfully retrieved. Minimum Processing Time: 2 Maximum Processing Time: 39 Average Processing Time: 13.607843 Elapsed Time: 709 Throughput: 4.315938 transactions / minute
So What Have You Done For Me Lately?
Okay, I can hear the comments now. Sure, the config files make it cleaner and easier to define the parameters of my service. And, yes, I now have complete control over the ffmpeg. And I suppose the bs.py command is an easier way to control my services. But, where's the sizzle? I mean, come on, show me something new and shiny, already!
So, to address those anticipated comments the new Son Of Monster Muck Mashup now includes, at no extra cost (aside from any AWS fees, of course!), access to a highly-available, highly-scalable database in which to store all of your status messages. Storing all of this information in SimpleDB means it can be persisted for as long as you want to keep it around and you can use the SimpleDB query language to generate reports and statistics to your hearts content. To enable logging to SimpleDB, we need to change one line of our config file.
[SonOfMMM] ami_id = ami-bc6184d5 ffmpeg_args = -y -i %%s -f mov -r 29.97 -b 1200kb -mbd 2 -flags +4mv+trell -aic 2 -cmp 2 -subcmp 2 -ar 48000 -ab 19200 -s 320x240 -vcodec mpeg4 -acodec libfaac %%s output_mimetype = video/quicktime output_ext = .mov input_bucket = my_input_bucket output_bucket = my_output_bucket input_queue = my_input_queue output_domain = my_output_domain
And that's it. Notice that I have removed the output_queue option in the config file. It is actually possible to specify both in your config file but it's not clear why you would want to. Once I have made that change, all of my status info will be stored in SimpleDB. When storing the data in SimpleDB, boto creates an item for each file that is processed. The name of the item is of the form:
This has the following values:
- Timestamp for when the processing completed
- Name of the bucket in which the source file was stored
- Key of the source file
OutputKey = MVI_3632.mov;type=video/quicktime OriginalLocation = /Users/mitch/movies FileCreateDate = 2007-05-09T00:28:56Z Bucket = my_input_bucket Batch = 2008_4_11_13_53_37_4_102_0 Server = SonOfMMM FileAccessedDate = 2008-04-11T13:54:28Z Host = unknown Instance-ID = i-00dd1b69 InputKey = MVI_3632.AVI OutputBucket = my_output_bucket Service-Read = 2008-04-11T15:08:41Z FileModifiedDate = 2005-04-13T23:17:22Z Content-Type = video/x-msvideo Service-Write = 2008-04-11T15:08:57Z OriginalFileName = MVI_3632.AVI Size = 8365258
As I mentioned before, the biggest benefit of having this data in SimpleDB is that it is all indexed and searchable. That opens up a ton of possibilities and it's beyond the scope of this update to explore that fully but a couple quick examples should be enough to get you going in the right direction. So, what if I wanted to find all batches that include transactions that used the file MVI_3632.AVI as the source file. We could do that in boto like this:
>>> import boto >>> domain = boto.lookup('sdb', 'my_output_domain') >>> rs = d.query("['InputKey'='MVI_3632.AVI']") >>> for item in rs: ...: print item['Batch'] ...: 2008_4_9_17_47_11_2_100_0 2008_4_10_2_59_44_3_101_0 2008_4_9_22_13_26_2_100_0 2008_4_11_13_53_37_4_102_0
How about if I wanted to find out what bucket was used for output with batch 2008_4_9_22_13_26_2_100_0, how many input files there were and the total size, in bytes of all input files?
>>> rs = d.query("['Batch'='2008_4_9_22_13_26_2_100_0']") >>> num_files = total_size = 0 >>> buckets = [] >>> for item in rs: ... num_files += 1 ... total_size += int(item['Size']) ... if item['OutputBucket'] not in buckets: ... buckets.append(item['OutputBucket']) >>> num_files 50 >>> total_size 271362454 >>> buckets [u'my_output_videos']
Obviously, there are a lot of variations on this theme and I'm sure you can come up with a bunch on your own. You can also use other tools to access the data in SimpleDB since it's stored in a very language-independent way. If you are going to be processing lots of videos, SimpleDB can really help you keep track of them.
One Last Thing
We've seen that this updated version of the video conversion tools provides better control over ffmpeg, better tools to control and manage the service, some improved debugging tools and the ability to store your status messages in SimpleDB. But what if you want to customize this even further? What if you want to store some additional metadata in SimpleDB or generate multiple outputs for each input file or... well, you get the picture. The final thing I want to show in this update is a brief glimpse of how easy it is to customize the service and do your own thing. To accomplish this, you will need to do the following.
- First, make a copy of the current sonofmmm.py source file. The original file can be found in your boto distribution in boto/boto/services/sonofmmm.py. Let's call our copy mysonofmmm.py.
- Edit your new copy of the file and change the class name. Let's call our modified class MySonOfMMM. So,
class SonOfMMM(Service): def __init__(self, config_file=None):becomes
class MySonOfMMM(Service): def __init__(self, config_file=None):
- Copy your new Python file to a bucket in S3. Let's say our bucket is called my_scripts so after copying the file we can retrieve it as my_scripts/mysonofmmm.py
- Finally, edit your config file to reference your new script rather than the standard one in boto. To do that, you need to change this line:
[Pyami] scripts = boto.services.sonofmmm.SonOfMMMto this:
[Pyami] packages = s3:my_scripts/mysonofmmm.py scripts = mysonofmmm.MySonOfMMMThis tells boto to download your script from the specified location in S3, put it somewhere on your instance where it can be imported by Python and then run it rather than the standard Boto class. Once you have the ability to run your own Python code on the instance, the possibilities are endless, really. I'll leave the rest to your imagination.
Till Next Time
There's still lots more things we could do with our conversion service and maybe one of these days we'll have another update. But for now, I hope these improvements help those who are using this code as is, and also inspire others to do something even better.
Additional Resources
- Amazon Web Services: http://aws.amazon.com
- Amazon S3: http://aws.amazon.com/s3
- Amazon SQS: http://aws.amazon.com/sqs
- Amazon SimpleDB: http://aws.amazon.com/simpledb
- Amazon EC2: http://aws.amazon.com/ec2
- boto: http://code.google.com/p/boto/
- Python: http://www.python.org
- See the sample under Related Documents to download the code from this article.
Mitch Garnaat is a software guy living in upstate New York.


text:
lyndon taylor wrote:Whatya, you work for the NSA or something, this is major major mess up, thank goodness Snowden had the nerve to make us aware of what is going on, this has so little to do with terrorism and everything to do with controlling the masses and feeding information to the corporations.
Evidently. I'm sorry to say this to my american friends, but the US is the first fascist democracy in the world. And most of europe is following their footsteps.

subset: commoncrawl


text:
A POOR first half showing from Bratton Reserves at The Fleece led to their undoing, as despite a brave second-half comeback Dave Griffin's side, who were 3-0 at the interval, suffered a 4-3 defeat to the third division's second placed side.
Sam Simpson put the Fleece ahead and their lead was doubled by Tom Downes and his second of the game made it 3-0 and looked as if it was sending the home side coasting to victory.
Bratton overcame their defensive frailties in the second half and look the game to their to their hosts and a 35 yard thunderbolt from Frankie McEntegart got them back in the game.
A second from McEntegart reduced the deficit to the odd goal and just when Bratton were getting the upper hand, they conceded what was a hotly-disputed penalty which was calmly tucked away by Nick Gleeson to restore a two-goal advantage for the Fleece.
Bratton clawed a third goal back five minutes from time, with McEntegart completing his hat-trick, but for the visitors to the Beeches it wasn't enough as the hosts held out to pick up three more valuable points in the bid for promotion.
Trowbridge Rangers 0 Westwood News 7
A 10TH straight victory for Mark Hurkett's Westwood News side saw them maintain their nine-point lead at the top of the table.
Hurkett's warriors kicked off 2013 in style with a 7-0 win at a Trowbridge Rangers outfit who were really outplayed from the first whistle.
Had it not been for some brave defending from the hosts and poor finishing from the visitors to Whaddon Lane the defeat could have been greater.
Westwood lead inside 90 seconds with Tom Rooney putting them in front. Trowbridge held their ground until the 25th minute and then a Steve Bryant effort doubled the leaders advantage and two minutes later Rich Jones headed in a Bryant corner for 3-0.
In what was a carbon copy of their third another, Bryant corner on 38 minutes looked to have already crossed the line before Jones headed in to claim his second of the half to put Westwood four goals to the good.
Richard Jones turned provider for Westwood's fifth on 51 minutes, his cut back found Tom Rooney who had a simple finish to claim his second of the afternoon.
Substitute Josh Maguire made it 6-0 before Rooney completed his hat-trick, five minutes from time to put the icing on what was a fine personal performance from the man who is proving a to be a star in his first season for the villagers.
Trowbridge Town Reserves 0 Bradford United Reserves 4
IT WAS third versus fourth at Woodmarsh where Trowbridge Town Reserves, third at the start of play, hosted Bradford United Reserves.
But come the final whistle the teams had swapped positions as Bradford who lost the reverse fixture in November 7-2 produced an excellent all-round team display as they avenged that loss with a 4-0 victory of their own.
Bradford went ahead through a first of the afternoon from Jonny Eamer, Tom May doubled their lead before a second from Eamer gave the visitors to Trowbridge a commanding half time lead.
With Bradford's defence on top of their game, the hosts were unable to find a way back into the game and their fate was sealed when Scott Mitchell fired in his teams fourth to wrap up a deserved victory.
MATCHES OFF: Lacock FC v Polenez Westbury, Levi's FC v The Stiffs.
TROWBRIDGE & DISTRICT LEAGUE ROUNDUP, STATS AND PICTURES IN THURSDAY'S GAZETTE & HERALD AND FRIDAY'S WILTSHIRE TIMES AND FOLLOW US ON TWITTER @gazsport and @WTSport


text:
MC@Play: Marie Claire Does Coachella
Profession: Actress in this month's Iron Man 3.
Obsession: Golfing.
When did you start golfing? At age 10. My dad took me to the golf course on the weekends.
Experience: I took a year off after high school and played in tournaments all over Europe.
Highlight reel: A couple of years ago I was the only female celebrity who participated in the Bob Hope Classic. I played from the men's tee!
Favorite courses: The European Club in Ireland, The Royal County Down in Northern Ireland, and my own club—The Saint Andrews Golf Club in New York.
I love: My TaylorMade Rossa putter.
I wish:You could wear golf clothes that looked good but didn't look like you were going to play golf.
I used to: Swear in French on the course. Nobody knew what I was saying.
Now I say: Golf is just like life. You can be playing great, and then have a terrible hole. You have to forget what went wrong and keep playing.
BEGINNER'S TIP: "Find a girlfriend to start with you," says Szostak. "It's intimidating when you don't know how to play."
Profession: Actress in the CW series Arrow.
Obsession: Playing the ukulele.
Why the ukulele? When I moved to Vancouver to film Arrow, I had nothing to do on my days off. A friend said, "Get a ukulele. If you can't pick it up, then you've just wasted 30 bucks. Big deal."
When I started, I thought: I can't do it. I have no hand-eye coordination.
Then I realized: Any human can pick up the uke. The kind I bought, an Emus, came with a booklet of chords. I learned those, then and there.
Work in progress: My biggest problem is I can't play and sing at the same time yet.
Accessorizing: I use a shoestring as a strap.
Music is ... One of my favorite things. I've always envied musicians. Now I've found something that I can play.
What's next? The banjo!
GET STARTED! Holland's tip: "Look for a ukulele that's well-crafted but cheap. Think wood, not plastic."
What We Love About April


text:
When you finish your meal at General Assembly, the new restaurant in Gramercy from the people behind Quality Meats, you'll immediately be shown a shiny tray of meticulously made eclairs ($6.50 each). It's an update of sorts to the old school dessert cart that many restaurants used to employ, which is how you could describe the eclairs themselves: refreshing takes on a classic, somewhat staid French dessert.
The Key Lime Meringue may be the best of the three varieties I tried. The crunchy pâte a choux cylinder is filled with a lip-puckeringly tart lime filling that's more of a curd than a traditional pastry cream. On top is a green glaze topped with a delicately piped line of Italian meringue delivers the full key lime pie experience and cuts some of the sweetness of the filling. Pastry chef Cory Colton replaces the simple fondant glaze that adorns a standard eclair with a ganache version like you see on glossy entremet cakes in fancy pastry shops.
Chocolate and peanut butter lovers may want to consider the Chocolate-Peanut Butter Eclair. The tiny chocolate spheres on top give it a whimsical appearance, but it's made from the decidedly serious high end Valrhona 66% Carribe chocolate filling. Peanut butter comes in the glaze on top, pairing especially well with the chocolate.
For a fancier dessert, get the Apple Tatin Crème Brûlée, a thick custard topped with baked apples that are coated in sugar and torched to form the dessert's crust.
About the author: Native New Yorker Niko Triantafillou is the founder of DessertBuzz.com his photographs of desserts and pastry chefs have appeared in the Wall Street Journal, Washington Post and Dessert Professional Magazine. He is an unabashed foodie nerdling. Follow him on Twitter at @DessertBuzz.


text:
Whether you're looking for folate, multivitamins, evening primrose oil, black currant seed oil or something else, Swanson has you covered. We carry a variety of supplements that support oral, GI, digestive, urinary, vaginal health and more. Browse our selection of the best supplements for women now!
You're now signed up to receive exclusive deals and savings opportunities!
Thank you for your interest and be assured that you will continue to receive our emails at this address.
We are having trouble processing your request. Our apologies! Please try again later.


text:
NetWellness is a global, community service providing quality, unbiased health information from our partner university faculty. NetWellness is commercial-free and does not accept advertising.
Friday, September 22, 2017
Ear, Nose, and Throat Disorders
Numbness/loss of taste of tongue?
In August, 2009 I had a steroid injection thru my eardrum for vertigo, been getting the attacks since 2001. In September, 2009 I noticed my tongue was feeling numb in some areas, then a few weeks later I noticed that my tongue had a scalded feeling towards the front and then after that, I lost the "taste" in parts of my tongue, and now have a metallic taste in my mouth along with this. I wanted to know if the "steroid" from the injection could have, somehow, gotten into my throat and my mouth to cause this side effect? Thank you!
Initially I would consider two possibilities:
1- It is possible for the steroid to pass through the eustachian tube and into the back of the nose and then the throat, but usually this would not cause any lasting abnormality. However, the symptoms you describe are very suggestive for a yeast infection in the mouth, or thrush. It would be a simple matter to ask your doctor for a mouth rinse to treat thrush, to see if this would help.
2- There is a nerve that passes through the middle ear on its way to the tongue, where it provides innervation to the taste buds on the anterior portion of the tongue. If traumatized, for example during ear surgery, it can temporarily cause some loss of taste, but more commonly will cause a persisting metallic taste in the mouth. While it would be unlikely that a steroid injection directly traumatized this nerve, it is remotely possible if the nerve happens to be "exposed", that is some of its bony covering is congenitally absent. There would be no specific treatment for this, however such symptoms usually resolve over time.
Allen M Seiden, MD
Professor of Otolaryngology, Director of Division of Rhinology and Sinus Disorders, Director of University Taste and Smell Center, Director of University Sinus and Allergy
College of Medicine
University of Cincinnati


text:
Steve Zapata
Steve Zapata is President, CEO and Managing Member of bTrade.
Steve is a highly respected eCommerce executive who has held significant management positions at IBM Global Network and IBM World Trade Group supporting IBM's EDI/VAN and MFT solutions throughout the America's, as well as, General Electric's GlobalExchange Division, DNS Commerce, TIE Commerce, Cyclone Commerce (Now Axway) and INOVIS. With just under 20 years of experience in the AS2, EDI, VAN and Integration services area, Steve has led initiatives both domestically in the US and internationally throughout Latin America.
Steve spent twelve years with IBM as a Systems Engineer, Marketing Representative, Manager and Country Manager for IBM Global Network and their EDI/VAN/AS2 solutions located in New York and Mexico City. Steve successfully grew GE GXS's operations in Mexico and the Caribbean as General Manager. As President and CEO, Steve led DNS Commerce, a Boston-based EDI software and services company, to a turnaround and eventual acquisition by a European e-commerce company. Steve was also President and CEO of TIE Commerce USA and Chief Strategy Officer of TIE Holding, a publicly-held company on the NYSE, located in Amsterdam, the Netherlands. Steve also held the position of Senior Vice President of Sales & Business Development at INOVIS located in Alpharetta, GA.
Steve holds a MBA from San Francisco State University, a BS Degree from California State University, Chico and an Associate of Arts Degree from Riverside City College. Steve attended Ventura College of Law, completing coursework towards his JD degree with an emphasis in Corporate Law.
Steve is a Advisor to the Private Equity Firm, Avantce (www.avantce.com) located in Naples, Florida regarding operational matters concerning Avantce's portfolio companies. Steve sits on the Advisory Board of Directors of DirectEDI, a web services and hosted transformation company located in San Diego. He has also previously held board seats with Ecsalesdata.com of Los Angeles and XsCapacity of Northampton, Mass. Steve is based at company headquarters in Burbank, California.


text:
Category -
Refine By
We are sorry for the inconvenience.
We're currently launching our Horns category. Please come back soon to see everything OnBuy has to offer.Browse Parent
Want to sell a product here?
If you would like to sell in the Horns category, please visit our Sell With OnBuy section for more information.Sell With OnBuy


text:
Surgery not a viable option for Cuddyer
DENVER -- Outfielder Michael Cuddyer will spend six to eight weeks wearing a sling as he recovers from a non-displaced fracture in his left shoulder socket. Because of the need for rehab, he'll most likely be out until late August.
Keith Dugger, the Rockies' head athletic trainer, said the problem can't be repaired surgically because an operation would be too invasive, although he is soliciting various opinions.
The injury, which Cuddyer sustained diving for a ball while playing third base, is an uncommon one.
"I've been in baseball for 27 years professionally," Dugger said. "I've seen two [of these injuries] -- one from a motorcycle crash, and one from a freak diving accident [Cuddyer's]. I've talked to a few of my counterparts, and they've never seen one in baseball. Now, if you're in X Games or possibly football, you see these types of things."
Cuddyer will need physical therapy and strengthening before he'll be able to go on a Minor League rehab assignment.
The injury is a difficult blow for Cuddyer, last year's National League batting champion, who is in the final year of a three-year, $31.5 million contract. He was batting .317 with five home runs and 16 RBIs in 31 games in a season that also saw him miss 25 games with a strained left hamstring.
Cuddyer has spent time on the disabled list each of his seasons in a Rockies uniform.
In 2012 he strained a right oblique on July 31 and played just three games the rest of the season. Last season he missed 14 games in May with an inflamed cervical disc in his neck. But after his return he fashioned a 27-game hit streak and earned a starting berth, as an injury replacement, in the All-Star Game.
Thomas Harding is a reporter for MLB.com. Read his blog, Hardball in the Rockies, and follow him on Twitter @harding_at_mlb. Teddy Cahill is a reporter for MLB.com. Follow him on Twitter at @tedcahill. This story was not subject to the approval of Major League Baseball or its clubs.


text:
Choose your apple juice related quote
"Science is some kind of cosmic apple juice from the Garden of Eden. Those who drink of it are doomed to carry the burden of original sin."
Lewis M Branscomb
or from Barbershop
Terri: Who drank my goddamn apple juice?
Calvin: Whoa! Terri, stop cussing. This ain't Def Comedy Jam!


text:
CSS Button No Image Css3Menu.com
Transaction Analysis column archives.
December 6, 2012
by R.J. Anderson
The Rockies re-up Jeff Francis, the Cubs get Nate Schierholtz, and Joe Blanton joins the Angels.
The Cardinals lure Randy Choate out of Los Angeles, while the Angels sign Sean Burnett away from Washington.
by R.J. Anderson, Ben Lindbergh and Sam Miller
The Mariners add Jason Bay, the Orioles re-up Nate McClouth, the Diamondbacks sign Eric Chavez, and the White Sox go long on Jeff Keppinger.
by Ben Lindbergh
Second-half hero Marco Scutaro gets a surprisingly long and totally predictable contract to remain with the Giants.
The Astros cash out their most effective reliever.
by R.J. Anderson, Ben Lindbergh and Jason Parks
Yunel Escobar and his $5 million salary lasted just two weeks in Miami (and the Diamondbacks add Eric Hinske).
December 5, 2012
by Sam Miller
New Nationals starter Dan Haren's fastball has declined considerably over the last several seasons, but how worried should Washington be?
The Red Sox paid for an outfielder coming off a down year. Is it an extravagant risk?
December 4, 2012
The Red Sox get the catcher they wanted two years ago, though he's likely not a catcher any more.
The Rangers begin filling their bullpen holes by taking a chance on formerly dominant closer Joakim Soria.
The Giants re-sign Angel Pagan, the Padres re-sign Jason Marquis.
December 3, 2012
The Cubs get Fujikawa, the Rangers re-sign Soto, the Brewers trade for Badenhop and the Rays sign James Loney.
A wide-ranging collection of big leaguers were set free at the tender deadline.
November 30, 2012
The Yankees re-sign Mariano Rivera, the Mets extend David Wright, and the Angels trade Jordan Walden for Tommy Hanson.
The Pirates jump into the Yankees' pool.
by R.J. Anderson and Mark Anderson
After seemingly endless rumors linking Denard Span to the Nationals, Washington got its man.
November 29, 2012
Atlanta takes on plenty of risk but gets Upton's upside.
November 28, 2012
The Cincinnati Reds sign Broxton to a three-year deal, allowing them to move Aroldis Chapman to the rotation.
The Red Sox sign Gomes, the Angels sign Madson, the Cubs sign Feldman
November 26, 2012
Baseball's team-friendliest deal may have just gotten friendlier.
Major League Baseball trademarks and copyrights are used with permission of MLB Advanced Media, L.P. All rights reserved.Copyright © 1996-2017 Baseball Prospectus, LLC.


text:
Cookie policy: Cookies are required to login to this site. No personal information is captured or shared with third parties.
***The BASSA Website will be unavailable for 48 hours every last Friday of each month whilst the month end is being processed ***
The British Airlines Stewards and Stewardesses Association (BASSA) is a branch of Unite exclusively for British Airways cabin crew. Our membership is approximately 10,000, which makes us the largest branch of Unite.
BASSA is an active and progressive union, which is entirely staffed by elected representatives, all of whom work as BA cabin crew. We are therefore fully involved in every aspect of cabin crew working life, including rosters and scheduling, pay, hotels, allowances and all working agreements and conditions.
BASSA has offices in Unite House on the Bath Road and in Terminal 5, Heathrow. We have 24 hour a day emergency phone lines.
To become a member of BASSA you must complete an Application Form or call in to our Terminal 5 Office or our main office below:
BASSA, Unite House, 99 New Road, Harlington, Middx UB3 5BQ
Please remember that BASSA membership is available to British Airways Cabin Crew Only.


text:
McDonald's has added a grilled onion cheddar burger to its dollar menu through the end of January.
The sandwich, which launched Dec. 31, is the restaurant chain's latest item to be grilled using fresh onions. Another limited-time offering, the cheddar bacon onion sandwich, debuted in October. It was available with angus beef or grilled chicken and included slivered, caramelized onions.
The grilled onion cheddar burger is a beef patty served with onions and a white cheddar slice on a toasted bun. It's on McDonald's extra value menu, according to Tyler Litchenberger, communications manager, McDonald's USA.


text:
It's not that I have something to hide, I just don't like people prying into my stuff or my family's and friend's.
tiltbillings wrote:Our information that we, like lemmings, freely put on there. They make massively big bucks selling our information we, in our slaphappy ignorance, put out there
Only if you insist upon using a particular defintion as being normative for all, which is not really a meaningful thing to do, but then maybe you are making a funny here.retrofuturist wrote:Greetings,tiltbillings wrote:Our information that we, like lemmings, freely put on there. They make massively big bucks selling our information we, in our slaphappy ignorance, put out there
In the scheme of things it's only ignorance if it constitutes aversion, greed or delusion.
tiltbillings wrote:... but then maybe you are making a funny here.
tiltbillings wrote:Now be nice. The snooping done by these companies is essentially turning us into products. The worst offendeer by far is Fecesbook which values itself at 100 billion US Dollars. (...)
Ben wrote:What is a Buddhist privacy policy?
Some folks certainly do put way too much personal info out there on such things a s Fecesbook, but the reality is that whatever info that put onto FB is open to mining by them in order to sell. That is how they are making their astronomically huge bucks. It is does not appeal to me to be used in such a way, which is why what little personal info I have on Faretbook is false.Ben wrote:Hi Tilt,
My perspective as an ex-Privacy Officer for a municipality is that there are some worrying . . .
worldly.guy wrote:Ben wrote:What is a Buddhist privacy policy?
Hi Ben,
Yeah, I didn't chose the words properly. I meant a 'really honest -without hidden agendas- privacy policy'
ricebowl wrote:Tathagatha.org or .com seems available as of yesterday, could be a decent domain name setting up an online presence with a decent shared web host, all in all cost under $100 per year whether with godaddy, dreamhost or even the lesser known South East Asian hosts such as sieuhost.com in Vietnam or Vodien.com.sg in Singapore
Users browsing this forum: No registered users and 58 guests


text:
By Tom Nader | Sports Editor
Persh Rohrer, who has been employed at the Record-Courier since 1952, celebrated his 94th birthday on Sunday.
He is recognized by the Ohio Newspaper Association as the oldest-working journalist in the state. Additionally, information compiled by the Huffington Post last year by Bill Lucey found that Rohrer was very likely the oldest-working journalist in the United States.
Lucey found that only sports columnist Sid Hartman, who is now 93, of the Minneapolis Star Tribune challenged Rohrer's current working status.
For Persh, his accomplishments and honors always take a backseat to the next day's work. Nothing is more important to him than the next story and getting it right.
He still works on deadline, still writes and edits his own copy and still offers design ideas. He has successfully transitioned through the world of journalism's changes. He dates back to metal type, but has always been a willing learner and kept up with each era's technological advancement.
Persh remains an inspiration of hard work and passion. He found a job he loved and has never stopped enjoying it.


text:
Winter Storm Warning Remains in Effect; Residents Encouraged to Check on Neighbors
Feb. 6, 2010
News Highlights
More Information
A winter storm warning remains in effect until 10 p.m. tonight, with additional accumulations of 4-6 inches of snow anticipated throughout the day.
With many thousands of people living in Fairfax County without power, residents are encouraged to check on their neighbors, especially the elderly. If one of your neighbors is without power and you have power service, please help as possible.
Road conditions remain hazardous. The Office of Emergency
Management strongly recommends that residents remain indoors where
occupants are not exposed to the current hazardous weather conditions.
Also, Fairfax Connector bus service is suspended
for Saturday, Feb. 6.
Caution should be used with any approved auxiliary heating devices, such as kerosene, propane or natural gas heaters. Please keep combustibles away from all portable heating devices and candles, monitor their use and don't leave them unattended.
Please do not dial 9-1-1 to obtain information on the restoration of power.
For power information, call your local provider:
- Dominion Virginia Power: 1-888-667-3000
- Northern Virginia Electric Cooperative (NOVEC): 703-335-0500 or toll-free 1-888-335-0500
Fairfax County Government offices and facilities, including libraries, are closed until 6 a.m. Monday, Feb. 8. Emergency service personnel should report as scheduled. Fairfax County Public Schools are closed for the weekend.
Emergency information will be available this weekend on:
- Fairfax County's Web site
- Emergency information phone line (703-817-7771)
- Community Emergency Alert Network (CEAN)
- Fairfax County Government Channel 16.
- In addition, 1670 AM, emergency radio for Fairfax County, is broadcasting continuous weather information directly from the National Weather Service.
Additional winter weather preparedness information can be found online. In addition, emergency contact numbers for public utilities is online should residents lose electricity, gas, telephone, cable, Internet or water service.
Contact: Merni Fitzgerald, Director, Office of Public Affairs
703-324-3189, TTY 711, Media Pager: 703-324-NEWS (6397)
To request this information in an alternate format, call 703-324-3187, TTY 711


text:
Review important dates and stay on top of deadlines. If at any time you are unsure about a published date or deadline, call the Registrar's Office at (414) 229-3800 or submit a contact form online.
- Registrar's Add/Drop Interactive Calendar
- Important Dates by Term
- Add/Drop Deadline Chart
- Tuition/Fee Assessment for Drops/Withdrawal Chart
- Dates & Deadlines PDFs
Other UWM Campus Calendars:


text:
Go COLTS!!! The Colts jugernaught keeps on rollin'!
'); var yuipath = 'clientscript/yui'; var yuicombopath = ''; var remoteyui = false; } else // Load Rest of YUI remotely (where possible) { var yuipath = 'http://yui.yahooapis.com/2.9.0/build'; var yuicombopath = 'http://yui.yahooapis.com/combo'; var remoteyui = true; if (!yuicombopath) { document.write('
Go COLTS!!! The Colts jugernaught keeps on rollin'!
I really wish I was more of a football fan - but congrats you guys. I'll cheer for your Colts even though I don't know much about them other than Peyton and Marvin
But I have to go for the Indy team I guess
Super Bowl XLI Champions
2000 Eastern Conference Champions
It's already started. Journalists are saying that Peyton can't win out side. That he can't win in hte cold. That the Colts don't stand a chance of beating the Patriots. I'd rather be the underdog and win than be favored and lose.
Peyton can win outside if the conditions are reasonable.
In the 30's and wind at 10mph or less and no precipitation.
If it is in the 20's with snow and gusting winds, I think we are done.
Pats still need to fear one thing however. Each and every game against the Pats that Peyton plays he is always hindered by the one cornerback who out plays him. Ty Law.
This time there is no Law and Peyton is coming in hot and the Colts are coming with Bob "Big Hit" Sanders.
I'm really looking forward to the game. It's going to be a shootout.
Take me out to the black, tell 'em I ain't coming back. Burn the land and boil the sea, you can't take the sky from me.
This is the time for the Colts to make their move and get the monkey
off their back. I believe that they have been playing at a higher level than
the Pats for the past several weeks, plus the Pats appear to have a couple of
key defensive players injured. Now is the time, not to put too much pressure
on the Colts though.
I really think this is the year that we beat those guys. No Ty Law is really gonna hurt them. And DiamondDave I've been really impressed with Bob Sanders too. He could turn out to be one of hell of a player.
For Colts, nothing's proved until next weekend
Jan. 9, 2005
By Pete Prisco
SportsLine.com Senior Writer
Tell Pete your opinion!
INDIANAPOLIS -- We've seen this before, and that's the problem. We've watched the Indianapolis Colts roll up gaudy offensive numbers to win playoff games, their quarterback playing pitch-and-catch to a record-breaking tune and their fast-break style making some wonder if this offense can be stopped.
Peyton Manning can't celebrate long with the Patriots on deck. (Getty Images)
So when the Colts win a wild-card game in grand fashion as they did Sunday against the Denver Broncos -- blowing them out 49-24 at the RCA Dome in a game that really wasn't that close -- it might be a pretty thing to watch, but the reality is that it also brings to mind this thought:
So what?
That might seem a bit cruel, a bit callous, considering the dominance the Colts displayed against the Broncos, but anything short of a Super Bowl for this team will be a failed season.
It's that simple.
The skeptics will always be lurking until the Colts can have a summer ceremony to slip on those Super Bowl rings. Out-of-this-world passing numbers by Peyton Manning are nice. MVP trophies look good on the mantle, and it's wonderful to put more Colts names in the NFL record book than there are Smiths in a city phone directory.
But none of it really matters if there's no Super Bowl trip. To get there, the Colts will have to beat the defending champions when they travel to Foxboro, Mass., next Sunday to play the New England Patriots. It was the Patriots who beat them in the AFC Championship Game last season, keeping alive the thoughts of the legion of doubters who insist anything short of a Super Bowl is failure for this team.
"That's a valid point," Colts receiver Brandon Stokley said. "People can bring it up all they want, and we really can't say much about it. It's a valid point."
Manning put on a passing clinic against Denver for the second consecutive year, completing 27 of 33 passes for 457 yards and four touchdowns, proving once again that he can indeed play well and win big games, the idea that he can't a criticism that somehow won't go away.
For the second consecutive year, the Colts opened the playoffs with an offense-dominant performance against a Denver team that seemed helpless to stop them, so helpless that coach Mike Shanahan sent a we're-done message to his team in the second quarter when he tried an onsides kick down 21-3.
This was deja poo for the Broncos.
Manning once again turned the game into a 7-on-7 passing drill, throwing for 360 yards and three touchdowns in the first half. The yards were the most by a quarterback in the first half of a playoff game since the merger in 1970. His 457 total was the second most in playoff history behind Bernie Kosar's 489 against the Jets in 1986.
"It was outstanding execution throughout the entire game," Manning said.
The Colts game plan was simple, really. When they went to three-receiver sets last week in their season-ending loss to the Broncos, a game that was more like a preseason game for the Colts since their seed was locked in, they noticed the Broncos played star corner Champ Bailey on Marvin Harrison and put Kelly Herndon inside on Stokley, which left rookie Roc Alexander on Reggie Wayne.
A real rock might have been better in coverage on this day. At least it would have held its position.
Reggie Wayne and Brandon Stokley step up to answer Denver smack talk. (Getty Images)
Wayne was more open than a carnival barker's mouth, catching 10 passes for 221 yards and two touchdowns, nearly all of that against an overmatched Alexander.
"It's nothing against Alexander," Manning said. "Reggie's had an outstanding year all season long. Whoever's been guarding Reggie is always in for a challenge."
Colts coach Tony Dungy admitted his team expected the Broncos to blitz a lot and play plenty of man behind it. With Bailey on Harrison, limiting him to four catches for 50 yards, it was natural that Manning picked on the rookie.
In fact, the Colts led 21-0 before even Harrison or Stokley caught a pass, which is significant since both went over 1,000 yards receiving this season with more than 10 touchdowns.
Harrison's ability forces teams to roll coverage to his side, which helps open things up for Stokley and Wayne. It also helps when tight end Dallas Clark, who did not play in the playoffs a year ago because of a broken leg, chips in with six catches for 112 yards and a touchdown.
It was on Clark's touchdown that Manning said the safety cheated to help Bailey, which left Clark alone in the middle of the field for a 19-yard score.
What made the Colts receiving group gloat a little more Sunday was they made the Broncos, and maybe some of those doubters, eat some words. Some Broncos came out last week and said the Colts receivers were soft, a reputation the team has as a whole.
"They don't like to be hit," Denver safety Kenoy Kennedy said. "They're small guys. Any time they can, they jump on the ground. You've got to be physical with them. They don't like it."
The Colts receivers heard the comments, and then came out and made the Broncos pay for them. Not only did they put up the big numbers, but they had some crunching blocks on those same defensive backs.
Broncos safety John Lynch was fined $75,000 for a helmet-to-helmet hit on Clark last week, but it was Lynch and his mates who took the beating this time. Stokley nailed Lunch with a key block on one of Wayne's touchdowns, while Harrison got Bailey with one on another.
"I wasn't going to back down," Wayne said. "I wasn't going to fall to the ground or whatever they said."
Said Stokley: "We wanted to let our play do the talking for us."
It did, loudly. Not surprisingly, the Denver players did little talking.
"We didn't hear much from them," Stokley said.
Now comes the tough part, winning at New England. It's the game the Colts have been waiting to play, even if they didn't say so Sunday. It's a validation point.
Win, and they're for real.
Win, and they aren't soft.
Win, and Manning can kick to the curb all those who doubt his ability to win the truly big ones. He played poorly last year as the Patriots corners beat up his receivers.
"I played like an absolute dog in that game," Manning said.
It is something that has eaten at him for 12 months, from his now-legendary workouts through a regular season that saw him break the single-season record for touchdown passes.
Anything less than a Super Bowl just won't do.
"We've still got a lot to prove," Colts tight end Marcus Pollard said.
Do they ever.
Wild-card victories are nice and all, but if the Colts can win at New England next week, the doubters will scatter like ants on a stepped-on ant pile. If they lose, those doubters will be heard louder than ever.
Like I said, they beat up the Broncos again Sunday.
So what?


text:
|Click Here to Login
« Princely Family of Monaco: Current Events Part 5 (April 2008 - June 2010) | Prince Albert II of Monaco Current Events - Part 28 (Sep. 2009 - August 2010) »
Our communities encompass many different hobbies and interests, but each one is built on friendly, intelligent membership.
» More about our Communities
Our Automotive communities encompass many different makes and models. From U.S. domestics to European Saloons.
» More about our Automotive Communities
Our Marine websites focus on Cruising and Sailing Vessels, including forums and the largest cruising Wiki project on the web today.
» More about our Marine Communities


text:
GI Joe Wave 6, Koto Commander Cody, more!
Lots of cool new items in-stock and up for pre-order at BriansToys.com, including:
* GI Joe Wave 6 Pre-Order (set of 6), or individually: Snake Eyes (Ninja Commando) , Crazy Legs, Croc Master, Rock Viper, Cobra Viper, and Iron Grenadier
* PRE-ORDER - Koto ArtFX Commander Cody (Light Up)
* New 2-Packs IN-STOCK: ARF Trooper Waxer & Battle Droid, Cad Bane & IG-86, Senate Commando Captain & Senate Commando
* Manadalorian Troopers Battle Pack - IN-STOCK
* Episode I Star Wars Life Size PRICE REDUCTIONS: Life-Size Watto C-7/8 (Has Broken Leg) Was $699.99, NOW $549.99!
* PRE-ORDER - Gentle Giant Star Wars Busts: Nihilus and Shae Vizla
* PRE-ORDER - Gentle Giant 12" Jumbo Vintage Ben Kenobi and 12" Jumbo Vintage Jawa
* PRE-ORDER - Attakus 1:10 Scale Elite Collection: Coruscant Clone Trooper, Kashyyyk Trooper, 501st Legion Clone Trooper, Commander Bly, Commander Cody, Commander Neyo, Commander Thire, and Commander Gree.
* PRE-ORDER - Clone Wars Wave 11 (Full Set), or Single Carded: Bariss Offee, Clone (with Riot Gear), Eeth Koth, and Red Leader ARC Trooper
Find all these great items and more at BriansToys.com!


text:
Marinated Tomato Salad with Parsley and Marjoram Dressing
(Makes 4 servings, recipe slightly adapted from Our Neighborhood Cookbook from Sandee's neighborhood in South Jordan, Utah)
6 large garden tomatoes, preferably at least two colors of tomatoes
2/3 cup olive oil
1/4 cup white wine vinegar
1/4 cup sliced green onions
1/4 cup finely minced fresh parsley (either curly or flat parsley will work here)
1 T minced fresh marjoram leaves (original recipe called for 2 tsp.)
1/2 tsp finely minced fresh garlic
1 tsp. salt (I used ground sea salt)
1/4 tsp. pepper (I used fresh ground black pepper)
Pour dressing over tomatoes, cover, and let marinated for an hour or two at room temperature. (The original recipe called for tomatoes to be refrigerated for a much longer time, but Sandee and I agree they're better when they haven't been chilled.) You may want to spoon the dressing over the tomatoes a few times while they marinate if they aren't all covered.
South Beach Suggestions:
Find More Recipes Like This One:
Nutritional Information?
More Summer Tomato Salads to Enjoy Before It's Too Late:
(Recipes from other blogs may not be low-glycemic or South Beach Diet friendly; check ingredients.)
Heirloom Tomato Salad with Burrata Cheese ~ White on Rice Couple
Chopped Tomato and Cucumber Salad with Mint, Feta, Lemon, and Thyme ~ Kalyn's Kitchen
Tomato, Beet, and Basil Salad with Balsamic Vinaigrette ~ The Perfect Pantry
Summer Tomato Salad with Goat Cheese, Basil Vinaigrette, and Fresh Herbs ~ Kalyn's Kitchen
Tomatillo and Tomato Salad ~ A Communal Table
Middle Eastern Tomato Salad ~ Kalyn's Kitchen
Tomato Salad with Basil Cream Dressing ~ Lottie and Doof
Tomatoes, Hearts of Palm, Olives, and Feta with Basil Vinaigrette ~ Kalyn's Kitchen
Tomato, Basil, Avocado, Mozzarella Salad ~ Julia's Album
Bacon, Lettuce, Tomato, and Avocado Salad ~ Kalyn's Kitchen
Blogger Disclosure:


text:
Kawasaki rests with right hamstring tightness
ST. PETERSBURG -- Blue Jays second baseman Munenori Kawasaki, who left Friday's game against the Rays in the seventh inning with tightness in his right hamstring, was scratched from the lineup Saturday in favor of Steve Tolleson.
It was Tolleson who replaced Kawasaki on Friday and delivered the go-ahead two-run single in the ninth inning of Toronto's 8-5 win.
"He never gets banged up, so when he's hobbling a little bit, you know there's something," Blue Jays manager John Gibbons said. "You know something's not right. Probably a little fatigued, too."
David Adler is an associate reporter for MLB.com. This story was not subject to the approval of Major League Baseball or its clubs.