text:
Spotlight Article:
Weather-Stripping Windows with V-Strip
An in-depth window study on six homes compares the effectiveness of plastic vs. metal weatherstripping.
Keep Reading
Crawlspaces: Considering the Options
free CONTENT
For crawlspaces, as for the entire house, there are house-specific, local, and regional conditions to consider. [continue reading]
Crawlspace Solutions
free CONTENT
Crawlspaces in climates that have temperatures below 32̼̉F are minibasements and should not be treated otherwise. [continue reading]
A Conditioned Crawlspace Checklist
free CONTENT
Experience is the best teacher, when it comes to crawlspaces. [continue reading]
Natural Insulation Products
free CONTENT
Soft on the environment - and sometimes even soft to the touch - natural insulation products are filling a growing market niche. [continue reading]
A Serious Challenge to a New Building Technology
free CONTENT
Every new building technology comes with new problems along with its benefits, and structural insulated panels (SIPs) are no different. SIPs are made of rigid foam insulation sandwiched between ... [continue reading]
Zone Pressure Diagnostics
free CONTENT
A new protocol shows how to make a valuable diagnostic test even more useful. [continue reading]
Brittney Sheffield
How Third-Party Utility Providers Work
Many people know that there are ways to save on your utility services, however there are plenty of people who ...
Neil Grigsby
Northwest Energy Star Super-Efficient Homes—#6: The Pumpkin Ridge Passive House
The Pumpkin Ridge Passive House is one of six super energy-efficient homes being highlighted this year by Northwest Energy Homes&...


text:
Ashley Furniture HomeStore Coupons and Deals
A room without furniture can seem naked, much like an outfit without jewelry or a farewell tour without Cher. Dress your modest room in acclaim-worthy accouterments with this Groupon: for $49, you get $150 worth of home furnishings at Ashley Furniture HomeStore, valid at locations in Charlotte, Concord, Gastonia, Hickory, Matthews, Mooresville, and Pineville. An affordable and monumental selection of plush beds, sturdy end tables, and stylish home accessories mingles in Ashley Furniture HomeStore's showroom. Ashley Furniture's wide selection of couch accents includes the Cubit ottoman with flip top ($129), which can give any room or teleportation chamber a hint ...
More Deals
Every deal, one place.
Best deals from Groupon, LivingSocial and more.

subset: commoncrawl


text:
Glassdoor is your free inside look at FedEx reviews and ratings — including employee satisfaction and approval rating for FedEx CEO Fred Smith. All reviews posted anonymously by FedEx employees.
1 person found this helpful
Current Employee – been working at FedEx full-time for more than 7 years
Pros – Benefits, People First Policy, Great work environment
Cons – Pay could be better but that is made up for by all of the other great aspects of the company
Advice to Senior Management – Upper management is out of touch because no one will tell them the facts.
Yes, I would recommend this company to a friend – I'm optimistic about the outlook for this company
Would you like us to review something? Please describe the problem with this {0} and we will look into it.
Sorry, but your feedback didn't make it to the team. Your input is valuable to us – would you mind trying again?
Your response will be removed from the review – this cannot be undone.
Copyright © 2008–2013, Glassdoor. All Rights Reserved. Your use of this service is subject to our Terms of Use and Privacy & Cookies Policy. Glassdoor ® is a registered trademark of Glassdoor, Inc.


