text:
Faculty of Science, Engineering & Technology
Opportunity knocks for UTAS professor on the rim of a Mars crater
Conclusive proof that water once flowed on the Martian surface has been found in a huge ancient impact crater named after Captain Cook's ship.
A paper by an international team of researchers, which includes the University of Tasmania's Professor Paulo de Souza, published by the prestigious journal Science, reports findings from an investigation of the rim's stratigraphy by the rover Opportunity.
Conclusive proof that water once flowed on the Martian surface has been found in a huge ancient impact crater named after Captain Cook's ship.
A paper by an international team of researchers, which includes the University of Tasmania's Professor Paulo de Souza, published today by the prestigious journal Science, reports findings from an investigation of the rim's stratigraphy by the rover Opportunity.
Dr de Souza, who joined the UTAS Human Interface Technology Laboratory in Launceston from CSIRO early this year, has been part of NASA's Mars team since 2002.
The rover Opportunity landed on January 24 2004, three weeks after its twin, Spirit, set down. Eight years later, Opportunity is still exploring the Martian surface (Spirit operated for more than five years before becoming irrecoverably stuck in a sand trap).
It is scheduled to be joined in August by the Mars Science Laboratory, a rover named Curiosity, which is about five times the size of Spirit and Opportunity.
"We never thought the Opportunity mission would last as long as it has, so initially the Endeavour crater was only considered a long-term goal," Professor de Souza said.
It took the rover seven years to navigate the 33 kilometres from its landing spot to reach a feature on the crater rim named Cape York. The effort was rewarded with the discovery of gypsum, a key geological indicator of the historical presence of water and not found elsewhere by either of the two rovers.
"We can not dig more than a few centimetres with the rover so the best way is analyse soil is to approach craters," explains Professor de Souza. "The whole structure of a crater will reveal what's in the subsoil.
"Fortunately for us, there are a large number of craters on Mars which are well-preserved. For geologists it is as if time has stopped. The crater rims have not been eroded by the elements as they have been on Earth.
"When you see the deposits you can understand which processes took place. Sedimentation was one of them. Volcanism was very intense on Mars – for example, the volcano Olympus is the highest peak in the solar system, three times higher than Mt Everest.
"Since the Viking missions we have been aware of minerals that indicate this process of crystallisation of lava. It produces what we call primary rocks. If you expose those rocks to water, then they will be dissolved in different minerals, gypsum being one," Professor de Souza said.
"Key minerals revealing wet processes could be everywhere on Mars but we don't know – it is too deep below that surface, that's why exploring craters is so attractive.
"The big question still to be answered is, how long was water present on Mars–and was there enough time for life to be formed? Perhaps Curiosity will shed some light on that."
Opportunity has been reactivated after its winter sojourn and will continue to explore the rim. Back on Earth, Professor de Souza will focusing on his new UTAS appointment, in which he will drive the scientific side of the State-wide SenseT data sensor network project.
The paper Ancient Impact and Aqueous Processes at Endeavour Crater, Mars can be viewed online: http://www.sciencemag.org/content/336/6081/570
Image: This colour view of a mineral vein called Homestake comes from the panoramic camera (Pancam) on NASA's Mars Exploration Rover Opportunity. The vein is about the width of a thumb and about 45 centimetres long. Opportunity examined it in November 2011 and found it to be rich in calcium and sulphur, possibly the calcium-sulphate mineral gypsum. Homestake is near the edge of the Cape York segment of the western rim of Endeavour Crater. Image courtesy of NASA.


text:
A Recipe for Judaism
What makes a fish taste Jewish?
For some, the immediate answer will be pickling and a former home in freshwater. For others, the fish must be salmon-colored and, of course, smoked. For others still, Jewish fish is carp—poached, sweet, and served cold. For Jews in Jamaica, however, the fish will be whole and therefore small. Lightly fried, it will then soak in vinegar with thin slices of white onion and habanero peppers, grated carrot, sprigs of thyme, whole coriander seeds, and allspice balls. For the Jewish Colombians, add lemon.
What accounts for the range?
When describing how Jewish communities have embraced or resisted being changed when making homes in new and different circumstances, commentators typically turn to the metaphor of the bubble or the sponge.
In the first, a fragile and transparent but definite outer boundary insulates the (singular) Jewish community. It can see out and be seen but moves intact through a range of times and places. The bubble would burst if it actually landed and so Jewish people remain Jewish by avoiding becoming like others in their midst.
In the second model, we Jews are defined by our porousness, by unqualifiedly absorbing whatever is in proximity to us. The absence of any outer boundary amounts to an essential orientation of assimilation and openness. Who we are, in terms of any specific content, necessarily shifts with the circumstances in which we find ourselves.
But there is and has been another alternative, one evident in the range of ways to make your fish taste Jewish and in cookbooks like Claudia Roden's The Book of Jewish Food: An Odyssey from Samarkand to New York.
Called creolization, it offers a more accurate account of how Jewish communities have remained distinctively Jewish as they have become local to a variety of different parts of the globe. As my husband, Lewis Gordon, often emphasizes: for non-Eastern European Jews, Eastern European Jews seem very Eastern European. For non-Indian Jews, Cochim appear very Indian. But these ways of being local are salient precisely because we also recognize the Jewishness of and in each.

subset: commoncrawl


text:
Dvorak grateful for Ducks to come calling
ANAHEIM -- More often than not, it is NHL teams that let a player know when his days in the league are at an end.
Radek Dvorak played in 1,191 games with six teams after coming over from his native Czech Republic but a lengthy, respectable career was at a crossroads when no offers came his way after playing for Dallas last season.
The prospect of playing out his final competitive days in Europe was certainly available and Dvorak headed off to Switzerland. But a return to the league he called home for 16 seasons was what he really wanted.
After getting back to his Florida home to see his family for the first time in weeks, Dvorak got a text from his agent, Allan Walsh, telling him that an NHL team was showing interest. It was the Ducks, who finalized a deal worth a pro-rated $675,000 for the rest of the season.
"I'm so glad it was Anaheim," said Dvorak, who cleared waivers Monday morning and skated for the first time with his new teammates. "It's nice to be back in the NHL for sure.
"It was tough for me to leave after 17 years in the league. That's how it is. That's life. Like I said, it's nice to be back with a team like Anaheim. One of the best teams in the league."
Dvorak won't play for the Ducks in their home game Monday against San Jose and his debut may be a bit delayed as the club irons on his immigration paperwork.
But the veteran winger couldn't keep from smiling as he spoke. The Ducks not only offered him an avenue back into the league but they could give him a rare chance at shooting for a Stanley Cup.
Over his career, Dvorak has only been in the playoffs four times and his two longest runs came in 1995-96 as a rookie with Florida and a decade later with Edmonton. Both made it to the Cup final.
"You always have high expectations and this team has that," he said. "They're playing great. I've been watching them. It's been good so hopefully I can fit in and help, you know. Help the guys, win more games and get to the playoffs and go as far as you can. Go for a Cup."
Dvorak has 219 goals and 577 points with six teams but compiled just four goals and 17 assists in 73 games with Dallas. His days as a support scorer are behind him but the Ducks see Dvorak as a experienced player who can handle a variety of roles when needed.
Ducks coach Bruce Boudreau said Dvorak likely won't play every day but believes he can use him either on his natural right side or the off wing.
"He can still skate," Boudreau said. "He can still play. He's a good penalty killer, which is something that we can use. We can never have enough of [that]. So he's going to be a good advantage to our team."
Sheldon Souray played with Dvorak in Dallas and said "he'll blend in perfectly" with his professional attitude.
"I was surprised he didn't get a contract actually at the end of the season and going into this year because he had a pretty good year in Dallas," Souray said. "He was one of the guys that was really consistent.
"He's just a really good guy. He plays hard. He's an honest player. He's going to be a good depth guy who can fill in really anywhere and play well."
Dvorak won't need much to get up to speed as he comes off playing for HC Davos in a first-round National League A playoff series against Zurich. A seven-game loss made him available earlier than expected to keep his NHL career alive.
"I was hoping," he said. "Deep in my mind and my soul, I was hoping if I come back [that] maybe I can get another shot. It happened."
Most Popular
- 2 men hold up Huntington Beach doughnut shop at gunpoint
- As 'CHiPs' movie opens, real CHP officers answer 5 questions about the job
- Sheriff's deputies in pursuit of residential burglary suspects through Dana Point
- Shaq has 'great emotions' before Lakers unveil statue
- Firefighters work for 30 minutes to free man from his truck after he crashes into tree
User Agreement
Comments are encouraged, but you must follow our Privacy Policy Policy & Terms of Use
Keep it civil and stay on topic. No profanity, vulgarity, racial slurs or personal attacks. People who harass others or joke about tragedies will be blocked. By posting your comment, you agree to allow Orange County Register Communications, Inc. the right to republish your name and comment in additional Register publications without any notification or payment.


