text:
The $25 billion settlement with five banks unveiled Thursday, which aims to give some mortgage relief and other help to homeowners who got hurt when the housing bubble burst before the 2007-2009 recession, has been viewed with skepticism by some folks in the nation's hardest-hit housing markets, as NPR's Greg Allen reported.
Of particular concern to many, as Greg found, is that with "750,000 potential claimants," the money in the settlement that's been set aside to compensate "robo-signing victims who have lost their homes," comes to about $2,000 per owner.
On Tell Me More today, host Michel Martin asked Housing and Urban Development Secretary Shaun Donovan why that isn't just "window-dressing."
Donovan said that for many who suffered from the burst of the housing bubble, "the harm was a few thousand dollars." Some "had fees they were charged that they shouldn't have been." For others, "their paperwork was lost and it delayed them from getting help."
But if a homeowner suffered more damage — "$50,000 or $100,000" or the loss of a home — there are other remedies, Donovan said. After documenting the harm, such homeowners can "at the cost of the banks" if those institutions were at fault, "get full compensation." And, Donovan added, nothing about the $25 billion agreement "stops you from going into court."
There's more information about such remedies at the National Mortgage Settlement website.
Much more from Michel's conversation with Donovan was broadcast on Tell Me More. Click here to find an NPR station that airs or streams the show.
Copyright 2021 NPR. To see more, visit https://www.npr.org.

subset: commoncrawl


text:
300 Hickman Road, Suite 201
Charlottesville, VA 22911
Charlottesville area cosmetic dentist J C Wolfe, D.D.S. has extensive experience creating beautiful smiles. They're one of the first things people notice about you.
Our professional team will be happy to discuss your aesthetic dentistry options. The attractive results you'll get from J. C. Wolfe, D.D.S can change your life!
Dental bonding in the Charlottesville area is available from experienced dentist J C Wolfe, D.D.S.. If your teeth have unsightly cracks or discoloration, dental bonding can help.
It's a quick and non-invasive procedure that corrects minor cosmetic flaws and restores your natural smile. You'll feel great being able to show your natural again.
One of the first things people notice is your smile. All it takes is a single appointment or two with Charlottesville area dentist J C Wolfe, D.D.S., and you, too, can have the winning, healthy-looking smile you've always wanted. The beautiful cosmetic results you'll get from J. C. Wolfe, D.D.S can be immediate and dramatic!
Charlottesville area restorative dentistry at J. C. Wolfe, D.D.S can produce natural-looking results. If you have a damaged or missing tooth, we can help.
Our highly skilled team will assess your need for a crown, bridge, implant or other procedure to restore or improve your smile. Our goal is to provide quality dental care for your life-long oral health.
Did you know that trusted Charlottesville area TMJ/TMD dentist J C Wolfe, D.D.S. offers treatment for jaw pain relief? If you're experiencing discomfort when you move your jaw, or you hear clicking and popping when you chew, we want to help.
Our friendly team is happy to answer questions. There's no need to continue to live with pain. Relief is just a phone call away.
Robert A. Gallegos, D.D.S. and Ronald D. Jackson, D.D.S.
204 E. Federal Street
Middleburg, VA, 20118
C/O Dr. Steven Johnson
4322 Ravensworth Rd.
Annandale, VA, 22003
(703) 256-5870
Dr. Robert A. Levine, D.D.S.
3918 Prosperity Avenue
Fairfax, VA, 22031
Bayview Dental Laboratory
1207 Volvo Parkway
Chesapeake, VA, 23320
(757) 583-1787


text:
The Helsinki Commission held a briefing on the path to justice in southeastern Europe on October 7. Presenting his remarks at the briefing was Judge Theodor Meron, President of the International Criminal Tribunal for the former Yugoslavia (ICTY).
Judge Meron began his remarks by underscoring the immensity of the task at hand. The vast scale of the crimes committed during the Yugoslav conflict, he said, "the murders, the rapes and deportations, the acts of torture, destruction and cruelty, would dwarf the capacity of any single court to bring more than a partial, a very partial reckoning."
Nevertheless, he said, the tribunal struggles on, patiently and temperately disclosing the truth, giving the victims "a chance to see their sufferings recorded and at least in some small measure vindicated." Judge Meron asserted that the tribunal demonstrates the viciousness of those who built their power with hate-filled beliefs and sends a compelling message "that only through genuine reconciliation can all the peoples of the former Yugoslavia create thriving societies."
Helsinki Commission Chairman Rep. Christopher H. Smith (R-NJ) and Ranking Member Rep. Benjamin L. Cardin (D-MD) underscored the important role the tribunal plays. In his opening remarks, Chairman Smith explained that the court was a way of helping to break the climate of impunity and "ensuring that those responsible for heinous crimes would be held to account."
Commissioner Cardin, likewise, described strong United States support for the court, saying that the United States Congressional Delegation to the OSCE Parliamentary Assembly has raised the war crimes issue at every annual meeting in the last decade. Cardin has sponsored numerous initiatives over the years aimed at bolstering support for the work of the ICTY. The United States took a leading role in the creation of the ICTY, and funds approximately one quarter of its annual budget.
Given the significance placed on the ICTY and its mission, three issues were highlighted: the compliance by participating States with ICTY demands; the implications of the ICTY's completion strategy; and, the procedural methods of the court.
All three participants insisted on compliance from states in turning over indictees and granting increased access to evidence and archives. Commissioner Cardin recalled that "there are still indictees who have not been turned over to The Hague. Some highly visible indictees, such as Mladic and Karadzic, we've now been talking about for too many years."
Judge Meron contended that while states in the region have increased their cooperation, such cooperation still needs to be made more complete. Sixteen indicted individuals, he explained, are still at large, including Serb army chief Ratko Mladic, Serb leader Radovan Karadzic, as well as Ante Gotovina, one-time Commander of the Split Military District. Meron said that the international community needs to use what he regards as its considerable leverage with the countries of the region to convince them to arrest and deliver to The Hague the most senior people allegedly responsible for war crimes.
Meron noted improvements from Serbia-Montenegro, stating that he is "encouraged by the emerging spirit of cooperation in Belgrade which has produced some significant results in the last year." But, he said, more needs to be done. Serbia, he argued, must arrest Mladic, whose whereabouts, it is believed, are known; improve access to archives; and end the bottleneck in meeting the demands presented by the ICTY prosecutor. Meron said the tribunal is also "expecting maximum cooperation…from Zagreb" and insisted that "there is no bias or preference of the target of our cooperation."
Judge Meron, however, reserved particularly harsh words for Republika Srpska. That entity of Bosnia-Herzegovina, he said, "has not been cooperating at all…. There has been no compliance on their part, and much more international pressure is needed."
With UN Security Council deadlines for completion approaching, Chairman Smith expressed his concern that key indictees would decide to simply wait out the tribunal's mandate. Judge Meron assured the Commission that the tribunal "will not move toward any closure before we have people like Mladic, Karadzic, and Ante Gotovina at The Hague." Smith expressed his full support for such a policy, stating that "to allow people like Mladic and Karadzic to escape justice by running out the clock would be a gross violation of human rights in and of itself."
As part of the ICTY's completion strategy, Judge Meron said the court intended to transfer some low- to mid-level cases from the ICTY to competent courts in the region, in particular the special war crimes chamber within the newly reconstituted State Court of Bosnia-Herzegovina in Sarajevo. He expressed his appreciation to the international community for supporting this body and hoped that the United States and others would follow through on their promises for generous financial contributions.
In addition to improving the legal capacity to try war criminals, Meron praised the Sarajevo court for the training it will provide to lawyers and judges in the area and "the message of democracy and the rule of law that will be triggered by such a court."
Because of the fragility of the social system in Bosnia-Herzegovina, every bench of the Sarajevo court will have two international judges and only one local judge. He expressed his desire that, over time, the social environment will change to allow the composition to be reversed to give more significant representation to local judges.
When asked whether cases could be transferred to war crimes chambers and courts elsewhere in the region other than the Sarajevo court, Judge Meron said he did not believe it feasible at the moment. At the same time, he argued, "War crimes trials have the greatest resonance when they take place very close to the theater of crime, the place where the crimes have been committed, where the victims or their families still live." He said, therefore, that it was his hope to have "more and more trials conducted in the area."
Given the approaching of Security Council deadlines, Judge Meron also discussed some procedural changes the ICTY has adopted in its completion strategy. He described several internal initiatives made by the court attempting to improve efficiency. The tribunal has reformed its procedures for interlocutor appeals to reduce the number of interruptions in the trial and has restricted prosecutorial evidence that judges deem duplicative or unnecessary. Its ability to finish working in a timely fashion, he said, also depends on the choices the prosecutor makes on future indictments.
In response to a question from the audience, Judge Meron commented about the tribunal's sentencing procedures. The tribunal has at times been accused of meting out sentences that are not commensurate with the gravity of the crime committed. Others have accused the tribunal of passing sentences for some defendants that were much greater than sentences for others convicted of similar crimes.
Without sentencing guidelines from the Security Council, Judge Meron said, the tribunal has had to create its own common law. He stated though that he had "no reason to believe that as a general proposition our sentencing has not been within the parameters of what I would consider to be just and reasonable." Nevertheless, Judge Meron said, he has formed a working group of several judges to address the sentencing issue because he believes there is no aspect of the tribunal's activities that cannot be improved further.
The tribunal, according to Judge Meron, represents an enormous experiment in international cooperation. Starting almost from scratch, the ICTY had to create its own rules of procedure and evidence. This effort, the judge claimed, will have an impact even beyond the specific crimes considered. He concluded, "The sort of judgments that we will leave behind from very detailed problems of definitions of international crimes, on the interpretation of the evidence, on the conflicts of evidence, on how to reconcile the notions of common law and civil law, will prove to be, I think, a very important legacy to us all."
This briefing was the latest in a series of United States Helsinki Commission events and other activities this year intended to promote justice in southeastern Europe through improved cooperation with the ICTY.
The United States Helsinki Commission, an independent federal agency, by law monitors and encourages progress in implementing provisions of the Helsinki Accords. The Commission, created in 1976, is composed of nine Senators, nine Representatives and one official each from the Departments of State, Defense and Commerce.