text:
An Introduction to OpenSSL Programming, Part I of II
Once the client has initialized the SSL context, it's ready to connect to the server. OpenSSL requires us to create a TCP connection between client and server on our own and then use the TCP socket to create an SSL socket. For convenience, we've isolated the creation of the TCP connection to the tcp_connect() function (which is not shown here but is available in the downloadable source).
Once the TCP connection has been created, we create an SSL object to handle the connection. This object needs to be attached to the socket. Note that we don't directly attach the SSL object to the socket. Rather, we create a BIO object using the socket and then attach the SSL object to the BIO.
This abstraction layer allows you to use OpenSSL over channels other than sockets, provided you have an appropriate BIO. For instance, one of the OpenSSL test programs connects an SSL client and server purely through memory buffers. A more practical use would be to support some protocol that can't be accessed via sockets. For instance, you could run SSL over a serial line.
The first step in an SSL connection is to perform the SSL handshake. The handshake authenticates the server (and optionally the client) and establishes the keying material that will be used to protect the rest of the traffic. The SSL_connect() call is used to perform the SSL handshake. Because we're using blocking sockets, SSL_connect() will not return until the handshake is completed or an error has been detected. SSL_connect() returns 1 for success and 0 or negative for an error. This call is shown below:
/* Connect the TCP socket*/ sock=tcp_connect(host,port); /* Connect the SSL socket */ ssl=SSL_new(ctx); sbio=BIO_new_socket(sock,BIO_NOCLOSE); SSL_set_bio(ssl,sbio,sbio); if(SSL_connect(ssl)<=0) berr_exit("SSL connect error"); if(require_server_auth) check_cert(ssl,host);
When we initiate an SSL connection to a server, we need to check the server's certificate chain. OpenSSL does some of the checks for us, but unfortunately others are application specific, and so we have to do those ourselves. The primary test that our sample application does is to check the server identity. This check is performed by the check_cert function, shown in Listing 2.
Listing 2. check_cert() Function
Once you've established that the server's certificate chain is valid, you need to verify that the certificate you're looking at matches the identity that you expect the server to have. In most cases, this means that the server's DNS name appears in the certificate, either in the Common Name field of the Subject Name or in a certificate extension. Although each protocol has slightly different rules for verifying the server's identity, RFC 2818 contains the rules for HTTP over SSL/TLS. Following RFC 2818 is generally a good idea unless you have some explicit reason to do otherwise.
Because most certificates still contain the domain name in the Common Name field rather than in an extension, we show only the Common Name check. We simply extract the server's certificate using SSL_get_peer_certificate() and then compare the common name to the hostname we're connecting to. If they don't match, something is wrong and we exit.
Before version 0.9.5, OpenSSL was subject to a certificate extension attack. To understand this, consider the case where a server authenticates with a certificate signed by Bob, as shown in Figure 1. Bob isn't one of your CAs, but his certificate is signed by a CA you trust.
If you accept this certificate you're going to be in a lot of trouble. The fact that the CA signed Bob's certificate means that the CA believes that it has verified Bob's identity, not that Bob can be trusted. If you know that you want to do business with Bob, that's fine, but it's not very useful if you want to do business with Alice, and Bob (of whom you've never heard) is vouching for Alice.
Originally, the only way to protect yourself against this sort of attack was to restrict the length of certificate chains so that you knew that the certificate you were looking at was signed by the CA. The X.509 version 3 contains a way for a CA to label certain certificates as other CAs. This permits a CA to have a single root that then certifies a bunch of subsidiary CAs.
Modern versions of OpenSSL (0.9.5 and later) check these extensions, so you're automatically protected against extension attacks whether or not you check chain length. Versions prior to 0.9.5 do not check the extensions at all, so you have to enforce the chain length if using an older version. 0.9.5 has some problems with checking, so if you're using 0.9.5, you should probably upgrade. The #ifdefed code in initialize_ctx() provides chain-length checking with older versions. We use the SSL_CTX_set_verify_depth() to force OpenSSL to check the chain length. In summary, it's highly advisable to upgrade to 0.9.6, particularly because longer (but properly constructed) chains are becoming more popular. The absolute latest (and best) version of OpenSSL is .0.9.66.
We use the code shown in Listing 3 to write the HTTP request. For demonstration purposes, we use a more-or-less hardwired HTTP request found in the REQUEST_TEMPLATE variable. Because the machine to which we're connecting may change, we do need to fill in the Host header. This is done using snprintf(). We then use SSL_write() to send the data to the server. SSL_write()'s API is more or less the same as write(), except that we pass in the SSL object instead of the file descriptor.
Listing 3. Writing the HTTP Request
Experienced TCP programmers will notice that instead of looping around the write, we throw an error if the return value doesn't equal the value we're trying to write. In blocking mode, SSL_write() semantics are all or nothing; the call won't return until all the data is written or an error occurs, whereas write() may only write part of the data. The SSL_MODE_ENABLE_PARTIAL_WRITE flag (not used here) enables partial writes, in which case you'd need to loop.
In old-style HTTP/1.0, the server transmits its response and then closes the connection. In later versions, persistent connections that allow multiple sequential transactions on the same connection were introduced. For convenience and simplicity we will not use persistent connections. We omit the header that allows them, causing the server to use a connection close to signal the end of the response. Operationally, this means that we can keep reading until we get an end of file, which simplifies matters considerably.
OpenSSL uses the SSL_read() API call to read data, as shown in Listing 4. As with read(), we simply choose an appropriate-sized buffer and pass it to SSL_read(). Note that the buffer size isn't really that important here. The semantics of SSL_read(), like the semantics of read(), are that it returns the data available, even if it's less than the requested amount. On the other hand, if no data is available, then the call to read blocks.
Listing 4. Reading the Response
The choice of BUFSIZZ, then, is basically a performance trade-off. The trade-off is quite different here from when we're simply reading from normal sockets. In that case, each call to read() requires a context switch into the kernel. Because context switches are expensive, programmers try to use large buffers to reduce them. However, when we're using SSL the number of calls to read(), and hence context switches, is largely determined by the number of records the data was written in rather than the number of calls to SSL_read().
For instance, if the client wrote a 1000-byte record and we call SSL_read() in chunks of 1 byte, then the first call to SSL_read() will result in the record being read in, and the rest of the calls will just read it out of the SSL buffer. Thus, the choice of buffer size is less significant when we're using SSL than with normal sockets. If the data were written in a series of small records, you might want to read all of them at once with a single call to read(). OpenSSL provides a flag, SSL_CTRL_SET_READ_AHEAD, that turns on this behavior.
Note the use of the switch on the return value of SSL_get_error(). The convention with normal sockets is that any negative number (typically -1) indicates failure, and that one then checks errno to determine what actually happened. Obviously errno won't work here because that only shows system errors, and we'd like to be able to act on SSL errors. Also, errno requires careful programming in order to be threadsafe.
Instead of errno, OpenSSL provides the SSL_get_error() call. This call lets us examine the return value and figure out whether an error occurred and what it was. If the return value was positive, we've read some data, and we simply write it to the screen. A real client would parse the HTTP response and either display the data (e.g., a web page) or save it to disk. However, none of this is interesting as far as OpenSSL is concerned, so we won't show any of it here.
If the return value was zero, this does not mean that there was no data available. In that case, we would have blocked, as discussed above. Rather, it means that the socket is closed, and there never will be any data available to read. Thus, we exit the loop.
If the return value was something negative, then some kind of error occurred. There are two kinds of errors we're concerned with: ordinary errors and premature closes. We use the SSL_get_error() call to determine which kind of error we have. Error handling in our client is pretty primitive, so with most errors we simply call berr_exit() to print an error message and exit. Premature closes have to be handled specially.
TCP uses a FIN segment to indicate that the sender has sent all of its data. SSL version 2 simply allowed either side to send a TCP FIN to terminate the SSL connection. This allowed for a truncation attack; the attacker could make it appear that a message was shorter than it was simply by forging a TCP FIN. Unless the victim had some other way of knowing what message length to expect, he or she would simply believe the length was correct.
In order to prevent this security problem, SSLv3 introduced a "close_notify" alert. The close_notify is an SSL message (and therefore secured) but is not part of the data stream itself and so is not seen by the application. No data may be transmitted after the close_notify is sent.
Thus, when SSL_read() returns 0 to indicate that the socket has been closed, this really means that the close_notify has been received. If the client receives a FIN before receiving a close_notify, SSL_read() will return with an error. This condition is called a premature close.
A naïve client might decide to report an error and exit whenever it received a premature close. This is the behavior that is implied by the SSLv3 specification. Unfortunately, sending premature closes is a rather common error, particularly common with clients. Thus, unless you want to be reporting errors all the time, you often have to ignore premature closes. Our code splits the difference. It reports the premature close on stderr but doesn't exit with an error.
If we read the response without any errors, then we need to send our own close_notify to the server. This is done using the SSL_shutdown() API call. We'll cover SSL_shutdown() more completely when we talk about the server, but the general idea is simple: it returns 1 for a complete shutdown, 0 for an incomplete shutdown and -1 for an error. Since we've already received the server's close_notify, about the only thing that can go wrong is that we have trouble sending our close_notify. Otherwise SSL_shutdown() will succeed (returning 1).
Finally, we need to destroy the various objects we've allocated. Since this program is about to exit, thus freeing the objects, this isn't strictly necessary, but it would be in a more general program.
hello Eric
Thanks for the great article. You saved me a lot of work. The keys are out of date though. Can you drop a few lines as an appendix or here in comments on how to generate and self-sign new keys?
Best regards,
how can check certificate against CRL in Linux using SSL command
How can client checks certificate against CRL(certification revocation List) using SSL libray functions.
I have loaded certifcate using X509_load_cert_crl_file(pLookup,"crl.pem",X509_FILETYPE_PEM);
but i am not getting how client can checks....
Thanks & Regards,
Great article, need some info
Your article is simple and yet very informative.
Thanks for the article.
I am new to openssl, i am stuck with a problem. I need some info.
Due to some reasons the cert info is available in a buffer rather than
a file.
My client needs to load this and establish communication with the
server using openssl.
The buffer looks something like this....
char *gacacert =
Could some one tell me how to load this buffer, communicate with the
server and perform the handshake?
Any code sample/example will be great.
@ saleem Hi I am facing
@ saleem
I am facing with the same issue.
I tried using this function to create a mem BIO which can be used to read from the memory.
BIO_new_mem_buf((char *){YOUR STRING},-1);
I was able to read the string from the certificate. But the problem was that
when i pass if to SSL_CTX_use_certificate_chain_file it fails.
Please send me any info if you have found a solution already
SSLcontext with BSD Sockets
Hi all,
Great article but i want to know how to attach SSL Context to BSD sockets(socket(),bind(),listen(),connect()..)
Thanks for help
Nice work, Eric. Thank
Nice work, Eric. Thank you.
Just a comment: You looks like John Petrucci (guitarist of Dream Theater band)
Thanks for your nice
Thanks for your nice artical, i am learning it
freeing of returned resource in check_cert()
nice article, but there is a little memory leak in the check_cert() function. pointer returned from SSL_get_peer_certificate must be freed according to man page:
The reference count of the X509 object is incremented by one, so that it will not be destroyed when the session containing the peer certificate is freed. The X509 object must be explicitly freed using X509_free().
Re: An Introduction to OpenSSL Programming, Part I of II
Nice article
need more info
can u please send me the link of where the next part is ?? that is part 2 of 2 ... thanks for the wonderful tutorial
Re: An Introduction to OpenSSL Programming, Part I of II
huh!! nice..........
very good , makes it look all
very good , makes it look all so easy! now to put it into practice
Today's modular x86 servers are compute-centric, designed as a least common denominator to support a wide range of IT workloads. Those generic, virtualized IT workloads have much different resource optimization requirements than hyperscale and cloud applications. They have resulted in a "one size fits all" enterprise IT architecture that is not optimized for a specific set of IT workloads, and especially not emerging hyperscale workloads, such as web applications, big data, and object storage. In this report, you will learn how shifting the focus from traditional compute-centric IT architectures to an innovative disaggregated fabric-based architecture can optimize and scale your data center.
Sponsored by AMD
Built-in forensics, incident response, and security with Red Hat Enterprise Linux 6
Every security policy provides guidance and requirements for ensuring adequate protection of information and data, as well as high-level technical and administrative security requirements for a system in a given environment. Traditionally, providing security for a system focuses on the confidentiality of the information on it. However, protecting the data integrity and system and data availability is just as important. For example, when processing United States intelligence information, there are three attributes that require protection: confidentiality, integrity, and availability.
Learn more about catching the bad guy in this free white paper.
Sponsored by DLT Solutions
Making Linux and Android Get Along (It's Not as Hard as It Sounds) | May 16, 2013 |
Drupal Is a Framework: Why Everyone Needs to Understand This | May 15, 2013 |
Home, My Backup Data Center | May 13, 2013 |
Non-Linux FOSS: Seashore | May 10, 2013 |
Trying to Tame the Tablet | May 08, 2013 |
Dart: a New Web Programming Experience | May 07, 2013 |
- RSS Feeds
- Making Linux and Android Get Along (It's Not as Hard as It Sounds)
- New Products
- Drupal Is a Framework: Why Everyone Needs to Understand This
- A Topic for Discussion - Open Source Feature-Richness?
- Home, My Backup Data Center
- Validate an E-Mail Address with PHP, the Right Way
- New Products
- Trying to Tame the Tablet
- Tech Tip: Really Simple HTTP Server with Python
- git-annex assistant
2 hours 39 min ago - direct cable connection
3 hours 2 min ago - Agreed on AirDroid. With my
3 hours 12 min ago - I just learned this
3 hours 16 min ago - enterprise
3 hours 46 min ago - not living upto the mobile revolution
6 hours 37 min ago - Deceptive Advertising and
7 hours 13 min ago - Let\'s declare that you have
7 hours 14 min ago - Alterations in Contest Due
7 hours 15 min ago - At a numbers mindset, your
7 hours 16 min ago
Enter to Win an Adafruit Prototyping Pi Plate Kit for Raspberry Pi
It's Raspberry Pi month at Linux Journal. Each week in May, Adafruit will be giving away a Pi-related prize to a lucky, randomly drawn LJ reader. Winners will be announced weekly.
Fill out the fields below to enter to win this week's prize-- a Prototyping Pi Plate Kit for Raspberry Pi.
Congratulations to our winners so far:
- 5-8-13, Pi Starter Pack: Jack Davis
- 5-15-13, Pi Model B 512MB RAM: Patrick Dunn
- Next winner announced on 5-21-13!
Free Webinar: Linux Backup and Recovery
Most companies incorporate backup procedures for critical data, which can be restored quickly if a loss occurs. However, fewer companies are prepared for catastrophic system failures, in which they lose all data, the entire operating system, applications, settings, patches and more, reducing their system(s) to "bare metal." After all, before data can be restored to a system, there must be a system to restore it to.
In this one hour webinar, learn how to enhance your existing backup strategies for better disaster recovery preparedness using Storix System Backup Administrator (SBAdmin), a highly flexible bare-metal recovery solution for UNIX and Linux systems.


text:
Read reviews (1)
Rate recipe
My husband and I enjoy these delicious crepes with sweet berry sauce and cream on Saturday mornings or even at supper time with sausage and eggs. They're considered a delicacy here, especially with a drizzle of maple syrup. -Sharon Dyck Roxton Falls, Quebec
This recipe is:
Contest Winning
Nutritional Analysis: One serving equals 782 calories, 40 g fat (24 g saturated fat), 335 mg cholesterol, 965 mg sodium, 90 g carbohydrate, 4 g fiber, 15 g protein.
Originally published as Buckwheat Brunch Crepes in Taste of Home February/March 2004, p31
Browse slideshows featuring our best recipes, holiday ideas, easy how-tos, cooking tips, and more!
Get Recipes >
A collection of our favorite, highest-rated recipes—including the best dessert, dinner and holiday recipes.
Tell us what you think of this recipe. Did you modify it? Would you make it again? Rate it today! >
Rate and Review this Recipe
Reviewed on Jan. 25, 2009 by pack1966
I made the crepes, filled w/ a pecan praline and banana filling versus the fruit. Oh my goodness! The crepes were excellent; this is the best recipe.
Our 10 most popular recipes for the month delivered right to your inbox!
© Reiman Media Group, LLC., 2013


text:
Loading streams...
Now Playing
Podcasts & RSS Feeds
All Content |
View all podcasts & RSS feeds |
Connect with Us
Most Active Stories
- Dr. Paul Booth, DePaul University – Cultural Meaning of Doctor Who
- Where Did That Fried Chicken Stereotype Come From?
- Dr. Frank Elgar, McGill University – Psychological Health and Family Meals
- NY AG Breaks Cigarette Trafficking Ring, Hints Terror Ties
- Dr. Claudia Buchmann, Ohio State University – Higher Education Gender Gap
President and CEO
Vice President, News and Programming
News Director
Program and Outreach Director
Senior News Anchor
Morning Edition Anchor/ Senior Producer
Host, 51%
WAMC News
3:53 pm
Tue April 3, 2012
Midday Magazine - Dr. James Darnell jr. and Dr. Robert Roeder
The Albany Medical Center Prize in Medicine and Bio-Medical Research will officially be awarded May 11th in Albany, but the winners of the prize have already been announced. Drs. James Darnell junior and Robert Roeder both with the Rockefeller University in New York City will share the award of $500,000, which is the largest monetary award in the U.S., second only to the Nobel Prize. Both men are being honored for their work to unlock the secrets of DNA, and RNA processing, that is how cells express their genetic information. WAMC's Brian Shields spoke with both men, beginning with Dr. Darnell.


text:
Weekend 2 attendees, take note: This ain't your predecessors' Coldchella.
The lineup may be the same, but Mother Nature will put on a very different show this weekend.
"It's going to be the exact opposite of last weekend," said Erik Pindrock, an AccuWeather meteorologist. "It's going to be sunny, hot and dry."
Temperatures are expected to reach 98 degrees Friday, 101 on Saturday and 102 on Sunday, with few or no clouds providing shade for festival-goers, he said.
"Even for you guys in April, this is above normal," Pindrock said. The average high at this time of year is 86 degrees.
A week ago, it was a different story as stormy weather earned the first running of the festival nicknames like Coldchella and Rainchella.
A cold low-pressure system brought clouds, gusty winds and, on Friday, 0.08 inches of rain to Palm Springs, Pindrock said.
Highs in Indio only reached 72 degrees Friday, 67 on Saturday and 76 on Sunday, according to the National Weather Service. Overnight lows dipped into the 40s.
Sunglasses and bikinis were still in fashion among some of the roughly 80,000 people at the Empire Polo Club in Indio, but others bundled up with beach towels and plastic bags and used socks as makeshift mittens.
Before this year, 76 degrees had been the coldest high seen on a Coachella day, a mark set April 27, 2002.
This weekend's forecast temperatures will be above the average high seen on the October, April and May days on which Coachella has been held over the years.
Before this year's chilly first weekend, the average high on festival days was 94.5 degrees. Now that mark is 92.3 degrees.
The triple-digit temperatures forecast for this weekend still fall short of the 109-degree high on the hottest-ever Coachella day, April 28, 2007.
• Avoid sunburn, dehydration, heat exhaustion: Dr. Andrew Ordon's tips for Coachella festival-goers
• Coachella fashion tips: Rock the look


text:
Excelsior College, BDPA
Excelsior College Board of Trustees has demonstrated their support for our partnership program by not increasing the enrollment fee, annual fee or degree completion fee for members of partner organizations enrolled at Excelsior College.
Rates and credit requirements:
Undergraduate FeesTuition and Credit Requirements
Partner RatesStarting for the07/1/12 – 06/30/13 Terms
Application Fee
$ 80
Enrollment Fee
$ 130
Tuition Per Credit
$ 305
Student Services Annual Fee*
$ 0
Degree Completion (Graduation) Fee
# Required Course Credits For Associates Degree*
12 credits
# Required Course Credits For Bachelors Degree*
*There is no annual fee for students progressing at least 6 credits in one year. Students not progressing at least 6 credits in one year will be charged a nominal $70 annual fee.
**To be eligible for discounted partnership rates, all undergraduate students must take 12 credits of Excelsior College online courses. When associate graduates enter a bachelor's program, their associate Excelsior credits will no longer count toward fulfilling the bachelor's 12 credit requirement. ***Please note that the partnership benefits apply to all associate and bachelor's degrees, excluding the Associate Degree in Nursing program. ****Please note that the partnership benefits DO NOT apply to our master degree programs.
Attached please find a detailed summary sheet of these changes for your files. We value your partnership and look forward to serving you in the coming years. If you have any questions about this information, or any matter, please don't hesitate to call me at the number listed below.
Membership has its privileges and BDPA benefits are for members only.
If you have questions, please contact us.
The BDPA Corporate Sponsorship Program offers corporations an opportunity to partner with BDPA to meet corporate goals and objectives for recruiting, employee development, and philanthropic endeavors. Please click here for more information on corporate sponsorship opportunities.
Remember Me
Forgot your password?
Haven't joined yet?
5/17/2013BDPA Honors Midshipman Raven Stevenson at her U.S. Naval Officer Commissioning Ceremony
2/27/2013Proposed Bylaw Amendment Submission
2/3/2013Call for BDPA 2013 Nominations
5/26/2013VPMM Monthly Conference Calls
6/19/2013Cincinnati Blacks in Technology
6/19/2013Atlanta Chapter Program Meeting
6/20/2013Monthly Career Development Webinar - Career Triage
6/26/2013VPMM Monthly Conference Calls
Member Engagement Survey
Membership Satisfaction Survey


text:
simply delicious waterfront dining! Choose from two food and beverage spots at our riverside location to satiate your appetite and/or your thirst.
As Hood Rivers only waterfront restaurant, Riverside has been a dining destination since 1965. People have been drawn to its panoramic views and outstanding service. Today, we still have the same great setting and service, but Riversides outstanding food is the real draw.
All fresh, seasonal ingredients Everything we serve at Riverside is local, fresh, and all natural. Breakfasts feature cage-free Wilcox farms eggs, and all menus offer local Zion Farms greens, spinach, and arugula. Our menus are designed around only fresh available seafood. And we age our beef in-house, including corned beef used in breakfast hash and our popular Reuben sandwich. And save room…we make all desserts in-house, too. You can't get much fresher than Riverside.
Breakfast, lunch, dinner, and Sunday brunch menus feature items that are simple, yet wholesome and sophisticated—and always prepared to our chef's exacting standards. Our menus change occasionally just slightly, to surprise with something new, or delight with an old favorite. Click here for MENUS
Seasonal outdoor deck dining is available. Visit us by the river!
Cebu is our comfortable lounge, where you can relax on overstuffed leather furniture, group at our tables, or mingle at our expansive bar. You can order from our Cebu Lounge menu, or Riversides lunch or dinner menus. Relax for a drink in Cebu, where the happiest hours in town are Monday Friday, 4 6 pm, featuring many discounted menu choices. Flat screen TV and scheduled entertainment, too. Click here for More Info
Now it couldn't be easier to enjoy Riverside restaurant and Cebu Lounge. Gift Cards are available in any prepaid amount. Great gift for anyone! Call for details 541-386-4410
Since Chef Mark DeResta's arrival in January 2009, dinners at Riverside have a distinct fresh "Italian" flair that is DeResta's trademark. Chef Mark's style and philosophy is simple food with few ingredients, consistently prepared properly. Everything he serves is fresh. Riverside's dinner menu changes every few weeks depending on fresh ingredients becoming available. Chef Mark has worked at numerous Hood River dining favorites. He created Abruzzo Italian Grill with partner Glen Pearce, and worked at Brian's Pourhouse and Sixth Street Bistro. Chef DeResta worked with the Hood River Inn's catering manager Jan McCartan and Rich Cushman of Viento wines to create a Riverside Grill red table wine. It's a reasonably priced Sangiovese-Barbera blend available by the glass, half-liter and liter. Originally from Rhode Island, Mark DeResta began working in restaurant kitchens at age 15, starting as dishwasher, moving to salads, and up the ranks as a willing listener who did what he was told. He continued restaurant work through college, and shortly after graduation moved to Hood River. "I've worked with a lot of great people and learned a lot along the way," DeResta remarks. "When I came to the Gorge, I realized I could do bigger things. I'm Italian, grew up on good Italian food, and I'm passionate about it."
Now it couldn't be easier to enjoy Riverside restaurant and Cebu. Gift Cards are available in any prepaid amount. Call for details 541-386-4410


text:
Beppe Grillo's Movimento 5 Stelle. With 25.53% of the votes (96.44% of the vote counted), the comedian/blogger/counterestablishmentarian/contrarian received more votes than either Bersani's Democratic Party which got 25.51%, and Berlusconi's Popolo Della Liberta, which got 21.44%.
Incredible Video: Beppe Grillo Dissects the Financial System... on 1998
Whom does the money belong to? Who does its ownership belong to? To the State fine then to us, we are the State. You know that the State doesnt exist, it is only a legal entity. WE are the state, then the money is ours fine. Then let me know one thing. If the money belongs to us Why do they lend it to us??
- Beppe Grillo in 1998
If you really want to know why Beppe Grillo is causing Central Planners throughout the European continent to wet themselves, this video will show you. Theres a real revolution happening in Italy. This guy is the real deal and he understands the heart of the whole issue plaguing the world. All I can say is: WOW.
Not 100% sure how Italian parliament works, I think the established parties form a larger coalition and will wield the power, but this is a pretty big foot in the door to getting rid of their status quo. I don't know much about him, but he's anti-euro union so I wouldn't be surprised if he commits suicide via two bullets to the noggin.


text:
Stoeger® 9mm Cougar Semi Auto Pistol
Sale price:
Clearance price:
Starting at:
Sale starting at:
Clearance starting at:
Reg. price:
The Stoeger Cougar is a perfect choice for home and personal defense, delivering no-nonsense, rugged performance you can rely on when it matters most. This double-action, semi-auto pistol features a proven rotary-locking design that keeps the 3.6'' barrel in one plane, increasing accuracy. Stoeger's standard, quick-read, three-dot sight system on top of the Cougar helps you aquire your target quickly. The ambidextrous safety and decocking lever is easily accessible to the thumb of a right-handed or left-handed shooter. Cable lock included for safe storage. Bruniton® Matte Black finish. Unloaded weight: 32.6 oz. Capacity: 15+1.
- Brand - Stoeger
- Action - Semi-Automatic
Rated 5 out of 5 by 8
Rated 5 out of 5 by jimmyj90 Great firearm
I have owned a Stoeger Cougar 9mm for about three years. I've put a lot of rounds through the pistol and have never had one feed problem or malfunction of any kind. Probably one of the best pistols you can get for the price. Great for everyday carry.
April 15, 2013
Rated 5 out of 5 by ou1fan99 Excellent semi-auto
I have shot Rugers, Glocks, and Kahrs, and the Cougar outdoes them all in my hand. Felt recoil is less and easier to bring back down for follow-up shots. Solid, tight fitting, eats any ammo I have put through it with no FTE or FTF. Very easy to strip and clean. Best value on the shelf when you are looking for a gun that can be used for ccw, but also big enough to go to the range and shoot.
January 10, 2013
Rated 5 out of 5 by Ronin Impressive Wonder 9
I recently purchased the Cougar in 9MM and was impressed by its balance, weight and accurracy. I was surprised it came with an integrated accessory-rail normally reserved for the 45 ACP version. The Cougar performs well on the range and cycles ammo without a problem whether you're plinking or going through a timed excercise. For the price, this weapon will meet your self defense and concealed carry needs.
December 26, 2012
Rated 5 out of 5 by Westec Nice Gun
I have this for about a year now with a little over 1000 rounds true it, Gun performs well no issues at all zero misfires, gun gives a good solid feel fits my hand well. this was my first gun and i'm able to keep my grouping in about a 4 inch area @ 20 yards
I have the Nitride finish and its holding up pretty good some slight wear but not to bad still looks new, cleaning is pretty easy to
the only down fall is the 3 dot sight is a dark red color not the easiest to see with some of the poor lighting in the ranges
November 14, 2012
1 Question | 3 Answers
Outdoor Answers
Get help about this item from fellow customers.
Ask your questions. Share your answers.
Saw online that this firearm comes with 4 mags, was wondering if anyone could tell me if this was true. Thanks everyoneAnswers
No it does not.A:
I believe it came with four on a limited time promo, but have not seen any in quite a while. Mine from BPS had two.A:
One distributor had a Cougar listed that included four mags, mine came with two. The Stoeger website lists it as coming with two from the factory as well.1 of 1
1 of 1