text:
Raed Al-Dallow, MD
Board Certified
Accepting New PatientsPrairie Cardiovascular Consultants
409 W Oak Street
Carbondale, IL 62901
http://www.prairiecardiovascular.comOffice Hours:
Monday-Friday 8:00am to 5:00pmHospital Affiliations:
- Memorial Hospital of Carbondale
- St. Joseph Memorial Hospital
- Herrin Hospital
Education & Training:
- Education:Damascus University School of Medicine, Damascus, Syria
- Residency:Cook County Hospital, Chicago, IL (Internal Medicine)
- Fellowships:Cook County Hospital, Chicago, IL (Chief Cardiology), Rush University Medical Center, Chicago, IL
Professional Interests
- Endovascular treatment of coronary and peripheral vascular disease.
Biographical Information
Dr. Al-Dallow was born in Syria and trained in Chicago for his internal medicine and cardiology fellowships. Professional Societies
- American College of Cardiology, American Heart Association, Society of Cardiovascular Angiography and Interventions, American Medical Association, American College of Physicians


text:
Best Practices for Using Strings in the .NET Framework
The .NET Framework provides extensive support for developing localized and globalized applications, and makes it easy to apply the conventions of either the current culture or a specific culture when performing common operations such as sorting and displaying strings. But sorting or comparing strings is not always a culture-sensitive operation. For example, strings that are used internally by an application typically should be handled identically across all cultures. When culturally independent string data, such as XML tags, HTML tags, user names, file paths, and the names of system objects, are interpreted as if they were culture-sensitive, application code can be subject to subtle bugs, poor performance, and, in some cases, security issues.
This topic examines the string sorting, comparison, and casing methods in the .NET Framework, presents recommendations for selecting an appropriate string-handling method, and provides additional information about string-handling methods. It also examines how formatted data, such as numeric data and date and time data, is handled for display and for storage.
This topic contains the following sections:
When you develop with the .NET Framework, follow these simple recommendations when you use strings:
Use overloads that explicitly specify the string comparison rules for string operations. Typically, this involves calling a method overload that has a parameter of type StringComparison.
Use StringComparison.Ordinal or StringComparison.OrdinalIgnoreCase for comparisons as your safe default for culture-agnostic string matching.
Use comparisons with StringComparison.Ordinal or StringComparison.OrdinalIgnoreCase for better performance.
Use string operations that are based on StringComparison.CurrentCulture when you display output to the user.
Use the non-linguistic StringComparison.Ordinal or StringComparison.OrdinalIgnoreCase values instead of string operations based on CultureInfo.InvariantCulture when the comparison is linguistically irrelevant (symbolic, for example).
Use the String.ToUpperInvariant method instead of the String.ToLowerInvariant method when you normalize strings for comparison.
Use an overload of the String.Equals method to test whether two strings are equal.
Use the String.Compare and String.CompareTo methods to sort strings, not to check for equality.
Use culture-sensitive formatting to display non-string data, such as numbers and dates, in a user interface. Use formatting with the invariant culture to persist non-string data in string form.
Avoid the following practices when you use strings:
Do not use overloads that do not explicitly or implicitly specify the string comparison rules for string operations.
Do not use string operations based on StringComparison.InvariantCulture in most cases. One of the few exceptions is when you are persisting linguistically meaningful but culturally agnostic data.
Do not use an overload of the String.Compare or CompareTo method and test for a return value of zero to determine whether two strings are equal.
Do not use culture-sensitive formatting to persist numeric data or date and time data in string form.
Most of the string manipulation methods in the.NET Framework are overloaded. Typically, one or more overloads accept default settings, whereas others accept no defaults and instead define the precise way in which strings are to be compared or manipulated. Most of the methods that do not rely on defaults include a parameter of type StringComparison, which is an enumeration that explicitly specifies rules for string comparison by culture and case. The following table describes the StringComparison enumeration members.
StringComparison member | Description |
CurrentCulture | Performs a case-sensitive comparison using the current culture. |
CurrentCultureIgnoreCase | Performs a case-insensitive comparison using the current culture. |
InvariantCulture | Performs a case-sensitive comparison using the invariant culture. |
InvariantCultureIgnoreCase | Performs a case-insensitive comparison using the invariant culture. |
Ordinal | Performs an ordinal comparison. |
OrdinalIgnoreCase | Performs a case-insensitive ordinal comparison. |
For example, the IndexOf method, which returns the index of a substring in a String object that matches either a character or a string, has nine overloads:
IndexOf(Char), IndexOf(Char, Int32), and IndexOf(Char, Int32, Int32), which by default perform an ordinal (case-sensitive and culture-insensitive) search for a character in the string.
IndexOf(String), IndexOf(String, Int32), and IndexOf(String, Int32, Int32), which by default perform a case-sensitive and culture-sensitive search for a substring in the string.
IndexOf(String, StringComparison), IndexOf(String, Int32, StringComparison), and IndexOf(String, Int32, Int32, StringComparison), which include a parameter of type StringComparison that allows the form of the comparison to be specified.
We recommend that you select an overload that does not use default values, for the following reasons:
Some overloads with default parameters (those that search for a Char in the string instance) perform an ordinal comparison, whereas others (those that search for a string in the string instance) are culture-sensitive. It is difficult to remember which method uses which default value, and easy to confuse the overloads.
The intent of the code that relies on default values for method calls is not clear. In the following example, which relies on defaults, it is difficult to know whether the developer actually intended an ordinal or a linguistic comparison of two strings, or whether a case difference between
and "http" might cause the test for equality to returnfalse
In general, we recommend that you call a method that does not rely on defaults, because it makes the intent of the code unambiguous. This, in turn, makes the code more readable and easier to debug and maintain. The following example addresses the questions raised about the previous example. It makes it clear that ordinal comparison is used and that differences in case are ignored.
string protocol = GetProtocol(url); if (String.Equals(protocol, "http", StringComparison.OrdinalIgnoreCase)) { // ...Code to handle HTTP protocol. } else { throw new InvalidOperationException(); }
String comparison is the heart of many string-related operations, particularly sorting and testing for equality. Strings sort in a determined order: If "my" appears before "string" in a sorted list of strings, "my" must compare less than or equal to "string". Additionally, comparison implicitly defines equality. The comparison operation returns zero for strings it deems equal. A good interpretation is that neither string is less than the other. Most meaningful operations involving strings include one or both of these procedures: comparing with another string, and executing a well-defined sort operation.
However, evaluating two strings for equality or sort order does not yield a single, correct result; the outcome depends on the criteria used to compare the strings. In particular, string comparisons that are ordinal or that are based on the casing and sorting conventions of the current culture or the invariant culture (a locale-agnostic culture based on the English language) may produce different results.
String Comparisons that Use the Current Culture
One criterion involves using the conventions of the current culture when comparing strings. Comparisons that are based on the current culture use the thread's current culture or locale. If the culture is not set by the user, it defaults to the setting in the Regional Options window in Control Panel. You should always use comparisons that are based on the current culture when data is linguistically relevant, and when it reflects culture-sensitive user interaction.
However, comparison and casing behavior in the .NET Framework changes when the culture changes. This happens when an application executes on a computer that has a different culture than the computer on which the application was developed, or when the executing thread changes its culture. This behavior is intentional, but it remains non-obvious to many developers. The following example illustrates differences in sort order between the U.S. English ("en-US") and Swedish ("sv-SE") cultures. Note that the words "ångström", "Windows", and "Visual Studio" appear in different positions in the sorted string arrays.
using System; using System.Globalization; using System.Threading; public class Example { public static void Main() { string[] values= { "able", "ångström", "apple", "Æble", "Windows", "Visual Studio" }; Array.Sort(values); DisplayArray(values); // Change culture to Swedish (Sweden). string originalCulture = CultureInfo.CurrentCulture.Name; Thread.CurrentThread.CurrentCulture = new CultureInfo("sv-SE"); Array.Sort(values); DisplayArray(values); // Restore the original culture. Thread.CurrentThread.CurrentCulture = new CultureInfo(originalCulture); } private static void DisplayArray(string[] values) { Console.WriteLine("Sorting using the {0} culture:", CultureInfo.CurrentCulture.Name); foreach (string value in values) Console.WriteLine(" {0}", value); Console.WriteLine(); } } // The example displays the following output: // Sorting using the en-US culture: // able // Æble // ångström // apple // Visual Studio // Windows // // Sorting using the sv-SE culture: // able // Æble // apple // Windows // Visual Studio // ångström
Case-insensitive comparisons that use the current culture are the same as culture-sensitive comparisons, except that they ignore case as dictated by the thread's current culture. This behavior may manifest itself in sort orders as well.
Comparisons that use current culture semantics are the default for the following methods:
String.Compare overloads that do not include a StringComparison parameter.
String.CompareTo overloads.
The default String.StartsWith(String) method, and the String.StartsWith(String, Boolean, CultureInfo) method with a
CultureInfo parameter.The default String.EndsWith(String) method, and the String.EndsWith(String, Boolean, CultureInfo) method with a
CultureInfo parameter.String.IndexOf overloads that accept a String as a search parameter and that do not have a StringComparison parameter.
String.LastIndexOf overloads that accept a String as a search parameter and that do not have a StringComparison parameter.
In any case, we recommend that you call an overload that has a StringComparison parameter to make the intent of the method call clear.
Subtle and not so subtle bugs can emerge when non-linguistic string data is interpreted linguistically, or when string data from a particular culture is interpreted using the conventions of another culture. The canonical example is the Turkish-I problem.
For nearly all Latin alphabets, including U.S. English, the character "i" (\u0069) is the lowercase version of the character "I" (\u0049). This casing rule quickly becomes the default for someone programming in such a culture. However, the Turkish ("tr-TR") alphabet includes an "I with a dot" character "İ" (\u0130), which is the capital version of "i". Turkish also includes a lowercase "i without a dot" character, "ı" (\u0131), which capitalizes to "I". This behavior occurs in the Azerbaijani ("az") culture as well.
Therefore, assumptions made about capitalizing "i" or lowercasing "I" are not valid among all cultures. If you use the default overloads for string comparison routines, they will be subject to variance between cultures. If the data to be compared is non-linguistic, using the default overloads can produce undesirable results, as the following attempt to perform a case-insensitive comparison of the strings "file" and "FILE" illustrates.
using System; using System.Globalization; using System.Threading; public class Example { public static void Main() { string fileUrl = "file"; Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US"); Console.WriteLine("Culture = {0}", Thread.CurrentThread.CurrentCulture.DisplayName); Console.WriteLine("(file == FILE) = {0}", fileUrl.StartsWith("FILE", true, null)); Console.WriteLine(); Thread.CurrentThread.CurrentCulture = new CultureInfo("tr-TR"); Console.WriteLine("Culture = {0}", Thread.CurrentThread.CurrentCulture.DisplayName); Console.WriteLine("(file == FILE) = {0}", fileUrl.StartsWith("FILE", true, null)); } } // The example displays the following output: // Culture = English (United States) // (file == FILE) = True // // Culture = Turkish (Turkey) // (file == FILE) = False
This comparison could cause significant problems if the culture is inadvertently used in security-sensitive settings, as in the following example. A method call such as IsFileURI("file:")
returns true
if the current culture is U.S. English, but false
if the current culture is Turkish. Thus, on Turkish systems, someone could circumvent security measures that block access to case-insensitive URIs that begin with "FILE:".
In this case, because "file:" is meant to be interpreted as a non-linguistic, culture-insensitive identifier, the code should instead be written as shown in the following example.
public static bool IsFileURI(string path) { return path.StartsWith("FILE:", StringComparison.OrdinalIgnoreCase); }
Ordinal String Operations
Specifying the StringComparison.Ordinal or StringComparison.OrdinalIgnoreCase value in a method call signifies a non-linguistic comparison in which the features of natural languages are ignored. Methods that are invoked with these StringComparison values base string operation decisions on simple byte comparisons instead of casing or equivalence tables that are parameterized by culture. In most cases, this approach best fits the intended interpretation of strings while making code faster and more reliable.
Ordinal comparisons are string comparisons in which each byte of each string is compared without linguistic interpretation; for example, "windows" does not match "Windows". This is essentially a call to the C runtime strcmp
function. Use this comparison when the context dictates that strings should be matched exactly or demands conservative matching policy. Additionally, ordinal comparison is the fastest comparison operation because it applies no linguistic rules when determining a result.
Strings in the .NET Framework can contain embedded null characters. One of the clearest differences between ordinal and culture-sensitive comparison (including comparisons that use the invariant culture) concerns the handling of embedded null characters in a string. These characters are ignored when you use the String.Compare and String.Equals methods to perform culture-sensitive comparisons (including comparisons that use the invariant culture). As a result, in culture-sensitive comparisons, strings that contain embedded null characters can be considered equal to strings that do not.
Although string comparison methods disregard embedded null characters, string search methods such as String.Contains, String.EndsWith, String.IndexOf, String.LastIndexOf, and String.StartsWith do not. |
The following example performs a culture-sensitive comparison of the string "Aa" with a similar string that contains several embedded null characters between "A" and "a", and shows how the two strings are considered equal.
using System; public class Example { public static void Main() { string str1 = "Aa"; string str2 = "A" + new String('\u0000', 3) + "a"; Console.WriteLine("Comparing '{0}' ({1}) and '{2}' ({3}):", str1, ShowBytes(str1), str2, ShowBytes(str2)); Console.WriteLine(" With String.Compare:"); Console.WriteLine(" Current Culture: {0}", String.Compare(str1, str2, StringComparison.CurrentCulture)); Console.WriteLine(" Invariant Culture: {0}", String.Compare(str1, str2, StringComparison.InvariantCulture)); Console.WriteLine(" With String.Equals:"); Console.WriteLine(" Current Culture: {0}", String.Equals(str1, str2, StringComparison.CurrentCulture)); Console.WriteLine(" Invariant Culture: {0}", String.Equals(str1, str2, StringComparison.InvariantCulture)); } private static string ShowBytes(string str) { string hexString = String.Empty; for (int ctr = 0; ctr < str.Length; ctr++) { string result = String.Empty; result = Convert.ToInt32(str[ctr]).ToString("X4"); result = " " + result.Substring(0,2) + " " + result.Substring(2, 2); hexString += result; } return hexString.Trim(); } } // The example displays the following output: // Comparing 'Aa' (00 41 00 61) and 'A a' (00 41 00 00 00 00 00 00 00 61): // With String.Compare: // Current Culture: 0 // Invariant Culture: 0 // With String.Equals: // Current Culture: True // Invariant Culture: True
However, the strings are not considered equal when you use ordinal comparison, as the following example shows.
Console.WriteLine("Comparing '{0}' ({1}) and '{2}' ({3}):", str1, ShowBytes(str1), str2, ShowBytes(str2)); Console.WriteLine(" With String.Compare:"); Console.WriteLine(" Ordinal: {0}", String.Compare(str1, str2, StringComparison.Ordinal)); Console.WriteLine(" With String.Equals:"); Console.WriteLine(" Ordinal: {0}", String.Equals(str1, str2, StringComparison.Ordinal)); // The example displays the following output: // Comparing 'Aa' (00 41 00 61) and 'A a' (00 41 00 00 00 00 00 00 00 61): // With String.Compare: // Ordinal: 97 // With String.Equals: // Ordinal: False
Case-insensitive ordinal comparisons are the next most conservative approach. These comparisons ignore most casing; for example, "windows" matches "Windows". When dealing with ASCII characters, this policy is equivalent to StringComparison.Ordinal, except that it ignores the usual ASCII casing. Therefore, any character in [A, Z] (\u0041-\u005A) matches the corresponding character in [a,z] (\u0061-\007A). Casing outside the ASCII range uses the invariant culture's tables. Therefore, the following comparison:
is equivalent to (but faster than) this comparison:
These comparisons are still very fast.
The string behavior of the file system, registry keys and values, and environment variables is best represented by StringComparison.OrdinalIgnoreCase. |
Both StringComparison.Ordinal and StringComparison.OrdinalIgnoreCase use the binary values directly, and are best suited for matching. When you are not sure about your comparison settings, use one of these two values. However, because they perform a byte-by-byte comparison, they do not sort by a linguistic sort order (like an English dictionary) but by a binary sort order. The results may look odd in most contexts if displayed to users.
Ordinal semantics are the default for String.Equals overloads that do not include a StringComparison argument (including the equality operator). In any case, we recommend that you call an overload that has a StringComparison parameter.
String Operations that Use the Invariant Culture
Comparisons with the invariant culture use the CompareInfo property returned by the static CultureInfo.InvariantCulture property. This behavior is the same on all systems; it translates any characters outside its range into what it believes are equivalent invariant characters. This policy can be useful for maintaining one set of string behavior across cultures, but it often provides unexpected results.
Case-insensitive comparisons with the invariant culture use the static CompareInfo property returned by the static CultureInfo.InvariantCulture property for comparison information as well. Any case differences among these translated characters are ignored.
Comparisons that use StringComparison.InvariantCulture and StringComparison.Ordinal work identically on ASCII strings. However, StringComparison.InvariantCulture makes linguistic decisions that might not be appropriate for strings that have to be interpreted as a set of bytes. The CultureInfo.InvariantCulture.CompareInfo
object makes the Compare method interpret certain sets of characters as equivalent. For example, the following equivalence is valid under the invariant culture:
InvariantCulture: a + ̊ = å
The LATIN SMALL LETTER A character "a" (\u0061), when it is next to the COMBINING RING ABOVE character "+ " ̊" (\u030a), is interpreted as the LATIN SMALL LETTER A WITH RING ABOVE character "å" (\u00e5). As the following example shows, this behavior differs from ordinal comparison.
string separated = "\u0061\u030a"; string combined = "\u00e5"; Console.WriteLine("Equal sort weight of {0} and {1} using InvariantCulture: {2}", separated, combined, String.Compare(separated, combined, StringComparison.InvariantCulture) == 0); Console.WriteLine("Equal sort weight of {0} and {1} using Ordinal: {2}", separated, combined, String.Compare(separated, combined, StringComparison.Ordinal) == 0); // The example displays the following output: // Equal sort weight of a° and å using InvariantCulture: True // Equal sort weight of a° and å using Ordinal: False
When interpreting file names, cookies, or anything else where a combination such as "å" can appear, ordinal comparisons still offer the most transparent and fitting behavior.
On balance, the invariant culture has very few properties that make it useful for comparison. It does comparison in a linguistically relevant manner, which prevents it from guaranteeing full symbolic equivalence, but it is not the choice for display in any culture. One of the few reasons to use StringComparison.InvariantCulture for comparison is to persist ordered data for a cross-culturally identical display. For example, if a large data file that contains a list of sorted identifiers for display accompanies an application, adding to this list would require an insertion with invariant-style sorting.
The following table outlines the mapping from semantic string context to a StringComparison enumeration member.
Data | Behavior | Corresponding System.StringComparison value |
Case-sensitive internal identifiers. Case-sensitive identifiers in standards such as XML and HTTP. Case-sensitive security-related settings. | A non-linguistic identifier, where bytes match exactly. | Ordinal |
Case-insensitive internal identifiers. Case-insensitive identifiers in standards such as XML and HTTP. File paths. Registry keys and values. Environment variables. Resource identifiers (for example, handle names). Case-insensitive security-related settings. | A non-linguistic identifier, where case is irrelevant; especially data stored in most Windows system services. | OrdinalIgnoreCase |
Some persisted, linguistically relevant data. Display of linguistic data that requires a fixed sort order. | Culturally agnostic data that still is linguistically relevant. | InvariantCulture -or- InvariantCultureIgnoreCase |
Data displayed to the user. Most user input. | Data that requires local linguistic customs. | CurrentCulture -or- CurrentCultureIgnoreCase |
The following sections describe the methods that are most commonly used for string comparison.
Default interpretation: StringComparison.CurrentCulture.
As the operation most central to string interpretation, all instances of these method calls should be examined to determine whether strings should be interpreted according to the current culture, or dissociated from the culture (symbolically). Typically, it is the latter, and a StringComparison.Ordinal comparison should be used instead.
The System.Globalization.CompareInfo class, which is returned by the CultureInfo.CompareInfo property, also includes a Compare method that provides a large number of matching options (ordinal, ignoring white space, ignoring kana type, and so on) by means of the CompareOptions flag enumeration.
Default interpretation: StringComparison.CurrentCulture.
This method does not currently offer an overload that specifies a StringComparison type. It is usually possible to convert this method to the recommended String.Compare(String, String, StringComparison) form.
Types that implement the IComparable and IComparable<T> interfaces implement this method. Because it does not offer the option of a StringComparison parameter, implementing types often let the user specify a StringComparer in their constructor. The following example defines a FileName
class whose class constructor includes a StringComparer parameter. This StringComparer object is then used in the FileName.CompareTo
using System; public class FileName : IComparable { string fname; StringComparer comparer; public FileName(string name, StringComparer comparer) { if (String.IsNullOrEmpty(name)) throw new ArgumentNullException("name"); this.fname = name; if (comparer != null) this.comparer = comparer; else this.comparer = StringComparer.OrdinalIgnoreCase; } public string Name { get { return fname; } } public int CompareTo(object obj) { if (obj == null) return 1; if (! (obj is FileName)) return comparer.Compare(this.fname, obj.ToString()); else return comparer.Compare(this.fname, ((FileName) obj).Name); } }
Default interpretation: StringComparison.Ordinal.
The String class lets you test for equality by calling either the static or instance Equals method overloads, or by using the static equality operator. The overloads and operator use ordinal comparison by default. However, we still recommend that you call an overload that explicitly specifies the StringComparison type even if you want to perform an ordinal comparison; this makes it easier to search code for a certain string interpretation.
String.ToUpper and String.ToLower
Default interpretation: StringComparison.CurrentCulture.
You should be careful when you use these methods, because forcing a string to a uppercase or lowercase is often used as a small normalization for comparing strings regardless of case. If so, consider using a case-insensitive comparison.
The String.ToUpperInvariant and String.ToLowerInvariant methods are also available. ToUpperInvariant is the standard way to normalize case. Comparisons made using StringComparison.OrdinalIgnoreCase are behaviorally the composition of two calls: calling ToUpperInvariant on both string arguments, and doing a comparison using StringComparison.Ordinal.
Overloads are also available for converting to uppercase and lowercase in a specific culture, by passing a CultureInfo object that represents that culture to the method.
Char.ToUpper and Char.ToLower
Default interpretation: StringComparison.CurrentCulture.
These methods work similarly to the String.ToUpper and String.ToLower methods described in the previous section.
String.StartsWith and String.EndsWith
Default interpretation: StringComparison.CurrentCulture.
By default, both of these methods perform a culture-sensitive comparison.
String.IndexOf and String.LastIndexOf
Default interpretation: StringComparison.CurrentCulture.
There is a lack of consistency in how the default overloads of these methods perform comparisons. All String.IndexOf and String.LastIndexOf methods that include a Char parameter perform an ordinal comparison, but the default String.IndexOf and String.LastIndexOf methods that include a String parameter perform a culture-sensitive comparison.
If you call the String.IndexOf(String) or String.LastIndexOf(String) method and pass it a string to locate in the current instance, we recommend that you call an overload that explicitly specifies the StringComparison type. The overloads that include a Char argument do not allow you to specify a StringComparison type.
Some non-string methods that have string comparison as a central operation use the StringComparer type. The StringComparer class includes six static properties that return StringComparer instances whose StringComparer.Compare methods perform the following types of string comparisons:
Culture-sensitive string comparisons using the current culture. This StringComparer object is returned by the StringComparer.CurrentCulture property.
Case-insensitive comparisons using the current culture. This StringComparer object is returned by the StringComparer.CurrentCultureIgnoreCase property.
Culture-insensitive comparisons using the word comparison rules of the invariant culture. This StringComparer object is returned by the StringComparer.InvariantCulture property.
Case-insensitive and culture-insensitive comparisons using the word comparison rules of the invariant culture. This StringComparer object is returned by the StringComparer.InvariantCultureIgnoreCase property.
Ordinal comparison. This StringComparer object is returned by the StringComparer.Ordinal property.
Case-insensitive ordinal comparison. This StringComparer object is returned by the StringComparer.OrdinalIgnoreCase property.
Array.Sort and Array.BinarySearch
Default interpretation: StringComparison.CurrentCulture.
When you store any data in a collection, or read persisted data from a file or database into a collection, switching the current culture can invalidate the invariants in the collection. The Array.BinarySearch method assumes that the elements in the array to be searched are already sorted. To sort any string element in the array, the Array.Sort method calls the String.Compare method to order individual elements. Using a culture-sensitive comparer can be dangerous if the culture changes between the time that the array is sorted and its contents are searched. For example, in the following code, storage and retrieval operate on the comparer that is provided implicitly by the Thread.CurrentThread.CurrentCulture
property. If the culture can change between the calls to StoreNames
and DoesNameExist
, and especially if the array contents are persisted somewhere between the two method calls, the binary search may fail.
// Incorrect. string []storedNames; public void StoreNames(string [] names) { int index = 0; storedNames = new string[names.Length]; foreach (string name in names) { this.storedNames[index++] = name; } Array.Sort(names); // Line A. } public bool DoesNameExist(string name) { return (Array.BinarySearch(this.storedNames, name) >= 0); // Line B. }
A recommended variation appears in the following example, which uses the same ordinal (culture-insensitive) comparison method both to sort and to search the array. The change code is reflected in the lines labeled Line A
and Line B
in the two examples.
// Correct. string []storedNames; public void StoreNames(string [] names) { int index = 0; storedNames = new string[names.Length]; foreach (string name in names) { this.storedNames[index++] = name; } Array.Sort(names, StringComparer.Ordinal); // Line A. } public bool DoesNameExist(string name) { return (Array.BinarySearch(this.storedNames, name, StringComparer.Ordinal) >= 0); // Line B. }
If this data is persisted and moved across cultures, and sorting is used to present this data to the user, you might consider using StringComparison.InvariantCulture, which operates linguistically for better user output but is unaffected by changes in culture. The following example modifies the two previous examples to use the invariant culture for sorting and searching the array.
// Correct. string []storedNames; public void StoreNames(string [] names) { int index = 0; storedNames = new string[names.Length]; foreach (string name in names) { this.storedNames[index++] = name; } Array.Sort(names, StringComparer.InvariantCulture); // Line A. } public bool DoesNameExist(string name) { return (Array.BinarySearch(this.storedNames, name, StringComparer.InvariantCulture) >= 0); // Line B. }
Collections Example: Hashtable Constructor
Hashing strings provides a second example of an operation that is affected by the way in which strings are compared.
The following example instantiates a Hashtable object by passing it the StringComparer object that is returned by the StringComparer.OrdinalIgnoreCase property. Because a class StringComparer that is derived from StringComparer implements the IEqualityComparer interface, its GetHashCode method is used to compute the hash code of strings in the hash table.
const int initialTableCapacity = 100; Hashtable h; public void PopulateFileTable(string directory) { h = new Hashtable(initialTableCapacity, StringComparer.OrdinalIgnoreCase); foreach (string file in Directory.GetFiles(directory)) h.Add(file, File.GetCreationTime(file)); } public void PrintCreationTime(string targetFile) { Object dt = h[targetFile]; if (dt != null) { Console.WriteLine("File {0} was created at time {1}.", targetFile, (DateTime) dt); } else { Console.WriteLine("File {0} does not exist.", targetFile); } }
When you display non-string data such as numbers and dates and times to users, format them by using the user's cultural settings. By default, the String.Format method and the ToString
methods of the numeric types and the date and time types use the current thread culture for formatting operations. To explicitly specify that the formatting method should use the current culture, you can call an overload of a formatting method that has a provider
parameter, such as String.Format(IFormatProvider, String, Object[]) or DateTime.ToString(IFormatProvider), and pass it the CultureInfo.CurrentCulture property.
You can persist non-string data either as binary data or as formatted data. If you choose to save it as formatted data, you should call a formatting method overload that includes a provider
parameter and pass it the CultureInfo.InvariantCulture property. The invariant culture provides a consistent format for formatted data that is independent of culture and machine. In contrast, persisting data that is formatted by using cultures other than the invariant culture has a number of limitations:
The data is likely to be unusable if it is retrieved on a system that has a different culture, or if the user of the current system changes the current culture and tries to retrieve the data.
The properties of a culture on a specific computer can differ from standard values. At any time, a user can customize culture-sensitive display settings. Because of this, formatted data that is saved on a system may not be readable after the user customizes cultural settings. The portability of formatted data across computers is likely to be even more limited.
International, regional, or national standards that govern the formatting of numbers or dates and times change over time, and these changes are incorporated into Windows operating system updates. When formatting conventions change, data that was formatted by using the previous conventions may become unreadable.
The following example illustrates the limited portability that results from using culture-sensitive formatting to persist data. The example saves an array of date and time values to a file. These are formatted by using the conventions of the English (United States) culture. After the application changes the current thread culture to French (Switzerland), it tries to read the saved values by using the formatting conventions of the current culture. The attempt to read two of the data items throws a FormatException exception, and the array of dates now contains two incorrect elements that are equal to MinValue.
using System; using System.Globalization; using System.IO; using System.Text; using System.Threading; public class Example { private static string filename = @".\dates.dat"; public static void Main() { DateTime[] dates = { new DateTime(1758, 5, 6, 21, 26, 0), new DateTime(1818, 5, 5, 7, 19, 0), new DateTime(1870, 4, 22, 23, 54, 0), new DateTime(1890, 9, 8, 6, 47, 0), new DateTime(1905, 2, 18, 15, 12, 0) }; // Write the data to a file using the current culture. WriteData(dates); // Change the current culture. Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("fr-CH"); // Read the data using the current culture. DateTime[] newDates = ReadData(); foreach (var newDate in newDates) Console.WriteLine(newDate.ToString("g")); } private static void WriteData(DateTime[] dates) { StreamWriter sw = new StreamWriter(filename, false, Encoding.UTF8); for (int ctr = 0; ctr < dates.Length; ctr++) { sw.Write("{0}", dates[ctr].ToString("g", CultureInfo.CurrentCulture)); if (ctr < dates.Length - 1) sw.Write("|"); } sw.Close(); } private static DateTime[] ReadData() { bool exceptionOccurred = false; // Read file contents as a single string, then split it. StreamReader sr = new StreamReader(filename, Encoding.UTF8); string output = sr.ReadToEnd(); sr.Close(); string[] values = output.Split( new char[] { '|' } ); DateTime[] newDates = new DateTime[values.Length]; for (int ctr = 0; ctr < values.Length; ctr++) { try { newDates[ctr] = DateTime.Parse(values[ctr], CultureInfo.CurrentCulture); } catch (FormatException) { Console.WriteLine("Failed to parse {0}", values[ctr]); exceptionOccurred = true; } } if (exceptionOccurred) Console.WriteLine(); return newDates; } } // The example displays the following output: // Failed to parse 4/22/1870 11:54 PM // Failed to parse 2/18/1905 3:12 PM // // 05.06.1758 21:26 // 05.05.1818 07:19 // 01.01.0001 00:00 // 09.08.1890 06:47 // 01.01.0001 00:00 // 01.01.0001 00:00
However, if you replace the CultureInfo.CurrentCulture property with CultureInfo.InvariantCulture in the calls to DateTime.ToString(String, IFormatProvider) and DateTime.Parse(String, IFormatProvider), the persisted date and time data is successfully restored, as the following output shows.
06.05.1758 21:26 05.05.1818 07:19 22.04.1870 23:54 08.09.1890 06:47 18.02.1905 15:12


text:
Subject: | Velocity! | |
Date: | 2003-07-17 03:29:58 | |
From: | anonymous2 | |
Response to: Velocity!
I had created a Mailing component using the XML -> MessageFormat architecture around 1.5 years back. Due to the limitation of those 9 message replacements, the classes who will create theese message holders were very complicated. Now I revamped the whole stuff to use Velocity and it is the excellent !!!! When it comes to dynamically merging the mail template and the data (e.g. Registartion confirmation to take easiest use-case) I found the Velocity based solution as best. |


text:
Sebastian Mallaby's fascinating book on the World Bank is both timely and an excellent read. It appears just as the Bretton Woods institutions celebrate their 60th anniversary next week, and the author - a distinguished English journalist formerly with the Economist and now a columnist for the Washington Post - has a talent for brilliant writing and penetrating analysis.
He brings to the book (which, I must add for the sake of transparency, was finished at the Council on Foreign Relations) an ability to tell his tale engagingly and with copious amounts of the kind of "inside" gossip that enlivens the pages of his newspaper.
Mallaby weaves his account of the Bank's recent upheavals around James Wolfensohn, its president, a man he characterises as having enormous talent and gargantuan ambition. He is wrong on the talent but right on the ambition.
The reader is confronted with an almost mythical figure, "a fantastic force of nature", which reflects the public image that Mr Wolfensohn has invented for himself.
He fenced for Australia in the Olympics (but Australia is known for cricket and tennis). He has played the cello at Carnegie Hall with his friends Yo-Yo Ma and other world-class performers (but musicians, who are as critical of one another as economists, are indulgent when it comes to their patrons).
Mallaby calls Mr Wolfensohn "the most ambitious man I know". Perhaps Mallaby is only betraying his own origins: it is vulgar in England to wear one's ambition on one's lapel. More probably, it is part of the hype that Mallaby embraces to add drama to his narrative. What is certain is that, by zeroing in on Mr Wolfensohn's huge ambition, Mallaby has put his finger on the fatal flaw that has buried his tenure under an avalanche of failures.
He documents beautifully how Mr Wolfensohn gained the Bank job, which he had eyed for many years, by much skilful networking. While he had little familiarity with developmental problems and humility was in order, he came into the job instead with the arrogant pretension that here at long last was the man of vision and humanity the Bank had been waiting for.
This meant that he was obsessed by the compulsion to be novel. Thus he plunged into the Comprehensive Development Framework, intended to help countries manage their development strategies. But if all this means is that spending on anything must be put into a framework, that is precisely what countries such as India have been doing since the 1950s. Besides, the bank and the International Monetary Fund were already producing policy framework papers that laid out a country's total development strategy: Mallaby is at his best when he describes Mr Wolfensohn's anger at suddenly discovering this blow to his maniacal quest for novelty.
Mr Wolfensohn's deepest error with the CDF was his argument that everything mattered. That, however, makes no sense. If everything matters, nothing does. Priorities must be set. In practice, the approach also legitimated Mr Wolfensohn's throwing money around, like Eva Peron, on peripherals such as culture projects. He also flirted with religious leaders, offending secular principles that he ill understood. The CDF possibly served, in the end, to advance Mr Wolfensohn's ambition for a second term, by enabling him to extend his patronage to all and sundry.
Mr Wolfensohn's vast ambition led also to his biggest self-inflicted failure. Mallaby documents brilliantly how he brought the international non-governmental organisations into the bank, thoughtlessly currying their favour and their enthusiasm for him, only to have them bite the hand that he had extended. The account of how pressure groups such as the Rainforest Action Network have thrown a monkey wrench into projects that would have helped poor nations is among the most remarkable in the book.
Ironically, Mr Wolfensohn has been at his best when he has followed rather than led. Debt relief had been sought passionately by many of us since the 1980s. He conceded its necessity and backed it. Corruption had also long been condemned as a curse but the bank had resisted getting involved in "local politics". Mr Wolfensohn changed the bank's course.
There is little reason to doubt, however, that the time for these initiatives had come. A more focused, less ego-driven president would surely have led the bank into these areas. He would also have avoided the mistakes that Mr Wolfensohn made in so many others. Whoever succeeds Mr Wolfensohn needs to read this masterly book.
The writer is University Professor at Columbia University and a senior fellow at the Council on Foreign Relations


text:
Warren County Career Center Admissions Stats |
$60 | Undergrad Application Fee |
Many colleges put a great deal of weight on student ACT/SAT test scores when considering applications. Cappex can help you see how you rank compared to students who have been accepted to Warren County Career Center
Address: | 3525 North State Route 48 Lebanon, OH 45036-1099 |
Phone: | (513) 932-8145 |
General Site: | www.mywccc.org |
Admissions: | http://www.mywccc.org |
Application: | http://www.mywccc.org |
Looks like there are no "Tips for Prospective Students" reviews for Warren County Career Center.
Have you been to this college? Take a moment to create an account with Cappex and tell us your thoughts. Rating this school will make you eligible to win the Cappex Reviews Scholarship!


text:
WASHINGTON -- About 800,000 people signed up for private health plans through Obamacare in January, pushing total enrollment to 3 million as negative perceptions about the program give way to more practical needs.
Kathleen Sebelius, secretary of the Department of Health and Human Services, touted the January figures in a speech Friday in Jacksonville, Fla., which add to the 2.2 million who enrolled from Oct. 1 through December.
The agency said it expected the numbers to grow.
The acceleration may indicate increased familiarity and interest in the Patient Protection and Affordable Care Act among people who previously had heard only of its problems, said Ron Pollack, executive director of the advocacy group Families USA. Public opinion about Obamacare plunged after the Oct. 1 debut of the insurance exchanges greeted consumers with website breakdowns, higher prices and potentially broken promises.
McDonnell pleads not guilty
RICHMOND -- Former Virginia Governor Robert McDonnell, once a rising star in the national Republican Party, pleaded not guilty to federal charges he used his office to help a businessman in exchange for more than $165,000 in loans and gifts.
Mr. McDonnell, whose term ended Jan. 11, and his wife, Maureen, were allowed to remain free without bail while awaiting trial after appearing today in Richmond federal court. Both were ordered by U.S. Magistrate Judge David Novak to surrender their passports. They face as long as 30 years in prison if convicted on the most serious counts.
The trial, on a grand jury indictment for fraud, conspiracy and obstruction of an official proceeding, was set for July 28.
Port won't pick up legal tab
NEW YORK -- The Port Authority of New York and New Jersey says it won't pay the legal bills of a former executive accused of restricting access to the George Washington Bridge as political payback.
Traffic lane closures created days of gridlock in Fort Lee, N.J., whose Democratic mayor didn't endorse Republican Gov. Chris Christie.
Port Authority spokesman Steve Coleman says the agency informed David Wildstein on Friday that covering his legal expenses wasn't warranted under its bylaws. Those bylaws generally call for current and former employees to get their legal bills covered for job-related activities, but not if there's misconduct or fraud.
Audit firm settles with SEC
WASHINGTON -- The big accounting firm KPMG has agreed to pay $8.2 million to settle federal regulators' charges of compromising its independence by providing non-audit services to companies whose books it audited.
The Securities and Exchange Commission announced the settlement Friday with New York-based KPMG, one of the so-called Big Four accounting firms with Deloitte, Ernst & Young and PricewaterhouseCoopers.
The SEC said KPMG violated auditor independence rules by providing prohibited non-audit services like bookkeeping to the companies involved. The companies weren't named. In addition, the SEC said some KPMG employees owned stock in companies that were KPMG audit clients.KPMG neither admitted nor denied the allegations.
Ex-Senate aid kills self
WASHINGTON -- A former chief of staff to Sen. Lamar Alexander, R-Tenn., who faced charges of possessing and distributing child pornography, hanged himself and died Thursday in a Maryland home, his family and police officials said Friday.
Jesse Ryan Loskarn, 35, was found dead around noon Thursday in the basement of his parents' house in Sykesville, Md., according to the Carroll County Sheriff's Department. Mr. Loskarn died after hanging himself, according to the Office of the Chief Medical Examiner of Maryland.
JPMorgan chief's pay jumps
NEW YORK -- Jamie Dimon, JPMorgan's chief executive, has been awarded total pay of $20 million for 2013, a huge increase over the amount he received for 2012, according to a regulatory filing released Friday.
The bank's board of directors approved the increase even though a steady stream of scandals and a raft of regulatory actions have in recent months cast doubt on Mr. Dimon's leadership at the nation's largest bank. The big raise for 2013 came in the face of opposition from a vocal minority of board members, who wanted Mr. Dimon's compensation for 2013 to be roughly equal to his pay for 2012, which totaled $11.5 million.


text:
Brendon McCullum and Dean Brownlie hit half-centuries as New Zealand fought back on the second day of the first Test against South Africa at Newlands on Thursday.
New Zealand were four for 169 in their second innings at the close, still 133 short of avoiding an innings defeat.
McCullum made 51 and Brownlie was undefeated on 69.
They were still likely to lose the match but it was a much better showing by the tourists after a calamitous first day during which they were bowled out for 45 and then leaked runs at almost four an over.
New Zealand's bowlers and fielders gave an improved performance, restricting South Africa to 97 runs and claiming five wickets in 31.2 overs before the home side declared at eight for 347, a lead of 302.
"Compared to yesterday, it was immense," said Black Caps fast bowler Chris Martin.
"The way we turned up with the ball was much better. We were more consistent and we dried up the runs which brought the five wickets. That set the tone for the way our batters went out and put up a much sterner fight."
Martin said harsh words had not been necessary for the players after the first day debacle.
"They were quite reasoned, quite straightforward -- the best way to deal with it was shown by the way they applied themselves today."
AB de Villiers made 67 for South Africa before being dismissed shortly before the declaration while Trent Boult and Martin both took three wickets for New Zealand.
Visions of the first day collapse were revived when Martin Guptill was dismissed by Dale Steyn in the first over of the second innings.
But McCullum and Kane Williamson dug in to blunt South Africa's renowned pace attack, although they only added 29 before Williamson was caught at gully off Jacques Kallis.
The tempo changed after tea as McCullum and Brownlie counter-attacked, scoring 77 in the first 10 overs after the interval as both Vernon Philander and Steyn took some punishment.
Both batsmen benefitted from fielding lapses.
Brownlie was dropped at gully by Dean Elgar off Steyn when he had 23 and again one run later in the following over by Alviro Petersen, also at gully, off Philander.
Then McCullum, on 39, survived a sharp chance to Kallis at second slip off Steyn. The three dropped catches came in successive overs.
"We played terrible cricket," admitted Petersen, who added only three runs at the start of the day before being bowled by Boult for 106.
"The bowling wasn't up to scratch, the catching wasn't up to scratch. For that hour or so it was not the standard we set ourselves."
McCullum made 51 before he played around his pads and was leg before wicket to left-arm spinner Robin Peterson, bowling for the first time in the match.
Brownlie took advantage of South Africa's attacking fields as he hurried to a half-century off just 44 balls, with eight fours but his scoring rate slowed down as he saw out the day.
He had faced 89 balls, batting for almost three hours, by the close.
Brownlie was given out, caught down the legside by wicketkeeper AB de Villiers off Steyn when he had 68. He sought a review of umpire Rod Tucker's decision which proved the ball had not touched his bat.
Petersen said the pitch was difficult to bat on.
"I said after the first day it was like a day three or day four wicket. I don't know if it was over-prepared. From a batting point of view you had to be disciplined."


text:
Hey, come to the meeting room on Thursday, Feb. 21 to play your favorite music video games. We'll have Just Dance, Nick Dance 2 (to see if it's better than Just Dance), Rock Band and SingStar Pop. We may even create something for YouTube! Come play or listen and enjoy! We start at 4 pm.
[1] http://www.hcpl.net/users/clara-maynard
[2] http://www.hcpl.net/taxonomy/term/1


text:
Inherited Disorders and Birth Defects |
Paternity11/06/2007 |
Can 1 type A positive and type AB positive produce a type O negative?
No, this combination cannot produce this blood type, but could possibly produce this Rh factor.
If someone has blood type A, they must have at least one copy of the A form (called an allele) of the ABO gene, but they could have two copies. So a person with blood type A can be either AA or AO.
The same thing is true for blood type B - that person can be either BB or BO.
Someone with blood type AB must have both the A and B alleles. Someone with the blood type O can only have O. In the case you mention, the child must be either blood type A, blood type B or blood type AB - not O.
Blood type = A
Genes = Either AA or AO
Either BB or BO
For the Rh factor, the Rh proteins are arranged into 2 groups - either positive or negative. Each person has two forms (allele) of the Rh gene and the positive form or allele is positive. People with 2 ++ alleles are Rh positive; people with one + and one - allele are Rh positive and people with 2 -- alleles are Rh negative.
Of the different combinations people can have - if both parents are Rh positive, in order to have a child who is Rh negative then - then each parent must have one + and one - allele.
Anne Matthews, RN, PhD Associate Professor of Genetics School of Medicine Case Western Reserve University |


text:
more useful options | |
PerlMonks |
Re: Troubleshooting Perl CGI scriptsby bradcathey (Prior) |
on Aug 06, 2004 at 04:04 UTC ( #380446=note: print w/replies, xml ) | Need Help?? |
Excellent "tutorial!" I'm racking my brain and the only thing I can add is to use Data::Dumper. And though it's better to use the Debugger, I resort to print statements for quick traces. Thanks for your hard work.
—Brad "Don't ever take a fence down until you know the reason it was put up. " G. K. Chesterton
In Section


text:
Career Opportunities
Established in 1923 with our head office based in Kingston, Ontario, Empire Life is an independently owned, Canadian company with career opportunities from coast to coast.
We offer an environment that encourages the pursuit of personal and professional success. We acknowledge and reward talent, and support our employees in achieving and exceeding individual and organizational goals.
At the heart of our success is our focus on customers. We provide protection and financial security for Canadians—with a personal touch.


text:
- Item 6 of 7 in Collection: Louis L. McAllister Photographs
- | Return to collection
Item Description
Title: Weddings
- McAllister, L. L. (Louis L.), 1877-1963
Source Document
Extent: 1 image
Publisher: University of Vermont, Bailey/Howe Library, Special Collections
August 25, 1956. Photo of a wedding ceremony in the sanctuary of First Baptist Church, Burlington, Vermont. The bride Betty Phillips, her father Carl Phillips and groom R. Chandler Blodgett, Jr. stand before the Rev. Elden G. Bucklin with members of the wedding party on either side. Mrs. Katherine (Eckley) Dopp, organist.
Genre(s): photographs, black-and-white photographs
Type of Resource: still image
Parent Collections
Access Conditions
For usage rights related to this resource please visit: http://cdi.uvm.edu/rights/
More information.
Permanent Link:
Preferred citation
Weddings, Louis L. McAllister Photographs, Box A19, Folder 05, Item 36, http://cdi.uvm.edu/collections/item/mcalA19F05i36 (accessed March 30, 2017)


text:
Celtics 96, Nets 97 - October 16, 2012
Kris Joseph missed a 3-pointer as the final buzzer sounded and the Celtics fell to the Nets 97-96 on Tuesday night in Boston. Mirza Teletovic hit the go-ahead free throw with 4.1 seconds remaining in the game to push the Nets ahead of the C's, who had led for most of the contest.
Paul Pierce drained six 3-pointers on his way to a game-high 29 points in Tuesday's loss. Pierce hit three of those 3-pointers in the third quarter, a frame that saw the C's shoot an efficient 67 percent from the field for 34 points. Courtney Lee also found his shot and finished with 13 points and four assists.


text:
Print-friendly Course Description and Outline
This course is most appropriate for professionals involved in investigating potential frauds within an organization, is about the different types of fraud, the key federal statutes, investigative guiding principles and process, and interviewing skills, document analysis, surveillance and other techniques. It is a joint effort between The IIA and Deloitte & Touche.
Most courses can be delivered through on-site training. You might be surprised that the organization leading the profession is just as committed to the delivery of affordable training.
Contact us by calling +1-407-937-1388 or send an e-mail to firstname.lastname@example.com.


text:
Questioning Kobe
Countless people (especially media people) have speculated that Kobe Bryant just isn't trying, but I'm not really sure if a single one had posed the actual question to Bryant. So I did today. It had to be asked after Phil Jackson today came up with every possible way to call Bryant out and say Bryant had failed to bring his "heart and soul" to the team so far this season.
If you wanted to see the flash of the ol' Bryant fire, it definitely flickered there as he said his fire was the least of Jackson's concerns.
"I'm ready to play, period," Bryant said. "You don't have to worry about me."
I would not be a bit surprised if Jackson burned Bryant so badly with comments so that we would take the criticisms to Bryant and force him to address them. Jackson had asked me early in his interview what Bryant had said about the state of his sprained wrist, and I had said we hadn't talked to Bryant yet. So there's that distinct possibility; Jackson is a master manipulator in these senses, and there is no doubt that he wanted to get word out that he wasn't satisfied with what Bryant was giving him.
Jackson gave the team the day off Sunday, so that just sets things up for Bryant -- perhaps stewing over being accused of half-steppin' -- to bring it Monday (wrist or no wrist, I'm talking about the attitude) when the team gathers for its final practice before the Tuesday season opener.
Bryant certainly didn't buy the theory I threw out there that people saw his poor exhibition-game play as related to his trade situation. He found it laughable -- he laughed as he answered, actually -- that anyone was taking his exhibition outings that seriously.
"I experiment with different things," he said. "I have a different role this year. It's not something where people should be concerned I'm going to come out and play like crap. I'll be ready to go. Let's not push the panic button over a couple of preseason games."
Most Popular
- Missing 16-year-old girl from Santa Ana spotted arguing with an unknown man in Anaheim. H
- The Classic festival: How to see Fleetwood Mac, The Eagles, Journey at Dodger Stadium
- $80,000 later, why this trio gave up their 'Star Trek' wax figures, Enterprise replica
- Seal Beach mass shooting: State attorney general says he'll seek death penalty against Sc
- Man arrested on suspicion of DUI after driving his truck through a Fullerton Circle K sto
User Agreement
Comments are encouraged, but you must follow our Privacy Policy Policy & Terms of Use
Keep it civil and stay on topic. No profanity, vulgarity, racial slurs or personal attacks. People who harass others or joke about tragedies will be blocked. By posting your comment, you agree to allow Orange County Register Communications, Inc. the right to republish your name and comment in additional Register publications without any notification or payment.


text:
Climbing into Pyramids!
Trip Start
Feb 10, 2005
Trip End
Jan 05, 2006
I was in the exhibit room at the same time as a lot of British tourists (seniors). They had the most insightful comments I heard. "Imagine a civilization that could create something like this more than 3000 years ago." "When you think about it, it must be the biggest symbol of excess in any century." "This must be the greatest icon of civilization." "A masterpiece..."
Our first stop was Saqqara where the oldest (first) pyramids in Egypt were built. Symbolically, the pyramid's steps represent a staircase by which Pharaoh's spirit could mount to the starry heaven.
While walking through the ruins, one of the police officers asked if I wanted to take his picture, so I did. Then he motions at me and said no no! Then he says to give him money. I said I had none, gave him nothing, and walked away. I should point out, he had a machine gun leaning near his knee. This type of thing happens in Canada too, that is, when you pay the man with a gun. It's called a mugging.
Saqqara lies ten or so miles south of Giza, near the ancient capital of Memphis, which was our next stop. The Memphis museum was small, but there were some very impressive statues.
Our last stop was Dashur, where we climbed inside the Red pyramid, and saw the unique Bent pyramid. Our day ended at the Khan al-Khalili market where we shopped for souvenirs, then called it a day. Tomorrow it's back to work.


text:
Pretty sick. Looks like this is the newest racist thing for black kids to beat up white folks. These cowards don't even have the honor to face someone in fair fight as they just sucker punch their victims unaware.
Check it out:
The major television media are ignoring the "knockout game," a vicious assault perpetrated by young African-American males against Jews and whites across the nation. In the assaults, unsuspecting pedestrians are punched violently in the head so that the black youths can prance around exhilarated about their successful "knockout." Many concussions and even deaths have been attributed to this "game," but networks such as ABC,
CBS, NBC, CNN, and MSNBC have studiously ignored the issue, according to TruthRevolt.
The black youths committing the assaults have even filmed videos of the incidents showing the violence and their subsequent celebrations, including some called "Polar Bear Hunting" and "Knock the Jew"; in one video one thug laughed, "White girl bleed a lot!"
Thomas Sowell wrote an article for the New York Post acknowledging that the assaults are "nothing new." He continued that the reason the issue has not gone viral previously is that the media have been describing them as "isolated attacks" and leaving out the race factor because of "political correctness" or fear of "inciting a race war":
Sometimes the attacks are reported, but only as isolated attacks by unspecified 'teens' or 'young people' against unspecified victims, without any reference to the racial makeup of the attackers or the victims — and with no mention of racial epithets by the young hoodlums exulting in their own 'achievement.'


text:
I went to the NFC & while there got afew items like hat, key chain etc. Was wondering if anyone knows if there is some where to get more of those hats?
I went to the NFC & while there got afew items like hat, key chain etc. Was wondering if anyone knows if there is some where to get more of those hats?
Did you get it from Brenda Neil? Try www.luckylabpins.com
Jennifer Brown DVM, DACVS-LA, DACVSMR, CCRT, CVSMT
K-9 Sports Vet
HRCH Maranatha's She's Got Phanesse MH, SAR U-1
Maranatha's Black Talon Phallon QA2, JH, SAR U-1
LPK Maranatha's Phame and Fortune SAR U-1 (HRD)
LPK There Is No Substitute
Also the National Clubs and Retriever News sell items via retrieveroutfitteres.com
Josie Ottman
"Life is always a rich and steady time when you are waiting for something to happen or to hatch," E.B. White, Charlotte's Web
Retriever Results -- points, profiles and perspective.
Sign up for weekly results delivered via email.
Continuously updated reports on AKC FTs and HTs and Canadian FTs.
Retriever Outfitters only sells NARC merchandise.
Premier's Carbon Star
by The Era of Zeus MH (NFC Patton x Ivy QAA by FC AFC Rudy) x
HR Buck Creek Lexus by Widgeon JH (NAFC Carbon x Splash QAA by FC AFC Cougar)
Carbon Star Katniss
By FC AFC Windy City's Mighty Mouse (NAFC Carbon x FC AFC Cody) x Flirt'n Lean Lex of Babyduck SH (NAFC Grady x Flirt QAA by NFC Chopper)
Left over apparel is typically marked down and sold, anything left would probably be with someone from the Hostess Committee
There wasn't much of anything left. I know for a fact no hats or other "2013" merchandise was left. The only thing still available was the handler coats that juat had the NRC emblem on them. I "think" they went with who will be next year's merchandising committee head (or at least that was discussed, but I didn't help with loading it up).
Noremac's Fat Boy MH QA2
Cedar Swamp's Linden JH
Cedar Swamp's Cuttin a Rug
Cedar Swamp's Holy Terror SH
Cedar Swamp's Angel in Disguise
Cedar Swamp's Test Pilot
Cedar Swamp's Bonanza
Cedar Swamp's Twisted Sister
Others have also graced our hearts...gone not forgotten.
RC Buckshot of Seven Hickories MH
Ceader Swamp's Deuces Wild SH
Fallen Timber's Second Chance MH
Ceader Swamp's Mac Millett SH
High Tess JH
and several others...


text:
Watch More: I Know That Girl Videos
More from Public
You need to upgrade your Flash Player to view the videos. You can upgrade it (for free) here: Adobe Flash
2.7 Rating | 14881 Views |
Title: Perky tit girl fucked
Added 2011-03-16 16:59:49
iknowthatgirl, perky tits, boat, fuck, blowjob, fuck, public
Description: Sexy girlfriend with a huge perfect set of fake tits and a tight as fuck body knows hot to make her boyfriend cum hard
There are no comments for this video. Please leave your feedback and be the first!
You must be logged in to post comments. Please login or signup (free).
popular searches
Copyright © 2010 WatchGFPorn.com - All Rights Reserved. - Support / Contact
All actors and models appearing on this website are 18 years or older. Section 2257 - DMCA - Sitemap - User Upload - RSS


text:
Talk:Hogwarts Turris Magnus staircase
Back to page | Redirected from Talk:Defence Against the Dark Arts staircase
14,809pages on
this wiki
Add New Page
this wiki
In Harry Potter and the Order of the Phoenix, Harry leaves Classroom 3C, walks down a corridor, makes a turn, and is then outside of McGonagall's office. This staircase doesn't seem to exist in the books. -- Saxon 16:45, September 14, 2015 (UTC)


text:
- Member: fallout161
- Title: Once Upon a Time in Trigun
- Premiered: 2003-08-23
- Categories:
- Movie Trailer Once Upon a Time in Mexico Trailer
- Anime:
- Participation:
Like most of my videos, I decided to do this one on a whim. I'd wanted to do one for awhile, but lack of footage stopped me. Then D_V came over and was like "dude, stop being a ninny." So I read the DVD ripping guide by Ermac and Absolute Destiny (which is, as David said it was, "essential reading"). So I learned to rip DVDs, and now, 3 days afterward, I have a completed video.
It's another short one, but one I'm proud of. I thought the Once Upon a Time in Mexico trailer suited the mood and story of Trigun, especially because both are about "an outlaw who became a legend." That worked very well, I should think. Plus, I really loved the trailer to begin with: it actually had *timing,* like an AMV. Check it out for yourself, those 4 gun cocking sounds match the beat, and a few other things do too. Only thing I don't like is the middle of the trailer. i.e., everything from "A renegade agent" to "but to kill you all." And the very, very end: "are you still standing?" / "still." But hey, I'm not picky.
Also like my last vid, I completed this one in a binge of 3 days, and thank GOD my awesome friend Erin called me 30 minutes after I emailed her, saying she'd bring the rest of the (mandatory) Trigun DVDs, to which I had no other access to. Erin, this Bud's for you.
And yes, there's some interlacing (ugh). This is the first time ripping DVDs, and due to impatience I sorta skipped the de-interlacing stuff, and rushed a bit of the video. I had a deadline to meet, for the AWA AMV contest. Speaking of which... I have to go upload this piece of crap there. ta-ta.
Opinions (14)
- Orig
- Visual
- Sound
- Synch
- Lip
- Effects
- Effort
- Re-View
- Overall
- 9.25
- 8.75
- 9.42
- 9.67
- 9.17
- 9.58
- 8.67
- 9.42
- Link Format Bitrate Codec Duration Filesize Link Check Information Comments
- Direct AVI (.avi) 1200+ DivX 5.05 02:27:00 34.2 mB Last Checked: 2006-01-03 06:12:13 200 OK


text:
5 September 2013
7 September 2013 Last updated at 17:44 BST
What looks like being the world's first commercial space plane has just passed another technical milestone.
Virgin Galactic's SpaceShipTwo has just flown faster and higher than ever before on its journey to take ordinary, fare-paying customers 70 miles above the earth.
The first passengers should be floating around in zero gravity in around a year's time.
Transport correspondent Richard Westcott reports.


text:
Results 1 to 12 of 27
Mangii: Ravens copied Pat's strategy
from one of the Pat's boards
kinda makes sense. the old-school gritty smashmouth Patriots have gotten soft and got out-gritted and out-smashed.
"He further said that it was in fact very similar to his own approach, when he was on the Patriots staff, to defending the Colts receivers. This would include the playoff game where Bill Polian famously blew a gasket over the lack of calls for being too physical with Colts receivers.
We need to have in our arsenal a tactic to deal with this.
We could be Colts about it and whine for "better" officiating, or we could attempt to get our receivers better prepared to either avoid such contact or (my preference) to dish it out just as much.""Nothing stops these Baltimore Ravens. Beat them, injure them, shove them to the bottom of the standings, drag them into a hostile environment and mount a big lead, and they just keep trudging forward like nothing fazes them." (Bleacher Report)
Re: Mangii: Ravens copied Pat's strategy
Its funny listening to the Pats fans bitching about our physicality with their WRs. The game/announcers kept showing footage of the Ravens WRs not getting off the line and getting held 6-8 yards down field.
Re: Mangii: Ravens copied Pat's strategy
The Ravens need to do the same thing to Michael Crabtree. Jam him and challenge him the whole way up the field.
Putting the Fanatic back in Fan
Re: Mangii: Ravens copied Pat's strategy
I thought we played Steelers football especially on the defensive side of the ball with that swarming attacking D. We beat the Steelers more than anyone and beat up NE playing their style in
the toughest division in NFL. As been posted, playing Steelers twice pr yr has made Joe and the entire team better
and more prepared to beat the other good teams outside the division.
We respect Squeelers as much as we hate em.
01-22-2013, 06:01 PM #6On The Practice Squad
- Join Date
- Oct 2010
- Posts
- 37
Re: Mangii: Ravens copied Pat's strategy
Welcome Aussie and great point about the schedule. You are so right.
Australia is one of our favorite countries. My nephew went to college there and had a friend from there
at our Thanksgiving dinner. He was really cool but when I asked him about the Battle of Coral Sea, he never heard of
it. I said if it wasnt for that battle you'd be speaking Japanese instead of English.
01-23-2013, 02:40 AM #8On The Practice Squad
- Join Date
- Oct 2010
- Posts
- 37
Re: Mangii: Ravens copied Pat's strategy
I dont blame him haha, because Ive never heard of it or learnt it during high school. Next time you see him, mention the Landing at Gallipoli (Turkey). That was the one where the Aussie soldiers were sent to the wrong beach and were annihilated by the enemy stationed at the top of the hill/cliff. Its quite similar to the American one if im not mistakened, its in various video games :P
Re: Mangii: Ravens copied Pat's strategy
Oh man. I know that story well.
One of the Allies worse mistakes in history. A lot of Aussies go there every year.
Mel Gibson made a movie about it. Complete slaughter. I couldn't watch it.
We lost the Lexington air craft carrier at Coral Seal but it took out two Jap carriers. They were on the way to Australia.
The Aussies at the time were greatly relieved the Japs were stopped and called it the turning point of the war for them.
How quickly they forget.
01-23-2013, 06:01 AM #10Regular 1st Stringer
- Join Date
- Jul 2007
- Location
- Los Angeles
- Posts
- 269
01-23-2013, 10:46 AM #12Regular 1st Stringer
- Join Date
- Sep 2010
- Location
- Silver Spring, MD
- Posts
- 250
Re: Mangii: Ravens copied Pat's strategy
I think you are spot on with this, and I think this is what gives us a major advantage in the Super Bowl. Sure, San Francisco is a physical team, but because we are battle hardened from our yearly epic matches with the Steelers, we are ready to play that type of game and win.
The 49ers, on the other hand, are used to playing in the softer (IMO) NFC, so when they face us, I don't think they are ready for 4 quarters of violent smash mouth football.