text:
Former Treasury Secretary Robert Rubin says the U.S. economic outlook is the most "uncertain" he has seen in his lifetime.
Given that he was born during the Great Depression (1938), and lived through the Cold War, the 1970s' inflation, a brutal 1980-82 recession and the recent global financial crisis, that may be saying a lot.
Rubin, who was President Clinton's Treasury secretary, is now co-chairman of the Council on Foreign Relations. He spoke Wednesday in Washington, D.C., at a conference called "American Competitiveness: What Works," sponsored by General Electric.
Rubin said the economy is pushing ahead for now, but likely will slow because of "powerful headwinds." His list of worries includes: too much consumer debt; excess factory capacity; slow wage growth; insufficient job growth; reduced government spending; "unsustainable" levels of government debt and a still-horrible housing market.
And of course, Rubin also frets about U.S. congressional ineptitude and the European debt crisis.
He did not use the technical term "YIKES," but it was implied.
Copyright 2021 NPR. To see more, visit https://www.npr.org.


text:
House Martins
House Martins
High precision laser cut design from 2mm steel directly mounted onto a strong steel mast for a clean and seamless look.
The chosen design comes complete with the mounting bracket of choice, steel mast, North/ South and East/ West cardinal points, steel bearing, copper grease sachet and fitting instructions.
All of our products are made to order. After lasing cutting is complete, it is then welded by hand at our workshop in Essex. Then it is balanced and mounted using a bearing for continued reliable movement. All of our metal work is zinc electric plated with an added passivate process prior to powder coating to ensure longevity. This is important to ensure it withstands our British weather and stays looking great for up to 30 years.
Size & Lettering Options
PETITE: Measuring 40cm across the cardinal points N to S, this size is suitable for sheds, greenhouses Pergolas, conservatories or small garages and outbuildings. These are finished in a durable black powder coating. Petite weathervanes have a single ended scroll, as below.
This size is available with three styles of fitting bracket.
MEDIUM: Measuring 55cm across the cardinal points N to S and suitable for use on garages, stables, bungalows, other single storey buildings and two storey small houses. Available with a choice of finish and letter style, we offer over 1200 designs, all individually made to order. These have a choice of 5 different fixings - see below. (The fixing options for these are not the same as for petite weathervanes)
LARGE: Measuring 70cm across the cardinal points N to S and suitable for use on barns & two storey buildings. Available with a choice of finish and letter style, we offer over 1200 designs, all individually made to order. These have a choice of 5 different fixings - see below. (The fixing options for these are not the same as for petite weathervanes)
You also have the option to add gold leaf style painted lettering to the cardinal points. The gold leaf effect is hand painted by a local artist using tough enamel paint, which has been designed to withstand typical British weather.
Mast Height & Mounting Brackets
Petite 'L' Bracket
Simple 50mm projected L bracket, only for petite designs. Very adaptable to many places, ideal for shed roof, summer houses. 8mm steel post that is 30cm tall plus the bracket.
Petite Wood Screw
This fitting is best designed for going into a post, be it centre point of a gazebo or fence post. 8mm steel post that is 30cm tall with 50mm wood screw.
Gable End
Designed to go on the gable end of your building. This fitting also works on chimneys and most vertical walls. This is the most universal fitting, so ideal for gifts. The mast is 12mm diameter steel with M12 Thread.
Medium 18" (45cm) tall with 6" projection, ideal for medium vanes.
Large 24" (60cm) tall with the additional T piece, best for large vanes.
XLarge 28" (70cm) tall with an 8" projection including T piece.
Side Plate
Side plate measuring 3" by 5" with four 8mm precut holes, fixed to a steel mast with a 12mm diameter. If you are at all unsure, the Gable End is a more universal option for wall fixing.
Medium 18" (45cm) tall.
Large at 24" (60cm) tall.
Post Fixing
Design to go on top of a wooden or metal post, these are often used on fence posts, at the centre of gazebos or garden houses. This comprises of a 12mm diameter mast (8mm for petite) with a 2.5" sqaure plate of 5mm thick steel.
Petite 12" tall (30cm)
Medium 18" tall (45cm)
Large 24" tall (60cm).
Ridge Fixing
This fitting is designed to saddle the 1.5" wide ridge beam which is beneath the ridge tiles. Please note that it requires removal and refitting of tiles (unless the property is a new build). A 12mm diameter steel mast.
Medium 18" tall (45cm)
Large 24" tall (60cm)
Clock Tower Fitting
The 24" Clock Tower is 12" tall (30cm) above the roofline plus 12" (30cm) of substantial 12mm thread below the roof line. Designed primarily for clock towers, these have also been suited to some gazebo designs or similar garden buildings.
Designed for M/L/XL for petite we suggest wood screw.


text:
If you're fascinated by the story of anti-virus software pioneer John McAfee and his flight from Belize after authorities there said they want to talk to him about a neighbor's murder, CNBC has about 13 minutes of must-see video for you.
McAfee, who after being released from a detention center in Guatemala (which he had entered illegally) flew to Miami, went on the air with correspondents from the business channel. During the appearance he:
-- Made the case that he's being persecuted by corrupt authorities in Belize.
-- Scoffed at old stories claiming he had been manufacturing methamphetemines or taking "bath salts." He's rich enough to afford much better drugs if he wants them, McAfee said.
-- Pledged he would be glad to answer the authorities' questions if they meet him in a "neutral country."
And, McAfee restated his claim of innocence regarding the neighbor's death:
"I've spoken 50 words to that man in five years," he said. "The last time I saw the man was months ago. He did not like my dogs. ... I didn't have a history with him. He complained about my dogs. But every neighbor complained about my dogs. I complained about my dogs. They kept me awake, too. I was trying to fix the problem. If I had to take action against everybody who complained about my dogs, there would be no people left in San Pedro."
We made a clip of his comments about the neighbor.
Copyright 2020 NPR. To see more, visit https://www.npr.org.


text:
Boys Full Sleeves Cotton Blue Fashion Shirt
Rs 1000 OFF on orders above Rs 10,000
Rs 500 OFF on orders above Rs 7,500
Get 10% Discount on your First purchase
*Offer applicable at checkout via code *conditions apply
*Offer applicable at checkout via code *conditions apply
Size:8 Years
Note: Product colour may vary slightly due to photography lighting or device settings.
Eager to unwrap your little one's treasure?
Neck Type Collar |
Sleeves Full Sleeves |
Colour Blue |
Pattern Printed |
Occasion Casual |
Fabric Composition Cotton |
Wash Care Machine Wash |
Style Code AR5243 |
At Angel & Rocket, we understand that kids will be in all shapes and sizes, and we want to ensure that your little ones feel comfortable and confident in their clothing choices. Online images may not always accurately represent your child's unique body type, which is why we recommend taking a moment to check our Size Guide before making your selection.


text:
If you are having trouble finding a particular image, you can use this search facility to find various keywords that might lead you in the right direction.
Unlike the main keyword search which finds only complete words, this search facility will accept partial words and return a list of all matches. For instance, searching for "chess" will return "chess", "Chessington" and "duchess".
Once you have made your search, just click on a keyword to display the images that match that keyword.


text:
No products
Prices are tax included
Check out
Display all pictures
Condition New
Warning: Last items in stock!
Availability date:
Figure Black
Recipient :
Name of your friend * :
E-mail address of your friend * :
* Required fields
Send or Cancel
349,00 zł
This product is not sold individually. You must select at least 1 quantity for this product.
Add to cart
Add to wishlist
No customer comments for the moment.


text:
CLAAS PROFI CAM 4 camera systems
Sharp display image, with ultra-robust quality.
CLAAS camera solutions provide much-needed extra eyes for the operator, for any machine in any working situation. The modular structure of the PROFI CAM 4 creates complete flexibility, for installation in a single machine or across the entire fleet. Top-quality workmanship makes this camera ideal for all on-farm applications. No problems with moisture or dust.
The benefits for you
- Top image quality in colour and in high resolution
- Ultra-robust, equal to any operating situation
- Dust- and splash-proof
- Simultaneous display of up to 4 camera images
- Picture-in-picture function
- Modular design for multiple combination options
- Wide range of brackets for flexible positioning


text:
Flint in a sable color purebred Burmese kitten
Gender: male
Date of Birth: March 27th, 2021
Place of birth: Ukraine
Availability at our Location in Florida: Available after reservation on the website
Pick up at Location in Florida: After July 30th, 2021
Delivery: Delivery to other states is available
Food: Royal Canin for kittens (dry food and soft food in cans)
Litter filler: wood pallets or paper pallets.
*Kitten will be neutered.
Purchasing Options:
1. When Pick up : Pay a $500 holding non refundable fee and then the remaining balance by the time of picking up at the cats store. (*Sales tax to apply for FL residents)
2. When Delivery: Pay a $500 holding non refundable fee and then the remaining payment needs to be made 1-2 days before scheduled delivery. Invoice will be provided. (*Sales tax to apply for FL residents)
3. Also you can apply for our financing and lease programs. (see financing page)
If you have any further doubts, please feel free to contact us. We are here to answer all your kitty questions!
127 Flint Burmese male kitten
According to the sales contract you can return the cat only in case of genetic disease detected.
*Allergy to the cat is not a cause for return.*If a kitten stops using a litter box it is not a cause for return. (But we allways can help to get him accustomed to litter box)
We offer 3 types of delivery:
1. Delivery by plane. Delivery is available to your nearest airport with DeltaCargo, United or American Airlines facility. We book flight and give you all needed information to pickup kitten. You have to show your ID and copy of air-way bill at the airlines facility.
*Option is not available if the temperature in each point is more than 85 degrees and less than 25 degrees.
2. Delivery by car. We use delivery services to bring kittens directly to your home. This type of delivery works for near by States only. Price depends of delivery location.
3. Personal delivery. We use all kinds of transportation to make it ''door to door''. Works for all States. Ask for price.
You are always more than welcome to pick your kitten up at our location.


text:
Thinking About A More Secure Retirement?
Take our One-Minute IRA Test
Select the answer that best describes your situation in each question below.
When you're finished, click Add Up My Points. Continue… I'll take the test later.
Your age
Your Annual Gross Income
Amount You Can Afford To Save Each Week
Amount You Currently Have In Savings
The Difference Between Your Current Age And Planned Age At Retirement
The Approximate Value Of Any Retirement Plan You Currently Have
Your Projected Weekly Need At Retirement
To Find Out What Your Score Means, CLICK HERE
This chart is for your information only. Be sure to consult a customer service representative before opening an Individual Retirement Account. ©2014 The Forms Group, All Rights Reserved


text:
Unexpected Hardships
Without proper planning and protection, unexpected hardships can have a devastating financial impact on you and your family. Unforeseen events, such as a serious illness, an accident that prevents you or a family member from working, the loss of a loved one, or the immediate financial needs of a child with special needs, may occur at any time. You don't have to manage these situations alone. Our Financial Services Representatives have created a variety of solutions to account for your unique situation. Take action now to help ease your financial burdens in the future.
Here are some options to consider:
- Annuities
- Disability Income Insurance
- Life Insurance
- Long Term Care
- Mutual Funds
- Trust Services


text:
Gramps-Connect: Developer Introduction
This has been abandoned Please see https://github.com/gramps-project/web-api for future attempts |
Gramps developers are actively working on a version of Gramps that runs on a web server, and displays one's family tree information dynamically (as opposed to Gramps Narrated Web Report). This web application project is called Gramps-Connect. We have a working demonstration of this code available at http://gramps-connect.org. It is written in Django, a Python web framework.
This page gives an introduction to Django for those that are already familiar with Gramps data and Python. For more details on the specific Gramps Django interface, please see GEPS 013: Gramps Webapp.
Basic Django Structure
The motivation and getting familiar with this project is provided in GEPS 013: Gramps Webapp. This dives into Django, from a getting started perspective.
When you install and set up Django, all of the basic files are created for you with default settings. Django's online documentation and the google group are excellent references. To follow is an outline of Django's file structure, some important basics, and specific examples of ways to work with the Gramps dataset to create webpages.
In working with Gramps' Django files, there are four files that you may find yourself editing:
- gramps/webapp/urls.py
- gramps/webapp/grampsdb/views.py
- gramps/webapp/grampsdb/forms.py
- data/templates/
The template files have .html extensions and are found in the templates directory.
You will also find yourself referencing the gramps/webapp/grampsdb/models.py file, which defines the database structure. This file models the Gramps data as it exists in the desktop Gramps application and will not require alteration unless the database structure is changed. To access data from the database, you will often reference the models.py file and refer to the tables and fields it defines.
We will now go through each of these files, exploring the use and format of each.
urls.py is the file in which you define of all of the website's urls and the corresponding code that will run in response to each particular url request. The file simply defines the variable urlpatterns:
urlpatterns = patterns("", (r'^example/$', example_page),)
The above example maps the url www.mysite.com/example/ (with or without the trailing '/' -- Django will handle both the same) to the function example_page. Note that urlpatterns is a tuple, so you can add more urls to the list as such:
urlpatterns += patterns("", (r'^$', main_page), (r'^login/$', login_page), )
Urls are written as regular expressions so that you may define groups of urls that you want to map to the same function. In the above example r'^$' defines an empty string, indicating that the domain's base url is mapped to the function main_page. Django performs pattern matching, starting with the first defined url and working down the list until there is a match, at which point the corresponding code is run.
You may also capture some of the url to pass along to your code for processing. For example, with one line we defined the url for viewing each individual person record in the database as being www.mysite.com/person/xxxxx/ where xxxxx is the record's primary key:
urlpatterns += patterns("", (r'^person/(\d+)/$',person_detail), )
The \d+ in the regular expression matches one or more digits and the parentheses indicate to Django to capture that portion of the url and pass it along as a string value to the function to which you've mapped the url (e.g., person_detail).
The functions that you map to your urls will exist in the views.py file. Each view function must take an http request object as its first parameter and must return an http response object. The following view function redirects the user to another page.
def example_page(request): # do some processing here return HttpResponseRedirect('/gohere/')
Upon redirecting to another url, Django will process it as it does any request, using urls.py to map the url to a view function. Redirecting is useful, but more often you will want to define some data and pass it along to a web page for display. In this case Django has a nice shortcut through some of the repetitive and complex http context-rendering so that you can call the function render_to_response to pass your data to a template for rendering.
from django.shortcuts import render_to_response def welcome_page(request): # perform any processing you need here mydata = "the data I want to display" return render_to_response('welcome.html', {'MyData':mydata})
The above example passes data to the template welcome.html, which defines the page that will be displayed. The template name is the first parameter of render_to_response, and the second parameter is a dictionary mapping template variables to values. You can pass any number of variables, and you will access them in the template by the variable name in quotes.
To access data from the database, you will need to include models.py. The tables it defines are used like python classes. The following example is a person_detail view function that uses the captured portion of the url (see the last example above under urls.py) to find the relevant person record. The captured url data is passed to the function as the second parameter, and it doesn't matter what name you use here.
from webapp.grampsdb.models import * def person_detail(request, ref): try: # check for valid input i = int(ref) except ValueError: raise Http404('Invalid record number.') p = Person.objects.get(id=i) try: n = Name.objects.filter(person=i, private=0) except: n = 'unnamed person' # work with data and pass information to template return render_to_response('person_detail.html', {'Names':n, 'Handle': p.handle})
The captured data from a url is always passed as a string, so the function above (which expects an integer primary key) checks to be sure that it can be converted to an integer and raises an http error if it cannot. The table of people is named Person in models.py and names are in the table Name. To access their data, refer to them directly as objects. Every table has an id field, which is an automatically-created primary key. The example above assigns to the variable p a reference to the person record where id equals the captured information from the url (the requested record's primary key). Field names are accessed like properties: p.handle is the value of the field handle on that person record, and in the example it is passed to the template as the variable Handle. The example above also grabs name data by filtering the Name table for records where the person field equals the person id we're examining and where private is false. Filtering returns a dataset. Unicode methods may be written for each table in models.py to define return values. The models.py for Gramps Connect includes such definitions, so that when you refer to the name record, useful fields like first and last name are displayed.
A template defines the html, but it is more than just an html file. Django processes the file before passing it along as a response, and so there are a number of features that allow you to do much more. Template tags sit between sets of {% %} and are processed by Django as the html is rendered, giving you some control in defining at runtime what will be displayed. Variables passed to a template are identified within {{ }}, and there are a number of filters that you can apply to the data using pipes. There is a full list of filters and tags on the Django website.
Template inheritance is a huge time saver. With the extends tag at the top of the file, a template inherits everything from its parent. The parent template defines blocks that may be overridden by the child. Each block should be given a relevant and unique name. The advantage to using inheritance is that shared information exists in one location so that a site-wide change can be handled by changing one file. Since you can define default values for a block in the parent, it pays to use them gratuitously. Child templates can leave a block undefined so that the default values as defined in the parent will apply.
The following is a simple version of the file base.html, which is used as the base for all of the site's pages. Note that indentations in the template files have no effect -- they were added to make reading and editing easier.
  {% comment %} Here you might include all of your header information, style sheet references, javascript, etc. This is a multiline comment. {% endcomment %} <title>{% block windowtitle %}GRAMPS Connect{% endblock %}</title>
{% block pagetitle %}{% endblock %}
 {% block content %}{% endblock %} {# This is a single line comment #}
base.html above has three blocks, one of which has default information that will be used if a child does not supply anything to replace it. Here is a simple child template for a person details screen receiving the data defined in the last view function example:
{% extends "base.html" %} {% block windowtitle %}Person Details{% endblock %} {% block pagetitle %}Person # {{Handle}}{% endblock %} {% block content %} Names for person #{{Handle}}:
 {% for nm in Names %}
{{nm}}
 {% endfor %}
 {% endblock %}
The resulting html generated by Django adds the block information from the child to the html in base.html and replaces the variables with the data that the view function passed to the template. Django loops through the Names dataset, as per the for loop tag in the template, and the result is html displaying an unordered list of the names in the dataset.
Sometimes you want website users to be able to enter and edit data. This requires a form, and Django has a system for generating and manipulating form data. Forms are defined in the forms module and view functions may use these definitions to create forms to pass along to a template. A form outlines the fields for the screen:
from Django import forms class ContactForm(forms.Form): name = forms.CharField(max_length=100, required=False) email=forms.CharField() when=forms.DateTimeField() message=forms.TextField()
Most of the forms you will need to define will be based on data from the database. To save time, Django can define a form for you based on a model definition. Be sure to include models.py to access those definitions.
from webapp.grampsdb.models import * class PersonForm(forms.ModelForm): class Meta: model = Person
This form will include all fields in the Person table, as defined in models.py. To include or exclude certain fields, add exclude=(fieldname,field2) or include=(fieldname,field2) to the class Meta. Be aware of the table fields' requirements before deciding which fields to include or exclude. The form will throw an error upon validating the data if required fields are left blank.
You can override or add to the default initialization by adding to the form class:
class PersonForm(forms.ModelForm): def __init__(self, *args, **kwargs): # do some processing here # the next line calls the default init for the class super(PersonForm, self).__init__(*args, **kwargs)
You may also want to override the clean functions, which run when the data is checked for validity and before the form data is saved to the database. There is a clean function for the form, and there are clean functions for each field. This can be useful for times when the data requires some special processing before it is saved to the database. All clean functions must return cleaned_data, even if nothing was changed.
class PersonForm(forms.ModelForm): def clean(self): # do some processing # the next line calls the default clean function super(PersonForm, self).clean() return self.cleaned_data def clean_handle(self): # do some processing return self.cleaned_data['handle']
Sometimes you need the ability to add forms to the screen for more than one record in a dataset. Django has a built-in abstraction layer called formsets to create forms for datasets.
from django.forms.models import BaseModelFormSet class NameForm(forms.ModelForm): class Meta: model = Name class NameFormset(BaseModelFormSet): def __init__(self, *args, **kwargs): self.form = NameForm super(NameFormset, self).__init__(*args, **kwargs)
An inline formset is a formset designed to help work with related records. It isn't created with a class like a formset, but it does automatically handle the foreign key fields between related tables. At minimum, you need to supply the related table and the table with the records you want to edit. The example below also demonstrates how to limit the fields and how to specify that it use a previously-defined form (where you may have defined special clean functions, etc.).
from django.forms.models import inlineformset_factory NameInlineFormSet = inlineformset_factory(Person, Name, fields=('prefix','first_name', 'surname'), form=NameForm)
Using Forms in your View Function
To use a form that you have defined, import the forms.py file in views.py and use it in your view function like any Python class. To create a form that displays a specific record from the database, pass the argument instance, which accepts a reference to a record.
from web.grampsdb.forms import * def person_detail(request, ref): # displays the person record on the screen in an html form for editing try: # check for valid input i = int(ref) except ValueError: raise Http404('Invalid record number.') p = Person.objects.get(id=i) psnform = PersonForm(instance=p) return render_to_response('person_detail.html', {'PForm':psnform})
To create a blank form for data entry of a new record, do not pass the form an instance:
def add_new_person(request): # displays a blank person record on the screen in an html form for adding psnform = PersonForm() return render_to_response('person_detail.html', {'PForm':psnform})
The same view function can accept the POST data that is returned when a website user edits the form and clicks the submit button. If there is POST data, it can be passed to a form object -- again with an instance argument referring to the person record being edited. Calling is_valid() on the form will run the clean functions and return true if the data can be saved. Calling save() or save(commit=false) will also cause the clean functions to run if they haven't already. The clean functions, when they come across errors, fill error properties for each field and for each form that has an error. This information is available to the template for display, so the view function does not need to do anything further about failed validation than to pass the form along to the template. Note: since our person details screen now needs to POST to the same url to save changes to the current record, the view function now passes the requested url to the template for use in the form's submission.
def person_detail(request, ref): # displays the person record on the screen in an html form for editing try: # check for valid input i = int(ref) except ValueError: raise Http404('Invalid record number.') p = Person.objects.get(id=i) if request.method == 'POST': # form submitted with changes # create a form with the POST data psnform = PersonForm(request.POST, instance=p) if psnform.is_valid(): # test validation rules psnform.save() # redirect after successful POST return HttpResponseRedirect('/success/') else: # request to view record psnform = PersonForm(instance=p) return render_to_response('person_detail.html',{'PForm':psnform, 'URL':request.path})
The add_new view function is handled in the same way, except that there is no instance to pass.
def add_new_person(request): # displays a blank person record on the screen in an html form for adding if request.method == 'POST': # form submitted with data # create a form with the POST data psnform = PersonForm(request.POST) if psnform.is_valid(): # test validation rules psnform.save() # redirect after successful POST return HttpResponseRedirect('/success/') else: # request for a blank form psnform = PersonForm() return render_to_response('person_detail.html', {'PForm':psnform, 'URL':request.path})
There will be times when you'll want to use more than one form on the web page. To help keep forms and their POST data straight, assign each a unique prefix when you create them. When you pass an instance to an inline form, you pass the related record. In the example below, the requested person record is displayed along with all names related to that person. Also note that instead of redirecting to a success page after a successful data save, the user is directed back to the same data view/entry page. A screen message passed to the template can communicate that the record changes were successfully saved and can help with error messaging.
def person_detail(request, ref): try: # check for valid input i = int(ref) except ValueError: raise Http404('Invalid record number.') p = Person.objects.get(id=i) if request.method == 'POST': # form submitted with changes # create forms with the POST data psnform = PersonForm(request.POST, instance=p, prefix='person') nmformset = NameInlineFormSet(request.POST, instance=p, prefix='names') if psnform.is_valid() and nmformset.is_valid(): # test validation rules psnform.save() nmformset.save() # successful POST return render_to_response('person_detail.html', {'PForm':psnform, 'NFormset':nmformset, 'ScreenMsg':'Data was saved successfully'}) scrn_msg = 'Please correct the errors listed below' else: # request to view record psnform = PersonForm(instance=p, prefix='person') nmformset = NameInlineFormSet(instance=p, prefix='names') scrn_msg='' return render_to_response('person_detail.html', {'PForm':psnform, 'NFormset':nmformset, 'ScreenMsg': scrn_msg, 'URL':request.path})
Displaying Forms in Templates
When a form is passed to a template, all of its fields and properties are accessible. Django produces the html for the form input fields so that all you need to provide are the form tags and submit button. The simplest way to handle a form in a template is to let Django do most of the work:
<form action={{URL}} method="post"> {{PForm}} <input type="submit" value="Save" /> </form>
You can specify .as_p (i.e. { { PForm.as_p } } in the example above) to format in paragraphs, .as_ul for an unordered list, and .as_table for a table. The following example loops through the form's fields to display each field (formatted as an input), the field's label, the field's help text where applicable, and the field's errors where not empty. A div refers to a custom css style designed for displaying errors.
<form action={{URL}} method="post">
 {% for field in PForm %}
 {{field.label_tag}}:	 {{field}}	 {{field.help_text}}	 <div id="errmsg" {{field.errors}}

 {% endfor %}
 <input type="submit" value="Save" /> </form>
Alternatively, you can choose to break out the components that you want to display and place them on the screen wherever you like (within the html form tags). You can refer to each field directly by name, and to each field's label, errors, and help text. Recall that the Django form was based on the database table as designed in models.py, so the field names will be the same as those in the table. Referring directly to form.fieldname.data provides the data in raw form (not formatted as an input box), which can be useful for fields that you want to display but do not want users to edit -- just remember to add a hidden input for the field so that it is included in the POST. Any field designed into the Django form that is not included in the POST data is assumed to be blank when the record is saved. Note the formatting for the hidden field. The label includes the prefix assigned to the form in the view function. This mimics the format that Django uses when it creates the input field html, assuring that Django will be able to map the POST data correctly to the database field.
<form action={{URL}} method="post">

{{PForm.handle}} {{PForm.handle.errors}}

{{PForm.gender_type}} {{PForm. gender_type.errors}}

Last changed on {{PForm.last_changed.data}}

 <input type="hidden" name="person-last_changed" id="id_person-last_changed" /> <input type="submit" value="Save" /> </form>
Formsets are just a bit more complicated, since the formset consists of multiple forms. As with forms, formsets can handle themselves:
<form action={{URL}} method="post"> {{NFormset}} <input type="submit" value="Save" /> </form>
Formsets include a management form that keeps track of the number of forms in the set and other management information, so if you decide to break a formset down for display, you must include the management form, otherwise the POST will cause data validation errors. Within the formset, you can refer to each form just like any other form. As a whole:
<form action={{URL}} method="post"> {{ NFormset.management_form }} {% for form in Nformset.forms %} {{form}} {% endfor %} <input type="submit" value="Save" /> </form>
Or you can break down each form as you like, either looping through the fields or referring to each one directly.
<form action={{URL}} method="post" > {{ NFormset.management_form }} {% for form in Nformset.forms %} {% for field in form %} {{field}}
 {{field.errors}}
 {% endfor %} {% endfor %} <input type="submit" value="Save" /> </form>
The example below uses a table and loops to create a tabular display of fields in the formset. Note the extra loop through the hidden fields in each form of the formset, which isn't necessary on a simple dataset but is a good way to avoid missing POST data.
<form action={{URL}} method="post"> {{ NFormset.management_form }}
 {% for form in NFormset.forms %} {% if forloop.first %}
 {# header row - field names #} {% for field in form.visible_fields %} {{field.label_tag}}	 {% endfor %}
 {% endif %}
 {# hidden fields for the form #} {% for hidden in form.hidden_fields %}{{hidden }}{% endfor %}

 {# visible fields for the form #} {% for field in form.visible_fields %} {{field}}	 {% endfor %}
 {% endfor %}
 <input type="submit" value="Save" /> </form>
Having used prefixes in our view function when creating multiple Django forms to pass to the template, we can place them all inside one set of html form tags for submission together in one POST transaction.
<form action={{URL}} method="post"> {{PForm}} {{NFormset}} <input type="submit" value="Save" /> </form>
A Note on Error-Checking Forms
When it came to working with the name formset, we wanted to ensure that there was at least one name for the person and that one and only one name was marked as preferred. Since the view function uses an an inline formset, which is not defined as a class, error-checking became problematic. After much trial and error, the solution was to write an error-checking function outside the form classes (but it made sense to store it in the forms.py file). Since cleaned_data is only populated after running the clean functions and only if the data is clean, the data is accessed in a slightly different manner. A string is returned with an error message (or an empty string if all passed).
def cleanPreferred(fmst): # tests for >= 1 name record and 1 Preferred ctPref = 0 ctName = 0 for i in range (0,fmst.total_form_count()): form = fmst.forms[i] try: # when preferred is false, its value is not in the form data if form.data[fmst.prefix + '-' + str(i) + '-preferred'] == 'on': val = 1 else: val = 0 except: val = 0 ctPref += val ctName += len(form.data[fmst.prefix + '-' + str(i) + '-surname']) ctName += len(form.data[fmst.prefix + '-' + str(i) + '-first_name']) if ctName < 1: return "Error: Each person must have at least one name." elif ctPref != 1: return "Error: Exactly one name may be the preferred name." else: return ""
This error-checking function is called in the view function just prior to checking is_valid on the name formset, and the result is included with validation testing. The return value is also passed to the template for display (a blank is passed when there is no POST).
[snip] NamesetError = cleanPreferred(nmformset) # check for clean nameset if psnform.is_valid() and nmformset.is_valid() and NamesetError == "": # test validation rules # save forms, etc. [snip]
A Little Javascript
One of the javascript functions added to the display screen handles changing the display icon for the private fields so that the lock and unlock image files from the Gramps application can be used in place of the default checkbox used by Django for Boolean fields. First, though, the child template needs to handle loading the appropriate image depending on the field's current value.

The onclick actions call the javascript function clickPrivate, which is written into the base.html file. So that this function can be used for any number of private fields on the screen, this function is written so that it will take the id of the page element calling it.
{# clickPrivate enables the use of the lock & unlock #} {# image files in place of a checkbox #} function clickPrivate(field,imgTrue,imgFalse){ var p = document.getElementById(field); var ip = document.getElementById(imgTrue); var inp = document.getElementById(imgFalse); if (ip.style.display == "block") { inp.style.display = "block"; ip.style.display ="none"; p.checked = ""; } else { ip.style.display = "block"; inp.style.display ="none"; p.checked = "checked"; } }
Currently, these are developer notes.
One of the most important aspects of an on-line version of Gramps is the protection of sensitive data. There are two categories of sensitive data:
- data marked private
- people currently alive
Gramps core has developed a layered proxy wrapper system for protection of this sensitive data for reports. Gramps-Connect can use this, but only in limited fashion as we wish to talk directly to the databases in certain places:
- running a search query
- editing data using Django Forms
Gramps-Connect uses name-replacement to protect living people, and skips over private data. This strategy is generally how many genealogy sites work, but is also technically the easiest/fastest to use. Living people are determined by using the function Utils.probably_alive. This function is recursive and generally expensive in the number of queries which must be executed to determine if a person does not have a death event. Thus, it is advantageous to not run that query until you know you want to show some details of that person. On the other hand, private data can be determined easily as they have a property that directly reflects this value. Running a query to skip over private records can be initiated easily:
object_list = Family.objects \ .filter((Q(gramps_id__icontains=search) | Q(family_rel_type__name__icontains=search) | Q(father__name__surname__istartswith=search) | Q(mother__name__surname__istartswith=search)) & Q(private=False) & Q(father__private=False) & Q(mother__private=False) ) \ .order_by("gramps_id")
It would make much sense for probably_alive to be cached and stored on the person record, once it is determined. If that occurred, then living people could be excluded in top-level queries as are private data.


text:
Nokia and Carl Zeiss announced on Wednesday that the two companies will extend their exclusive partnership to design high-end smartphone cameras. The partnership, which first began in 2005, will continue for an undisclosed period of time. The extension comes just as Nokia announced that its high-end PureView 808, featuring Carl Zeiss optics, will begin rolling out this month.
Zeiss has a long history of making high-end lenses for photography, as well as microscopes, telescopes, and other scientific applications. The first fruit of its partnership with Nokia was the N90 smartphone. Most recently, Zeiss aided in the optical design of the N8, N9, and PureView 808 flagship smartphones.
The PureView 808 couples a high-resolution lens with a large, 1/1.2" 41 megapixel sensor. The resolution exceeds that of even top-end digital SLRs available today, but largely relies on the high pixel count to produce 5 megapixel images with increased sharpness and color accuracy with reduced noise. However, Zeiss optics are capable of producing sharp, full-resolution images in bright light.
"Carl Zeiss was a crucial partner in the creation of the first PureView experience," Jo Harlow, executive vice president of Nokia Smart Devices, said in a statement. "The benefits of our ongoing collaboration will be more PureView innovation and further advancements in smartphone imaging in the coming months and years."
While the PureView 808 runs Nokia's now deprecated Symbian mobile operating system, Nokia has said that it will bring the PureView technology to future Windows Phone models.


text:
Vice President Joe Biden warned Russia today that it must join in efforts to reduce tensions in Ukraine. Biden was in Ukraine's capital, Kiev, and it looks like last week's international agreement to disarm militant groups in that country is failing. Ukrainian president says the security service will resume an anti-terrorist operation following the discovery of two bodies in eastern Ukraine. The operation had been suspended after the agreement in Geneva.
NPR's Eleanor Beardsley joins us from Donetsk.
And, Eleanor, what is the impact of Biden's visit to Ukraine?
ELEANOR BEARDSLEY, BYLINE: Well, people in Kiev, the capital, the Western-looking capital, are very happy. They value their friendship with America. People are counting on the West's help as Russia bears down on them. But in the east, it's a different story, Audie. They don't understand why the U.S. is involved in Ukrainian internal politics. Many people already believe that the U.S. was behind the Maidan uprising that overthrew the pro-Russia president in February. And a man said to me today we're just a pawn in the geopolitical battle between Russia and the West. So they don't really care about the visit here in the east.
But the big news today here, Audie, is that two tortured bodies were found in this separatist-occupied town of Slavyansk and one of them was a politician from the president's party. So the president, the government has said they are re-launching an antiterrorist operation that is trying to route out these occupiers of buildings. They had suspended for the Easter holiday but now they've re-launched that again. People said it wasn't very successful but it's certainly going to raise tensions here.
CORNISH: Now, only last week, it seemed that Secretary of State John Kerry and Russia's Foreign Minister Sergei Lavrov had reached an agreement that promised a peaceful end to the Ukrainian crisis. Is that now being implemented?
BEARDSLEY: Audie, it's not being implemented. And when you're on the ground here you realize that it's entirely unrealistic and it could have never happened. I think it's almost like they set themselves up for failure. First of all, look at Kiev. Maidan Square is now its own firmly entrenched camp. It's been there are, what, five months? And the people there don't entirely trust the government. They say they're staying until presidential elections are held.
In the east, you have buildings occupied. The people here are not about to step back and they say they're staying until a referendum is held on their future. They say they don't necessarily want to be a part of Russia, but they do not want to be under the thumb of this government a Kiev, which they call a bandit government full of fascists. They think it's completely illegal.
So I think both camps will stay in the east and the west. The stakes and tensions will rise and it will keep Ukraine in a state of turmoil. And analysts say that's exactly what Russia wants because that's going to ruin any chance of holding a successful presidential election in May.
CORNISH: Meanwhile, what's the atmosphere like in the towns and villages that you've been visiting in eastern Ukraine?
BEARDSLEY: You know, it's kind of spooky. You never really know who's in charge. But some of the places are really well-organized, almost militaristic. And surprisingly, those are the places you feel safe because there's a degree of professionalism. But today, we are in a small town with some just young hoodlums patrolling the government building. They were blasting Russian rap music, drinking. And they were very menacing and it was very uneasy feeling. So it's you never know what you're going to run into. And there's always a feeling of who is in control here. You don't know.
CORNISH: That's NPR's Eleanor Beardsley in Ukraine. Eleanor, thank you.
BEARDSLEY: Thank you, Audie. Transcript provided by NPR, Copyright NPR.


text:
CHRIS TALBOTT Sunday, 10 February 2013 11:52 PM EST
Mumford & Sons wrapped up a completely unpredictable Grammy Awards with perhaps the most surprising win of the night, taking home album of the year for "Babel."
It was an event that even shocked the London folk-rockers.
"We figured we weren't going to win anything because The Black Keys have been sweeping up all day, rightfully so," Marcus Mumford said.
Dan Auerbach of The Black Keys ended up the night's top winner with four trophies, including producer of the year and three rock category victories with bandmate Patrick Carney. But it was hardly a clean sweep as The Recording Academy's thousands of voters spread the love for the year's top singles.
Fun. took home major awards best new artist, in something of an upset over Frank Ocean, and song of the year for the transcendent anthem "We Are Young," featuring Janelle Monae.
"I didn't think we were going to win this one," lead singer Nate Ruess said after the best new artist win. "Frank Ocean. The Lumineers. Everybody, amazing."
Like Mumford & Sons, Gotye busted up the predictions, taking record of the year for 2012's top-selling single, the haunting "Somebody That I Used To Know," featuring Kimbra, and finished with three awards.
Prince, in hood and sunglasses and carrying a sparkly silver cane, presented him with the record of the year trophy and the Australian paid tribute to The Purple One's influence.
"A little bit lost for words, to receive an award from the man standing behind us with the cane," Gotye said. "Many years listening to this man's music growing up and a big reason I was inspired to make music. Thank you."
Jay-Z and Kanye West had three wins — sharing one award with Ocean — along with Skrillex, and a slew of nominees had two wins apiece, including former best new artist winner Esperanza Spalding.
Ocean was shut out in the major categories, but took home two trophies, including best urban contemporary album. Only Chris Brown, with whom Ocean scuffled last month, remained seated as the 25-year-old R&B winner walked to the stage during a standing ovation. Ocean beat Brown, who attended with girlfriend Rihanna, in the category.
Ocean won also won best rap/sung collaboration for "No Church in the Wild" with fellow top nominees Jay-Z and West, and The-Dream. The win came after victories for Jay-Z and West for best rap song and best rap performance for "... in Paris," another "Watch the Throne" track. Ocean also performed his song "Forrest Gump," the love song written about a man that first started the buzz that led to his announcement that his first love was a man.
"We Are Young" helped fun. earn a starring role at these Grammys with nominations in all four major categories after the release of their first album, matched only by Christopher Cross in 1981, and six overall. The band turned in a powerful early performance of "Carry On" as a downpour on stage began mid-song and guitarist Jack Antonoff got a kiss from girlfriend "Girls" creator Lena Dunham after winning.
The Black Keys took best rock performance for "Lonely Boy" during the main telecast and earlier in the day won best rock song for "Lonely Boy" and best rock album for "El Camino." He also got an assist — but no trophy — on Dr. John's best blues album "Locked Down," which he produced.
Other winners included Rihanna, Beyonce, Mumford & Sons and Taylor Swift, who opened the show as the Mad Hatter. Swift dressed in white top hat, tails, shorts and tall boots during the surreal version of her hummable hit "We Are Never Ever Getting Back Together" that included a troop of mime clowns and a guy on a tricycle with a flame-thrower attached.
The singer pretended to talk to the offending boyfriend on the phone: "I'm busy opening the Grammys and we're never getting back together."
Justin Timberlake debuted new tracks "Suit & Tie" with Jay-Z and "Pusher Love" in a performance that was broadcast in retro black and white. Rihanna and the extended Marley family paid tribute to Bob Marley. Sting and Bruno Mars helped each other out on their hits "Locked Out of Heaven" and "Walking on the Moon." Elton John and Ed Sheeran teamed on "The A Team" and Miguel and Wiz Khalifa joined forces on "Adorn." Alicia Keys played drums during Maroon 5's "Daylight," before Adam Levine's band backed her on "Girl on Fire."
Jack White brought both his male and female bands on stage, tearing through "Love Interruption" and "Freedom at 21" before a standing ovation from the crowd. And Elton John, Mavis Staples, Brown, Mumford & Sons and Brittany Howard of Alabama Shakes paid tribute to the late Levon Helm with a spirited rendition of "The Weight."
Adele won the first award of the night on the main telecast, taking home best pop solo performance for "Set Fire to the Rain (Live)," in one of the night's least-surprising moments — though the singer was somewhat taken aback.
"I just wanted to be part of the night, because I loved it last year, obviously," she said of winning a record-tying six awards in 2012.
Carrie Underwood won best country solo performance for "Blown Away," Zac Brown Band won best country album for "Uncaged" and Kelly Clarkson turned in the night's most exuberant acceptance speech after winning best pop vocal album for "Stronger." After hugging much of the front row and momentarily getting stuck to Miranda Lambert's dress, Clarkson charged the stage with a giant smile.
"Miguel, I don't know who the hell you are, but we need to sing together," she said. "I mean, good God. That was the sexiest dancing I've ever seen."
Skrillex won best dance recording for "Bangarang," featuring Sirah, best dance/electronica album for "Bangarang" and best remixed recording a year after winning those same awards in his first appearance at the Grammys.
"You know what, I thought I'd get used to it, but I tripped over every word when I was up there," Skrillex said of his acceptance speeches. "I felt like I just wanted a pool of ice water and just couldn't even breathe or think. It was crazy. I think it was even crazier than last year."
Celebrities rolled down the red carpet in the early afternoon under heavy police guard during a continued manhunt for an alleged cop killer. Many stars showed a fair amount of skin — check out the Twitter pic of Ellen DeGeneres ogling Katy Perry's revealing dress — despite CBS's mandate that stars dress appropriately with butts, breasts and other sensitive areas covered adequately.
Nevertheless, Jennifer Lopez showed up on stage in a dress slit all the way to her hip.
"As you can see, I read the memo," Lopez joked.
© Copyright 2024 The Associated Press. All rights reserved. This material may not be published, broadcast, rewritten or redistributed.
Receive breaking news and original analysis - sent right to your inbox.
Interest-Based Advertising | Do not sell or share my personal information
Newsmax, Moneynews, Newsmax Health, and Independent. American. are registered trademarks of Newsmax Media, Inc. Newsmax TV, and Newsmax World are trademarks of Newsmax Media, Inc.


text:
Free Stuff
All GL giveaways are free to enter and free to win. All ya have to do is sign up on girlslife.com, input your home address so we know where to send the goods and check the giveaway box each day for fab new prizes. 'Cause of sweepstakes rules, only U.S. residents can win (sorry, girlies, but that's the law!).
Wanna know if ya won?
Check our list of winners posted
every Friday.
Login now
Register as a new user
If you have given us your address in the past and you are chosen, your prize will be shipped to you automatically.
Otherwise, winners must contact GL at email@example.com within 24 hours
to claim their prize. Update your profile to add your address to your account here.


text: Los Angeles,[a] often referred to by its initials L.A., is the most populous city in the U.S. state of California. With roughly 3.9 million residents within the city limits as of 2020[update],[7] Los Angeles is the second-most populous city in the United States, behind only New York City; it is also the commercial, financial and cultural center of Southern California. Los Angeles has an ethnically and culturally diverse population, and is the principal city of a metropolitan area of 13.2 million people. Greater Los Angeles, which includes the Los Angeles and Riverside–San Bernardino metropolitan areas, is a sprawling metropolis of over 18 million residents. The majority of the city proper lies in a basin in Southern California adjacent to the Pacific Ocean in the west and extending partly through the Santa Monica Mountains and north into the San Fernando Valley, with the city bordering the San Gabriel Valley to its east. It covers about 469 square miles (1,210 km2),[6] and is the county seat of Los Angeles County, which is the most populous county in the United States with an estimated 9.86 million residents as of 2022[update].[16] It is the fourth-most visited city in the U.S. with over 2.7 million visitors as of 2022.[17]


text:
If you have been searching for AN3-10 of Bolt components that you can rely on, look no further than Limitless Aerospace. AN3-10 part is listed alongside the other Bolt components, and it has been manufactured by Embraer Aircraft Holding Inc. With current availability through our website, we invite you to request a quick and competitive quote for AN3-10 by filling out and submitting the RFQ form below. By providing us with information such as your target price and when you need your parts by, we can ensure that we offer a personalized solution that accommodates your individual needs and requirements.
NSN parts are those that follow the NSN system as dictated by the NATO Standardization Agreements, and they contain a 13-digit serial number to optimize the procurement, stocking, and issuing of items through the federal supply system. On Limitless Aerospace, we make finding the NSN parts and components you need easy, and customers may peruse our robust NSN part catalogues or use our search engine to find specific items with ease. As the only independent distributor with a no China sourcing pledge, we choose to only stock items from top global manufacturers such as Embraer Aircraft Holding Inc. Get started on the purchasing process for AN3-10 today and see how we can serve as your strategic sourcing partner for all of your operational needs.
Don't forget That If You'd Ever Like a Quote for Parts Within 15 Minutes or Less, You Can Fill out the Instant RFQ form On this Website'S Homepage.
Request for Quote


text: Information about TU's New Fiscal Year (April 1 - March 31) Fiscal Year Change Process FAQ and Timeline (PDF – 2018) In June 2018, the TU Board of Trustees voted to change TU's fiscal year, including that of all TU chapters and councils, moving the fiscal year to April 1 through March 31. The transition to the new fiscal year for TU's chapters and councils will be supported by national, and this FAQ and Timeline document details what that process looks like and what resources are available. TU Subordinate Fiscal Year Change Authorization Letter to the IRS (WORD – 2018) TU will file an application for a change of accounting period with the IRS on behalf of the entire exempt group. All chapters and councils will be required to submit a letter to TU authorizing TU to include the chapter or council in the group application by Feb. 15, 2019. Staff will collect the signed copies for all chapters and councils to submit to the IRS. This letter should be signed by each chapter and council and e-mailed to Nick Halle at email@example.com. Safeguarding Chapter and Council Assets Financial and Property Controls Policy (PDF – 2015) This policy sets out several requirements and recommendations to help officers and directors safeguard TU funds and other chapter and council assets. Personal Property Inventory Sample Spreadsheet (XLS – 2016) Use this document to help your chapter or council keep track of all inventories. TU's Financial and Property Controls Policy requires that all inventory is tracked that is in excess of $200. Financial Controls Policy Training Recording (VIDEO – 2015) This recorded PowerPoint presentation provides information about the TU Financial and Property Controls Policy. Securely Processing Credit Cards (PDF – 2014) Annual Financial and Chapter Effectiveness Reporting 2018 Annual Financial and IRS Reporting Guidelines Memo (PDF – 2018) How to Count a Volunteer Hour Guidance Document (PDF - 2014)The following glossary helps define each of these categories and sub-categories and also provides examples of the types of volunteer hours which should be counted in each category. Chapter Effectiveness Index Scoring Spreadsheet (PDF - 2015)TU's Chapter Effectiveness Index is a tool chapters and councils can use to measure their progress over time in the areas critical to TU's mission. The scores are not used to rate, rank or categorize chapters in any way, and are simply a tool to help volunteers in each chapter gauge where they stand, where they have been and set goals for where they would like to be in the future. Requirements Dictated by the Limitations of TU's 501(c)(3) IRS Compliance Guide for Tax Exempt Organizations (Webpage) Sample Donor Letter (PDF) Written acknowledgment is required to substantiate a charitable contribution of $250 or more. The IRS demands certain, necessary language in donor letters. Tax Exemption Restrictions (PDF – 2016) Chapters or councils may not endorse or oppose any candidate for public office, must strictly account for the portion of its activities devoted to lobbying, cannot donate money to a non-501(c)(3) organization or a 501(c)(3) organization that does not further TU's mission, nor can they grant scholarships to individuals. This document details these IRS related restrictions. Sample Conflict of Interest Form (PDF – 2016) A policy governing conflicts of interests is perhaps the most important policy a chapter or council can adopt. To have the most impact, the policy should be in writing, and the board should review the policy regularly. Keep in mind that the IRS Form 990 asks not only about whether the nonprofit has a written conflict of interest policy, but also about the process that the nonprofit uses to manage conflicts, as well as how the nonprofit determines whether board members have a conflict of interest. Sample Whistleblower Policy (PDF - 2017)A sample policy your chapter or council might adopt, which includes a code of ethics. For chapters and councils who employ staff, contact volunteer operations for another version of the policy that is specific to staff. Information on Whistleblower Protections for Non-Profits (Webpage)Sample Document Retention Policy (PDF - 2017)IRS Guidance on Board Governance and Management (PDF) It is important that each chapter and council implement proper management structures, operational policies, and administrative practices, In the Form 990, the IRS asks about policies such as document retention and destruction, ethics and whistleblower policies, and whether or not your board reviews the 990 before the Form is filed.


text:
Seattle Intellectual Property Law (IP Law) refers to creations of the mind, such as inventions and patents; literary and artistic works; industrial or personal designs; and symbols, names and images used in commerce.
Intellectual Property (IP) is protected in law by, for example, patents, copyright and trademarks, which enable people to earn recognition or financial benefit from what they invent or create.
By striking the right balance between the interests of innovators and the broad public interest, the Intellectual Property system aims to nurture an environment in which creativity and innovation can flourish.
- – Patents
- – Copyrights
- – Industrial Design Rights
- – Trademarks
- – Trade Dress
- – Trade Secrets
- – Intellectual Property (IP)
- – Entertainment Law
- – Sports Law
- – Music, Movies, contracts and more
- For disclaimer or more details and information please do not hesitate to contact us.
** If you are an Attorney at Law or Law Firm in which there is at least one Legal XM member attorney or detective services, you may join Legal XM at the "Additional Member" rate of $149.00. After applying for additional members please contact our office at 1. 619. 846. 2123 so that your account can be properly linked with your firm. See Plans and Prices Here
* We DO NOT distribute, sell, or rent your name or personal information to any third party. This includes any e-mail addresses, phone numbers or mailing addresses that you provide. All our conversation, files, forms, etc are kept strictly confidential.


text:
Mr. Speaker, on International Roma Day last year, the OSCE High Commissioner on National Minorities released a detailed report on the situation of Roma in the OSCE region. Unfortunately, in the intervening months, relatively little progress has been made by government authorities in addressing the problems he described.
The Helsinki Commission, which I co-chair, receives so many reports on an almost daily basis which demonstrate the magnitude of the problems Roma face. We receive reports of Roma who are denied access to public places, like the three Roma who were turned away from a Warsaw restaurant last September 29, just before the OSCE convened its annual human rights meeting in that city. We receive reports of discrimination in housing, like the January 27 Hungarian television report that local authorities in Rabakoez, Hungary, have called for prohibiting the sale of real estate to Roma. We receive reports of police abuse, such as the repeated cases of unlawful police raids in Hermanovce, Slovakia. We receive reports of violent attacks, such as the assault on a Romani church in Leskovac, Serbia, at the beginning of this year.
Too often, courts are part of the problem, not the solution. Rather than providing a remedy for victims, they compound the abuse. Take a recent case from the Czech Republic. The Czech Supreme Court issued a ruling that a violent attack on a Romani man in 1999 was premeditated and organized, and then remanded the case back to the district court in Jesenik for sentencing in accordance with that finding. But the district court simply ignored the Supreme Court's finding and ordered four of the defendants released. I am hopeful that Slovak courts, which are currently weighing the fate of three of the defendants charged in last year's brutal murder of Anastazia Balazova, will do a better job of bringing her murderers to justice.
In a few places, there are some glimmers of hope. In Viden, Bulgaria, for example, the Romani organization Drom has led a successful effort to bring 400 Romani children, who previously attended segregated schools, into the mainstream school system. In that instance, the cooperation of local and national authorities, governmental and non-governmental bodies, is paying off.
Unfortunately, too few government leaders demonstrate the courage necessary to address these issues. Some pass the buck, looking to the European Union or the Council of Europe to fix problems that must be tackled, first and foremost, through political leadership at home. Moreover, a number of EU countries have little to teach the applicant countries about tolerance towards Roma.
Many OSCE countries, not just the former Communist states, are in need of comprehensive anti-discrimination laws, a priority recognized in the 1999 OSCE summit agreement and by the European Commission in the adoption of its "race directive" in June of last year. Regrettably, nearly two years after Bulgaria received praise from many quarters for agreeing to adopt such legislation; the government is not one step closer to fulfilling its commitment.
The Slovak Government's human rights office, in contrast, has undertaken a serious study of legislative options and may soon have a draft ready for a vote. In addition, it is imperative that political and civic leaders condemn anti-Roma manifestations in clear and unequivocal terms.
Mr. Speaker, when the Mayor of Csor, Hungary, a publicly elected official, said "the Roma of Zamoly have no place among human beings; just as in the animal world, parasites must be expelled," I believe it is the responsibility of Hungary's political leadership to condemn these outrageous slurs. If more leadership was demonstrated, perhaps confidence would have been strengthened and maybe 5,772 Hungarian Roma would not have applied for asylum in Canada over the past three years. When the Mayor of Usti nad Labem built a wall to segregate Roma from non-Roma, all members of the Czech parliament, not just a paper slim majority of 101 out of 200 MPs, should have voted to condemn it. And when Mayor Sechelariu of Bacau, Romania, announced plans to build a statue of Marshall Antonescu, the World War II dictator who deported 25,000 Roma to Transniestra, where some 19,000 of them perished, Romanian officials, who have pledged to the OSCE community to fight intolerance, should begin at home by ridding their country of every Antonescu statue built on public land.


text:
To the editor:
Much has been said about developing a "world-class" waterfront for Alexandria. But what makes a place truly world class?
Think about the attractions that stimulate interest for tourists in other cities. They tend to be unique to that municipality. It's things like the Liberty Bell and Independence Hall in Philadelphia, Charleston's Fort Sumter, the Alamo in San Antonio or San Francisco's cable cars and Fisherman's Wharf.
We all know there is much about Alexandria that is truly unique and already draws visitors from all over the world. Alexandria was a major Colonial port; George Washington was a frequent visitor here; our city was once part of the District of Columbia; and we were occupied by Union forces throughout most of the Civil War. Not to mention the Torpedo Factory Art Center is truly a visionary repurposing of a waterfront building originally constructed to manufacture armaments.
These are the kinds of things that already attract people here. Just watch the crowds following Colonial tours, visiting Gadsby's Tavern — perhaps to meet with "George Washington" — or following John Carlyle's funeral procession to the burial ground at the Old Presbyterian Meeting House. Alexandria can and should do more to capitalize on our unique historic and artistic attractions, and the Potomac River frontage would be a superb place to do this.
Conversely, if one insists on building generic hotels along the river, as the city's plan proposes, our precious waterfront will be condemned to mediocrity. While one does want an attractive hotel as a place to stay when visiting another city, hotels are not generally attractive destinations in themselves. We should not let our city become just another clone like so many other places that have shown no vision in capitalizing on their natural assets.
Other cities' waterfronts demonstrate conclusively community support is the key to success. However, Alexandria has singularly failed to enlist residents in any meaningful way in planning for the Potomac waterfront. If that had actually been the case, the city would not have a plan in limbo because a large number of Alexandrians have signed a petition opposing the proposed re-zoning of the district.
Instead of continuing to use taxpayer money to press for development residents don't want, the city should send this sorry excuse for a plan back to the drawing board and this time do the job right. Involve interested residents in the planning from the outset instead of trying to tweak a plan that was fundamentally flawed from the start. Alexandrians care very much about our community and do want to be involved in planning for the future, so the city should give them the opportunity to do so.
– Hugh M. Van Horn


text: Sermons Loading Content... Share a Link to this Message The link has been copied to your clipboard; paste it anywhere you would like to share it. Close - Browse Series - ------------- View Series Archives View All Messages ------------- KINGS A Life Worth Living The Gospel of Mark Christmas at the Movies Finding Direction At Our Core Foundations It's Not Easy I Am Family Majoring in the Minors Christmas Gifts Evangelism Daniel My Church, My Part Spiritual Health Missions Sunday 2022 Momentum: Acts of God The Gospel of Luke Ecclesiastes Be The Church Family Missions Sunday 2021 Women of the Bible Patriotic Sunday Questions The Book of Matthew Revelation Why? Missions Sunday 2020 Stand Alone Sermons Overcome Acts: The Movement Begins Philippians 4:8 Go United Untied Prayer: The Warrior's Weapon Town Hall Bethlehem Revisited The Book of James What's Next? One Thing OT Heroes On Mission Don't Say That Family Feuds: At Home Edition Christmas Gifts Why Church? Freedom Rev. Linda Guthrie's Last Sermon Father's Day 2018 Easter 2018 Our Future Matters 2018 Christmas 2017 Philippians Believe MIssions Sunday 2017 Psalms Suffering Father's Day 2017 I Dare You Creed Tell Somebody Family Matters Experience Christmas Sermon on the Mount I Am a Church Member GRACE Missions Sunday 2016 Roman's: Christianity Revealed Our Future Matters 40 Days Thrive The Journey Four Questions Guest Speaker Journeys This Is Covenant Scared to Death 24-6 Dive Deep Christmas Stories The Story I Quit Full Armor of God Easter Sunday Musicals Final Words Life Through the Spirit From the Old to the New Traveling Light: The Promise of Psalms 23 Stand Alone Sermons In His Steps 2014 Gods Will and My Pain Missions Sunday 2013 Not a Fan From this Day Forward Demo Series - Browse Speakers - Michael Belk Drew Clemmons Laura Geloni Patrick Griffey Mike Guffee Linda Guthrie Town Hall Darren Hook Madison Huggins Janice Hughey Johnny Kittrell Scott Limerick John Ed Mathison Mike Smith Phil Stout Melodie Streett Jerry Temple Terry Teykl Covenant Worship Covenant Worship Matt Yon - Browse Topics - Act Acts Addiction Advent Afterlife Alcohol America Anxiety Apostles Apostles' Creed Ash Wednesday Baptism Barnabas Barrabas Barrier Becoming a Follower Believe Betrayal Bible Bible Study Biblical Narrative Body Born Again Bridge Building Buried Called Calling Children Christian Christians Believe Christmas Church Church Council Comfort Commandments Commitment Communion Compassion Complaint Confirmation for Adults Convicted Courage Covenant Creation Creed Cross Crucified Dad Daniel Daughter Dead Death Demonstration Depression Disciple Discipleship Discipline Do Drugs Easter Eat Ecclesiastes Encourage Others Endurance Engage Esther Eternity Evangelism Excuses Faith Faithful Faithfulness Family Family Father Fear Fellowship Fitness Follow Fool's Gold Forgive Forgiveness Foundation Freedom Fruits of the Spirit Future Garden Genealogy Gentiles Gentleness Gift Giving Go God God, Father Almighty God's Design God's Plan God's Will God's Word God's Word Good Friday Good Samaritan Goodness Gospel Gossip Grace Great Commission Great Compassion Handling Burdens Harvest Healing Healing Relationships Health Heartbroken Heaven Hell Hide Holy Ghost Holy Spirit Holy Thursday Holy Week Hope Humanity Humble Humility Husband In His Steps Integrity Investment Involved Jesus Christ Jesus' Teachings John Joseph Joy Judgment Kindness Last Supper Lent Life Listen Lord's Prayer Love Love, Church Love, God Love, Marriage Love, Neighbor Love, Other Luke Lydia Maker of Heaven and Earth Martyr Mary Matthew Meaningless Meditate Membership Mental Health Messiah Mind Miracle Missionary Missions Mistakes Momentum Money Mothers My Story NAMI Naomi Nations Obey Offering Our Role As A Church Our Role As Believers Overcoming Temptation Pain Palm Sunday Parables Parents Parents Passover patience patient Paul Peace Peter Pharisee Pilate Pleasures Porn Pornography Praise Prayer Presence Priorities Prodigal Son Prophet Questions Racism Reconcile Redeem Relationships Renew Repent Rest Resurrection Revelation Revival Righteousness Risen Role Romans Ruth Sacrifice Salvation Sanctifying Saul Saved Savior Second Self Self-Control Sent Sermon on the Mount Service Sharing Faith Sin Son Speak Spirit Spiritual Spiritual Gifts Spiritual Gifts Spiritual Leader Spiritual Treasures Spiritual Treasures Sponsor Stephen Steward Stewardship Stress Study Submit Suffering Suicidal Support Talk Temple Testimony Thankful The Bible The Bible Time Tithes Tradition Transformation Triumphal Entry True God Trust Truth Unexpected Unity Vanity Whisper Who Jesus Is Who We Are Why Wife Wisdom Witness Witnesses Women Wonder Works Worship Darren Hook - October 2, 2022 Commitment Sunday Watch From Series: My Church, My Part | More Messages from Darren Hook From Series: "My Church, My Part" Facebook Tweet Link Share Link Send Email More Messages Associated With "Church"... Commitment Sunday Darren Hook - October 2, 2022 Watch Every Member in Ministry Darren Hook - September 25, 2022 Watch God's Gifts Matt Yon - September 18, 2022 Watch Vision Darren Hook - September 11, 2022 Watch Who Is Covenant? Darren Hook - September 4, 2022 Watch Acts 20-28 Darren Hook - July 10, 2022 Watch Acts 13-14 Darren Hook - June 19, 2022 Watch Acts 3-6 Johnny Kittrell - May 15, 2022 Watch Town Hall November 2021 Town Hall - November 7, 2021 Watch Ecclesiastes 7 & 8 Darren Hook - November 7, 2021 Watch Listen Displaying 1-10 of 571 2 3 4 5 6 More » Powered by Series Engine


text:
By clicking "Create free account" or Facebook or Google, you agree to the Terms of Use and Privacy Policy. You also agree to receive information and offers relevant to our services via email. You can opt-out of these emails in your My Account page anytime.
People love their work perks. Send a survey to find out if you're offering the incentives employees and potential candidates want.
Find outGet access to powerful solutions that help you quickly collect feedback from your customers, prospects, and employees.
Learn more


text:
1978 - 1987
Write ups on how to do some of those projects to your car yourself.
correct filling level of...
Use this control to limit the display of threads to those newer than the specified time frame.
Allows you to choose the data by which the thread list will be sorted.
Order threads in...
Note: when sorting by date, 'descending order' will show the newest results first.
Forum Rules


text:
Professional Esteem-Petrol Service is now one step away in rohtak
Forget all your worries about Esteem-Petrol service. Get your Esteem-Petrol serviced at best service stations in rohtak at lowest prices in the market.
Why choose Esteem-Petrol Services in rohtak with Gaadizo .Because we are Reliable.
Gaadizo's periodic services strictly follow guidelines recommended by manufacturers. All our workshops are equipped with experienced mechanics & state of the art tools. So whenever you give us your car for service you won't need to worry about anything.
Our Mission.Provide best in class Esteem-Petrol service to everyone in rohtak.
Our service includes a 50 point check-up along with the Replacements of consumables & spare parts With top ups of fluids (coolant, gear oil, wiper fluid) Our service packages also includes Esteem-Petrol car wash, interior cleaning and free pick-up and drop to provide you a quality service experience in rohtak.
Our SpecialityKeep your Esteem-Petrol in Top Condition in rohtak
With our team of experienced mechanics and state of the art tools & techniques, We would always keep your Esteem-Petrol in top condition. When you bring your Esteem-Petrol to us we ensure that you & your Esteem-Petrol is given premium service experience.


text:
Why Join Our Talent Network?
Joining our Talent Network will enhance your job search and application process. Whether you choose to apply or just leave your information, we look forward to staying connected with you.
Why Join?
{{ job.title }} | {{ job.location }} | {{ job.date | date:vm.dateFormat }} |
By joining our Talent Network you have not officially applied to a position.


text:
Friday, September 11, 2009
Oven-Baked Baby Back Ribs
From the kitchen of One Perfect Bite...Our plans last weekend were changed because of rain. Fortunately, everything on the menu could be made as easily in the kitchen as on the grill. At the time I talked briefly about the meal and have since received requests for the recipes I used, particularly the one for baby back ribs. There are basically three steps involved in making this summer favorite. The first is assembling a dry rub. The second is making a barbecue sauce and the third is the actual cooking of the ribs. The dry rub and sauce will take 10 minutes of your time to make, but the sauce will need to cook for 1 to 2 hours. The ribs will require about 4 hours of unattended cooking time. They will be most flavorful if you apply the dry rub to the ribs about 8 to 24 hours before you plan to cook them. The barbecue sauce, which by the way is fantastic, will be even better if it has 24 hours to age. I'm not a fan of sauces that need dozens of ingredients to be flavorful. This is a very simple sauce. While I prefer baby back ribs, this recipe also works well with spare ribs, though they will require an additional hour to cook. Whichever you choose, remove the silver skin from the back of the ribs before apply the rub. It's really hard to believe that something this good can be this easy to prepare. Here's the recipe.
Oven-Baked Baby Back Ribs...from the kitchen of One Perfect Bite
Dry Rub
1 tablespoon Kosher salt
1 tablespoon granulated onion
1 tablespoon granulated garlic
1 teaspoon sweet smoked paprika
1 teaspoon fresh ground black pepper
Barbecue Sauce
1 cup ketchup
2/3 cups Worcestershire sauce
2/3 cup golden brown sugar
1/2 teaspoon hot sauce (optional)
1/4 to 1 teaspoon cayenne pepper
1 teaspoon freshly ground black pepper
1 teaspoon salt
1 teaspoon sweet smoked paprika
1 teaspoon chili powder
2 tablespoons mustard
1 tablespoon liquid smoke
1 teaspoon minced garlic
1/4 cup flour
1 (12-oz.) bottle non-alcoholic amber ale
Baby Back Ribs
2 slabs baby back ribs, silver skin and under flap removed
1 teaspoon liquid smoke
1) To make dry rub: Combine salt, granulated onion, granulated garlic, paprika and pepper in a small bowl. Set aside.
2) To make barbecue sauce: Combine all sauce ingredients, in the order listed, in a large pot with a heavy bottom. Whisk until smooth. Place pot over low heat and cook for 1 to 2 hours, stirring every 20 minutes, until thickened. Set aside. If not using immediately, cool to room temperature and refrigerate.
3) To make the ribs: Rub top surface of ribs with liquid smoke. Sprinkle top surface of each rack with 1 teaspoon dry rub. Turn and sprinkle bottom surface of each rack with 1 teaspoon dry rub. Wrap in plastic wrap and refrigerate for 8 to 24 hours. Preheat oven to 250 degrees F. Remove covering from racks. Place on an aluminum foil lined baking pan or cookie sheet. Cover pan with foil and bake in preheated oven for 3-1/2 hours. While ribs are cooking, remove sauce from refrigerator and warm. Remove ribs from oven. Let rest for 10 minutes, remove foil and drain accumulated liquid. Spread both sides of ribs with barbecue sauce, return to oven and bake, uncovered for an additional 30 minutes. Serve hot. Yield: 4 to 6 servings.
This recipe is being linked to Designs By Gollum - Foodie Friday
36 comments :
- Marsha said...
Oh my! These look so good. I'm going to have to let hubby read this. This is his department.
Mary, I always enjoy your visits to my blog and your kind words. Have a wonderful weekend. - September 10, 2009 at 11:13 PM
- Connie said...
These look yummy!! We had smoked ribs for Labor Day! It's hard to believe summer is quickly coming to a close!!
Many blessings! - September 10, 2009 at 11:38 PM
- Boo-Bah AKA Iris said...
My husband would love this. Ribs are his favorite.
Iris - September 10, 2009 at 11:49 PM
- figtree said...
Ive never used liquid smoke, these look soooo good that Im buying a bottle today.Figtreeapps
- September 11, 2009 at 5:11 AM
- Deb in Hawaii said...
Beautiful ribs--gorgeous color!
- September 11, 2009 at 5:43 AM
- Debs @ DKC said...
Mmmm, these sound yummy. Recipe not too different to mine, but I like the addition of ale. May have to try this very soon, especialy as I have some ribs in the freezer, thanks for sharing.
- September 11, 2009 at 5:58 AM
- The Blonde Duck said...
I want my baby back baby back baby back baby back ribs...
BBQ sauce!
Had to do it. :) - September 11, 2009 at 6:45 AM
- NKP said...
I love the smokiness of this recipe. They look so sticky, sweet and delish!
- September 11, 2009 at 6:47 AM
- Kristin said...
These sound & look delish! We don't do ribs very often, 4 kids & finger lickin' good food kind of freaks out the mommy!! Hope you are having a wonderful day!
- September 11, 2009 at 10:51 AM
- Katherine Roberts Aucoin said...
These ribs look so tender and delicious.
- September 11, 2009 at 11:11 AM
- Joy Tilton said...
Mary, these look so good! We will have to make this recipe very soon. I'm sorry I have taken so long to answer about the persimmon...I guess the fruit would have to be from the region for it to "predict" winter's weather. Not exactly a science, but folklore is interesting! Go to http://www.farmersalmanac.com/
and read more... - September 11, 2009 at 11:38 AM
- Debbie said...
Yum...these look so good! My son and husband can never have enough baby back ribs...one of their favorites!
- September 11, 2009 at 12:59 PM
I wish it would rain here, you're so blessed! Those ribs are to die for, I'm certainly going to try them. :O)
- September 11, 2009 at 12:59 PM
- Jessica said...
These look great!
- September 11, 2009 at 1:05 PM
- Unknown said...
WOW!!! love baby back ribs. Finger licking good. Geri
- September 11, 2009 at 1:11 PM
- Maria said...
I bet they are loaded with flavor! Make sure you have a napkin or two:)
- September 11, 2009 at 2:01 PM
I love the addition of beer into your barbecue sauce - I'll have to try that!
And I agree, the dry rub the night before makes all the difference!
Have a good weekend! - September 11, 2009 at 4:35 PM
- Pam said...
Bookmarked. You have me craving ribs Mary - they look spectacular. Hope you have a great weekend!
- September 11, 2009 at 5:08 PM
- Unknown said...
ribs- one of my favs! and yours look and sound incredible. thanks for the recipe!
- September 11, 2009 at 5:21 PM
- Scooterblu's Whimsy~Rhonda said...
Thanks so much for sharing this recipe! I was so excited to read the dry rub recipe! I needed that one! :)
Thanks for dropping in to visit me and for the kind comments! Hope you'll return! Have a wonderful weekend! ~Rhonda - September 11, 2009 at 6:42 PM
- Signing Out said...
Wow, those ribs look fantastic! I'm getting hungry just looking at them.
Jane - September 11, 2009 at 7:16 PM
- theUngourmet said...
I haven't had ribs in a while now. These are cooked perfectly. Yummy!
- September 11, 2009 at 7:16 PM
- Donna-FFW said...
From the rub to the sauce to the simplicity, this is stellar all the way!! I am saving ths one!
- September 11, 2009 at 7:50 PM
- Megan said...
Baby back ribs are my favorite! Your recipes sound great and I cant wait for the cool weather so I can try these. Your pics are fab as always!
- September 11, 2009 at 7:53 PM
- Dena said...
I have never baked my ribs in an oven, but have opted to slow grill them instead. I'll have to try this method to see how it compares. Thanks!
- September 12, 2009 at 12:25 AM
- My Little Space said...
I'm speechless! I love the way it looks and the sauce as well...yum!
- September 12, 2009 at 1:37 AM
- Katy said...
Lip smackin' finger lickin' good!!!
- September 12, 2009 at 8:02 AM
- pigpigscorner said...
Love ribs! These look amazing!!
- September 12, 2009 at 3:46 PM
- La Cuisine d'Helene said...
I would love to have dinner with you. Oh my these look so yummy.
- September 13, 2009 at 12:02 AM
- honeysuckle said...
They sound so good and easy!
- September 18, 2009 at 11:45 AM
- free online adventure games said...
I've never actually seen liquid smoke being sold where I live (I've never actually gone looking for it) - it'd be such a pity if there isn't because this looks like such a great recipe to try! Hopefully I get to find all the ingredients.
- October 20, 2009 at 10:43 PM
- JinkyK said...
This recipe taste as good as it looks. I made this ribs for the recent dinner party I hosted and everyone enjoyed it. Fall off the bone tender and succulent. Already post it in my blog. Thanks for sharing!
- May 20, 2010 at 4:03 PM
- Kids Online Games said...
Oh looks so good!
- September 7, 2010 at 5:47 PM
- Create. Snap. Eat. said...
OOOH!!! Just in time for Saveur's cover challenge.
- May 26, 2011 at 12:31 AM
- Karen said...
this ribs are so good that my picky five year old will eat them and ask for more.
- May 27, 2011 at 10:40 AM
- Ryan L said...
The BEST ribs I've had anywhere ... and this was my first time preparing baby backs.
- October 27, 2011 at 1:58 PM