text:
About Us
Castlevania: Lords of Shadow 2
The Wolf Among Us – Episode 3: A Crooked Mile
Warlock II
Super League Football
Vizio 54" Soundbar 3.0
Diablo III: Reaper of Souls
Dark Souls 2
Kinect Sports Rivals
GN Unplugged
Hooked Up
Indie Spotlight
Now Loading
Pixels & Bits
Defunct Games
Russell Archey
Tom Bitterman
Sean Cahill
Nathan Carter
Nathaniel Cohen
Sean Colleli
Jeremy Duff
Dave Gamble
Travis Huinker - updated
Charles Husemann
Randy Kalista
Dan Keener
Jeff Kintner
Cyril Lachel
Cary Lange
Matt Mirkovich
Sam Stewart
John Yan
My Settings
posted 7/16/2012 by
Charles Husemann
other articles
by Charles Husemann
As a fan of the RTS genre I've been tracking End of Nations since it was announced a few years ago. The idea of a large scale MMO RTS is appealing and while the game has morphed a bit since it was launched the product has shaped up quite nicely (Travis loved what he saw at
E3 this year
). I was lucky enough to get an interview with Chris Lena, the senior producer of the title who was able to shed some light on what we can see when the game is released.
Could you give us the back story on End of Nations? Why the decision to go the MMO route with your RTS rather than just a straight RTS game with multiplayer?
As lovers of RTS games we have been, frankly, a little disappointed on how little the genre has evolved. At the same time we have found ourselves enthralled with all of the new games that have brought living, connected worlds to other genres. There is nothing that makes a game more alive than other humans. So this is the core of where these thoughts came from. Now, of course, we encountered a lot of issues to get this all to work together they way we wanted it to but it has been worth it. Our tenet is that we can never let any "MMO" elements get in the way of the strategy game. If it doesn't fit we tossed it. What we have now is a living, breathing, connected persistent world that cannot be duplicated with a peer-to-peer multiplayer game.
What are the different factions in the game and how do their military strategies differ?
There are two different factions: The Liberation Front and the Shadow Revolution, each with their own subclasses. The Liberation Front has the Spartan and Patriot classes – the Spartan Class units focus on heavy units, your tanks and other high defense/high damage units, while the Patriot Class features multi-use support types. Shadow Revolution has the Wraith and Phantom classes - The Wraith Class is comprised of light, but powerful APCs, helicopters, and tanks favoring speed over raw power. The Phantom Class puts emphasis on the "shadow" aspect of this faction with cloaking infantry as well as some heavier units.
When you start a big project there's always the issue of not knowing what you don't know. Looking at the start of the project, what was the one thing you know now that you didn't know then?
We did quite a bit of experimenting throughout the early development and I suspect that we will be learning forever. If we knew all those things in the beginning we would have launched already! I wouldn't say it was unexpected but balancing massive RTS has been a challenge. In an RTS balance is extremely important. From the beginning we didn't want our two factions to mirror each other so we made them play quite differently. There are really no mirror images across the factions. This can be a challenge to balance but not uncommon in a strategy game. Ok, now put 56 players of 2 factions and 4 different classes on the same map each fielding a dozen units, structures and abilities.
What are some of your particular past favorite real-time strategy games? What do you think has been the biggest innovation in the RTS arena in the last few years?
StarCraft, Command & Conquer, Age of Empires, Company of Heroes – all great RTS games that have bettered the genre, but I can't say I have a favorite. However, I do have to give a special nod to all the Shattered Galaxy players out there. The release of StarCraft 2 and also the interest in strategic games like League of Legends have been breathing life into the world of strategy games, and we're hoping to do the same with End of Nations this year,
We've seen a bit of a movement away from building bases in RTS games with more of a focus on combat, is End of Nations going that route or are there still bases and harvesting units that will have to be defended?
Well, we still have that aspect of being able to micro-manage units but we don't have base building. So, yes, a lot more focus on combat. The idea here is to try to keep as much as the interesting gameplay that comes from those features while keeping the player focused on the action. This is why we have the ability to place tactical structures during the battle as well as control points for resources but we don't focus on the micromanagement that comes with that in other games.
What are some of the sources of inspiration for the visual style behind End of Nations? How did the art style evolve over the life of the project?
The art style has been fairly consistent throughout. We want to make a modern military game pushed just enough in the future that we can do some interesting units without being completely tied down by current tech.
Can you provide some details on how maps with 56 simultaneous players will work in-game? That's a lot of units, how are you managing things like lag and managing the unit chaos?
When you enter the matter you are placed on a team of 4 (you can pre-make this team with friends beforehand if you want). Already this breaks our 28v28 map into 2 sides each with 7 teams of 4. We have a ping system as well as chat and, of course, many players are already comfortable with different voice chat options. However, the real key is in the map design. When we make these massive maps we make reasons for different people to be on different parts of the map.
What will be some of the various game modes available within the Conquer the World metagame? Will there be additional objectives within matches beyond simply destroying all the enemy forces?
The metagame has always been in place and it's always been a key element. The idea of persistence and having an effect on the world, a living world, that's the idea. One thing that we're doing is that we're approaching it almost as a sport, so there will be a season. About every month, or whatever time makes sense, there'll be a winner declared and we'll restart. On the individual map level we will have a variety of games types and sizes. Since we are an online persistent game we will be adding all the time and we definitely want those additions and changes to play into the ongoing story that will you see in the territory control metagame.
How will the gameplay experience differ if a player decides to opt for solo-play over being with a team? Is the goal to get everyone to play in groups or is there truly a place for the hard core introverts?
We want to encourage everyone to approach this as a multiplayer game but we are also cognizant of the lone wolf. This is one of the unexpected, and wonderful, consequences of having large maps. That we can be friendly to an individual while being a multiplayer game. In a map such as a 12v12 you can play as a solo player in the larger group. You can play in a competitive match without the high stress PvP situation of a traditional RTS.
What are some of your favorite unique units within the game?
I'm particularly fond of the Shadow Revolution Phantom class – specifically the Ravager and the Stalkers. Both are long range, hard hitting and the Stalkers are very stealthy, which matches my play style.
Were there some units that were harder to design/balance than others?
I wouldn't say there any particular units that were harder to create, but where the real challenge comes from is creating a wide variety of different units. How can we design units to allow for different types of strategies and still keep a fair balance with the factions/classes? In the end, I believe we did a great job at balancing all the factions and classes fairly, not giving any particular set of units a strong hold on the game.
Was End of Nations always going to be Free to Play or did things change during the development of the game? How do you allay the common fear that Free to Pay is a Pay to Win scheme?
For a premium strategy game like End of Nations, we really want to bring as many players as possible into its massive-scale strategic warfare. And as we looked at the enormous battles and huge persistent world, we realized that the success of End of Nations would be driven by having thousands of players from around the globe battling daily in the world's biggest strategy game. Essentially our goal is to minimize the barrier to entry and maximize the fun!
End of Nations is truly free to play—so no money or credit card is needed to play or succeed. Most items in the store will be purchasable with either End of Nations Wealth (currency earned in-game by playing) or with Trion Credits (purchased currency).
How does End of Nations fit into the ecosystem of other Free to Play MMO games?
We're focused on providing AAA titles with business models that make the most sense for the Trion community and players. We feel this model will best fit what we're offering with End of Nations, regardless of what other free to play MMOs are doing.
Is there anything we missed that you think is important? Any idea of when beta invites are going out? :D
Haha, look out for beta invites later this summer! :)
We'd like to thank Chris for taking the time to answer my questions as well as Range for helping to setup the interview. Travis Huinker also deserves props for contributing questions to the interview.
More On:
End of Nations
* The product in this article was sent to us by the developer/company for review.
Page 1 of 1
Previous Page
Next Page
Gaming News
Copyright © 1997 - 2014 Gaming Nexus.
All rights reserved. All trademarks are properties of their respective owners.


text:
NetPlug is an extensible multi-connections, multi-protocol, network client program, written in pure Tcl/Tk. Includes a complete Irc client plug in that you should love if you like IrcII 'classic' look & feel (plus customizable style/colors scheme, sound,... Now includes full DCC support (with GUI), ircII like aliases and improved scripting (Tcl!), keywords (your nick...) highlighting, and more
vTemplate is a PHP class that is intended to make splitting PHP from HTML a simple and natural task. It has easily understandable syntax that is much easier to use than other template classes. It compiles a template into native PHP code using one PCRE call, thus the parsing is extremely fast. It also has powerful caching and debugging classes to extend the functionality.
ajax-cross-browser-using-iframes uses Iframes, an empty div, and innerHTML, allowing you to create AJAX calls. It is a little bit confusing at first, but once you understand it and place the necessary nested PHP files, it will allow you to create unimaginable things. It is cross-browser.
jIRCii is a cross platform Internet Relay Chat client. It is fully scriptable using a Perl-like language called sleep. The focus is to provide a console client experience with the advantages of a solid GUI. It includes DCC/CTCP support, the ability to connect to SSL servers, and over 65 built-in commands.
Embperl gives you the power to embed Perl code in your HTML or XML/XSLT documents and the ability to build your Web site out of small reusable objects in an OO-style. It can also build taglibs and use caching. You can also take advantage of hundreds of Perl modules which have already been written for such tasks as database access to a growing number of database systems. Embperl has several features especially useful for creating HTML, including dynamic tables, formfield-processing, escaping/unescaping, session handling, and more. Embperl is a server-side tool, which means that it's browser-independent. It can run in various ways: under mod_perl, as a CGI script, or offline.
PDF::API2 is 'The Next Generation' of Text::PDF::API, a Perl module-chain that facilitates the creation and modification of PDF files. It features support for the 14 base PDF Core Fonts, TrueType fonts, and Adobe-Type1, with unicode mappings, embedding of bitmap images, compression via zlib, and a rich object-oriented API.
Class::Date provides a date datatype for Perl. You can create new Class::Date objects with a constructor from different scalar formats, array refs, and hash refs, and then you can easily manipulate it by the builtin "+" and "-" operators (e.g., $date=date([2001,03,15])+'3Y 1s'). Relative date types also available.
A system optimization tool.
A word processing component for .NET applications.

subset: commoncrawl


text:
Seascape Cottage Available August/September in Gulfport
- bedrooms 3
- baths 1
- sleeps 5
- pool no
- hot tub no
- pets allowed yes
- type House
- community
rates (USD)
/ night
$ 535 - $ 1,095 / week
$ 1,950 - $ 2,895 / month
vacation rental description
Seascpe Cottage is a Key West style cottage with beautiful waterviews located only 5 blocks from Gulfport Beach and downtown shops and restaurants. Beautiful gardens and furnished with cottage style furniture and all the electronic amenities such as cable TV, roku player, internet access, phone and fax. FREE BIKES from Bike Beach Rentals including child bikes and helmets. Cottage has 4 yards all good size. Furnishings are very cottage like and we are constantly told how comfortable it is. Masterbed is firm. If you are looking for a place to relax Seascape Cottage is the place to be. Once you visit you will want to come back year after year like most people who end up visiting. It is a very unique little town with some of the best restaurants and festivals in Florida. Search "Gulfport Gekofest" for video to watch.
vacation rental location
property availability
- dates with deals
- unavailable dates
Last modified on 07-19-2013 at 5:32 PM.
email owner view full calendar
Suzanne Armstrong 727-452-7756
house rental amenities
All kinds of outdoor recreationn available in the area from beaches to biking to kayaking to beach dog parks.
activities and attractions in Gulfport Gulf Coast Central
Boatinng and beaching and canoeing ad kayaking. Tennis and golf. Amusement parks all a short distance. Orlando only an hour away. World famous Fort Desoto Park 15 min drive
vacation rental rates
Pets are $30 per stay each pet.
Mentiob this ad and get $20 off your rate for August or September.
Higher rates are during peak tourist season. Please email or call for exact
Florida tourist tax is 12%.
Suzanne Armstrong 727-452-7756
accepted payment methods
Prior to paying a reservation deposit, always verify payment instructions by calling the phone number displayed on this listing page. By contacting the owner directly and paying by an approved method - credit card, paypal, check or bank transfer - your reservation payment will be protected up to $1,000.Learn more in our Security Center
Top things to do in Gulfport
- Eat
- Drink
- Eat some more
- Shop
- Walk, jog, bike or beach
Top things to do on a budget
- Walk
- job
- bike
- beach
- sightsee
Top things to do with a family
- amusement parks
- downtown St Pete
- Tampa
- beaches
Suzanne Armstrong , owner


text:
This was a post from someone else that got removed:
Originally Posted by another newb
my situation isnt quite the same, i didnt mess around with appulous, i just did the upgrades through cydia, and as a newb i did use some rock apps (all of which were available on cydia, rock just seemed to dl faster for me) after the last few updates (using both install programs) some of my programs stopped working and being available, now after rebooting it normally it locks in the lil apple boot screen than just turns off... any trick to bypassing this screen and doing a general restore on 3.1.2?
* i would appreciate any "i told you so's" being left to pm's or just kept to yourself, all im concerned with now is fixing the problem, i am already researching how not to do it again. Thanks again for all the input, hope ya'll can help!


text:
These days at Florida, Pease focuses primarily on the final score, not the stat sheet — even if winning is not always enough for fans.
The Gators were more efficient than electric on offense during a 24-6 season-opening win. Yet Pease rejected the popular notion that Florida's attack is "vanilla" or held back anything with Saturday's visit to Miami in mind.
"First off, I don't know what vanilla ... I've heard the word vanilla, I don't know what vanilla is," Pease said Tuesday. "I've never made a game plan with vanilla. I would feel too uncomfortable saying, 'We got to save all this, save all that.'"
The Gators played ball-control offense to slow down Toledo's up-tempo attack, which returned nine starters to a unit that averaged 31.5 points in 2012.
Florida ran the ball on 16 of 20 first-down plays, finishing with 262 yards on the ground and a 39:48-to-20:12 edge in time of possession.
The offensive philosophy might not bring fans in the Swamp to their feet like in the days of Steve Spurrier's Fun 'n Gun. But Pease maintains the Gators had their fair share of big plays Saturday, including three runs longer and two completions longer than 20 yards apiece.
It could have been more had receiver Solomon Patton not dropped a pass for another long gain. In addition, coaches said Toledo's defense played well off receivers to deter downfield throws.
"We can stretch the field if we want to stretch the field," said Pease, who is in his second season running UF's offense. "Did we have to stretch the field at a certain point in time? No. Did we have it in the game plan? Yes.
"I'm not sure what everybody wants, and I'm not saying you guys as much as things I hear on the outside — I understand. Are we gonna throw the ball 75 times a game and throw vertical? No."
The playcalling on first down Saturday was eerily similar to a season ago when the Gators became all too predictable, something Georgia's defense pounced on during a 17-9 win that cost Florida a chance for the SEC title.
But Pease said this year's offense is better equipped for big plays because of quarterback Jeff Driskel's improvement as a passer. Against Toledo, he finished 17-of-22 for 153 yards and a 4-yard touchdown pass to fullback Gideon Ajagbe.
Of Driskel's incompletions, two passes were dropped (Patton and Trey Burton), two were batted down and another was incomplete in the corner of the end zone to Quinton Dunbar.
"That's about the only one I think he really missed," Pease said of Driskel's throws to Dunbar.
Senior slot receiver Trey Burton, a former quarterback, said, "Twenty-one for 22 in our minds. It doesn't get much better than that."
But like everyone, Burton sees a lot of room for Florida to improve on the scoreboard.
"Off the top of my head, I can think of 17 points that we left on the field," he said.
Pease saw points, yards, first downs — you name it — that Florida left on the field.
Heading into Week Two, the 48-year-old Pease, a former college and professional quarterback, is more concerned with efficiency, execution and the evolution of players he can count on as the season unfolds.
"Do I want to see 300 passing yards? Absolutely." he said. "Is that going to be a reality? I don't know. I don't measure what a success, or what you guys want to write or what people want to see, totally on that.
"I'm not measuring it on yards. That's called, 'You're trying to get your guru card.' Maybe when I was 30 years old, but I'm not 30 years old anymore."
Email Edgar Thompson at firstname.lastname@example.com. Read the Swamp Things blog at www.orlandosentinel.com/swampthings. Follow our UF coverage on Twitter @osgators.


text:
Seattle >Arts & Entertainment > The Hideout
1005 Boren Ave, Seattle, WA | Directions 9810247.609494 -122.325270
Mon-Fri 4pm-2am
Sat-Sun 6pm-2am
Neighborhoods: Downtown, Central Business District
Artful walls & cocktails makes for a visually stimulating drinking destination on Pill Hill. LOVE the re-purposed cigarette, now art machine
Self absorbed princess bartender – I heard so many good things about this place, and was excited about checking it out. A few weeks ago, I went with 4 girlfriends. We waited 30 minutes before we went looking for the bartender. I noticed she was in the back, I could see her through a little window area. I was pleasant and asked when we could order our drinks. She responded with a glare, and said she was super busy. We waited another 15 minutes before she decided to do her pathetic job and as we tried to put in our order, she was too busy telling some guy the most boring details of her pathetic day. I wanted to leave, but at that point I figured I should get at least one drink, to say I had one there. As we sat I was amazed at how self absorbed this bartender was. It was hilarious! It was obvious that she thinks shes a princess and everyone should feel honored to hear every detail of her day/life. I will NEVER go back there and found out her name, but I won't mention it here. Too bad this place won't get any of my money since I'm an artist from NY, I could have brought in many wealthy patrons. Hope she gets a reality check! I've been to bars all over the world and have never seen a bartender behave that way.
Not as hidden as one would hope. – Not as speak easy as I had hoped for, clearly labeled on a main street with the letter H. Few outdoor signs though, but some do state cocktails and open. Inside its pretty dark, curtains over the windows, some couch sitting and seats at the bar. Tons of art decorations inside and my personal favorite the art vending machine (beware though some of these tiny things are up to 60$, but some cheap ones could be found). Lots of drink options, but very few food options. If you are hungry maybe try the thai place next door, or be prepared to make a meal of hummus and tapenade.
Strong drinks, friendly staff and chill – Behind the subtle entrance is a bar and art gallery with a speakeasy motif. Friendly bartenders, strong, unique cocktails and a calm ambiance in a clean, dim bar. A bit rowdy on some nights, particularly if there's live music, but generally it's a good place to chill with friends for an evening and have some drinks.
Quite bar with eye for art. – You probably won't end up in this bar except if a local friend takes you there or after reading this review. From the outside it's hard to see this is a bar, that's why it's called "Hideout". Inside on the main wall you will find interesting pieces of art (which are for sale) from various local artists. The bartender can tell you more about the artists behind the paintings but also about the various Belgian beers that are served. If you are sick of loud crowded bars or if you're up for a conversation with the bartender or other people this is the place to be!
dark and intimate – I first came to this bar for a going away evening wth some friends who had made this their regular stomping grounds. I could easily see why they felt so comfortable around the place. The bartenders are friendly and outgoing, and the drinks were all made very well. We even had some appetizers which were nice. I would come back here as a place to get together frequently, especially if I lived in the area.
So adorable for a cozy evening – This place is so adorable. It's dark enough inside for a cozy evening with a date or a couple close friends. If you are bored with conversation you can go over to the "juke box" to look at art or stare at the walls filled with accentric artwork. My fav. is the mushroom sketches. The drinks are normal seattle priced cocktails with very creative titles. Go check it out and enjoy. It will be a quiet evening. It's not the place to go for hooking up.
One of Seattle's best kept secrets, this treasured bar on First Hill attracts artists, writers, modern iconoclasts and random adventurers. – In Short
This loved neighborhood pub echoes a classic 1920's speakeasy with its old-fashioned crystal chandeliers, velvet drapes and dark mahogany bar and draws Seattle's coolest creatives with its carefree bohemian ambience and understated appeal. Famous not just for its delectable cocktails made with fresh hand-squeezed juices, the bar also boasts wall-to-wall paintings by Northwest artists rotated monthly and features the Vital 5 Review, a quarterly alcohol-fueled editorial written exclusively and submitted on site by its patrons.
Sign in with Facebook Sign in with Facebook to see what your friends are up to!
Do you have a review of The Hideout on your blog? If you include the Citysearch image link (shown below) in your post, we'll automatically link to your review from the business profile page. Here's how our Linkback system works:
The Linkback system is free and automatic. It's really that easy.
To link to our business profile page, copy the html below to your web page.


text:
Halifax Metro Centre Tickets can be purchased online with Guaranteed Delivery via FedEx. or call toll-free (866)789-1884. International shoppers call 615-846-6750.
Visitors Searching For:
- Halifax Metro Centre Information.
- Halifax Metro Centre Seating Chart
- Halifax Metro Centre Schedule
- Halifax Metro Centre Schedule
Have found this page useful.
© 2010 Openseats, Inc. All rights reserved.
Please note: All orders are processed by TicketsNow. Read the FAQ's.
Terms & Conditions,
Privacy Policy
Theater Tickets |
Comedy Tickets |
About / Contact Us |
All Events |
All Venues |
Site Map


text:
With its corporate headquarters in Raleigh, North Carolina, CARQUEST Auto Parts is the premier supplier of replacement products, accessories, supplies and equipment for virtually all makes of automobiles, as well as light and heavy-duty trucks, off-road equipment,buses, recreational vehicles and agricultural equipment. Additionally, it distributes and sell tools, equipment, chemicals, paint and accessories.
At CARQUEST, customer service is driven by 18,000 teammates who are passionate about delivering excellence in everything they do. This dedication is enhanced by a sophisticated network of distribution centers and advanced, automated inventory, and delivery management technology. CARQUEST always delivers the right products to the right place at the right time.
As vehicle design and engineering continues to evolve, CARQUEST is committed to helping professional technicians and automotive enthusiasts stay on top of the latest trends, components, techniques, skills and tools. From today's sophisticated steering and suspension systems to drivetrain systems, engine and mechanical systems, brake systems, emissions control, temperature control and electrical systems, CARQUEST is the leader in supporting the success of today's automotive professional.
On November 14, 2013, General Parts International, Inc. (GPI) held a Special Shareholders' Meeting at The Garden at Millbrook, 2400 E. Millbrook Rd., Raleigh, NC 27604. At the Special Meeting, GPI shareholders considered, and approved by the requisite vote, (i) the Agreement and Plan of Merger, dated as of October 15, 2013, as it may be amended from time to time, by and among GPI, Advance Auto Parts, Inc., Generator Purchase, Inc. and Shareholder Representative Services LLC (as Shareholder Representative), and the transactions contemplated thereby, including the merger, and (ii) certain merger-related executive compensation arrangements.


text:
Free Exposé
Exposé example
Michael Hastings!
For many people you are what is available about you on the web.
With the free Exposé you can determine what should be shown about your person on Yasni!
Post free Exposé
* With your Exposé you can use Yasni completly free of ads!


text:
Brooke and Chi-Lin, the gals from Sidecar Doughnuts & Coffee in Costa Mesa came today to whip up some of their delicious doughnuts, which are "made fresh daily from scratch.
Valentine's Highlights from Sidecar:
Wednesday, Feb 12 from 9am-12pm, we will have a 31 Bits pop-up shop so that folks can pick up a unique Valentine's gift while supporting a great cause... and can grab a doughnut and coffee while they're at it! Gift for them, gift for you!
Friday, Feb 14 we will have a fresh flower stand on site at the storefront so that folks can pick up the two best Valentine's gifts in one stop...doughnuts AND flowers!
Friday, Feb 14 we will be bringing our truck to Petals & Pop flower and gift shop in Seal Beach... once again, you will have the opportunity to get doughnuts and beautiful flowers for your loved ones in one fell swoop
We have tons of chocolate flavors on the menu this month in order to give folks an alternative to the traditional box of chocolates... try a box of chocolate doughnuts instead.
More about Sidecar:
Sidecar uses simple recipes, the freshest, most high-quality ingredients possible, and no preservatives or additives". They are "light and airy and never leave you with that heavy filling you often get when gorging on the breakfast treats!"
They make new batches of doughnuts on the hour to ensure they are always as fresh and warm as possible…what's better than a warm doughnut?! Flavors change every two weeks.
Their coffee comes from Portland's ever-popular Stumptown Coffee and are the only ones to do so in Orange County.
Sidecar has a new menu item, Sidecar Sundaes - customers choose a doughnut and we top it with Frozen Cow Creamery ice cream, house made hot fudge or salty caramel, sprinkles or toasted coconut, fresh whipped cream, peanuts and a cherry on top.
Chef and co-owner Brooke Desprez is a former caterer who has a down-to-earth philosophy when it comes to her cooking. She focuses on fresh and seasonal ingredients and is dedicated to consistently creating new and exciting flavors.
Chi-lin and Brooke have been friends for years and, as a huge fan of Brooke's cooking, and together they conceptualized Sidecar.
The Sidecar storefront is decked out in vintage and vintage-inspired fixtures and décor, including an old-school record player that's consistently playing great music and a hand-painted yellow/white checkered floor.
They had over 22,000 Instagram followers before opening our doors and now have close to 25K. They have followers from across the US and all over the world.
Find Sidecar at:270 East 17th Street #18Costa Mesa open daily 6:30am - 4pmWebsite:www.sidecardoughnuts.comTwitter: @sidecardoughnuts
Sharon Lawrence plays a therapist treating patients with eating disorders in the new Lifetime movie 'Starving In Suburbia.'
KTTV FOX 111999 S. Bundy Dr.Los Angeles CA 90025Main: (310) 584-2000News Tips? (310) 584-2025


text:
Preliminary investigation shows that a white Mercury Sable driven by Jessica Lynn Sanchez was traveling westbound on U.S. 50 in the eastbound travel lane. A green Ford Tempo with two occupants was traveling eastbound on U.S. 50 and was struck in the right front with the right front of the white Mercury. The 52-year-old female passenger of the green Ford was pronounced deceased at the scene. Both drivers sustained substantial injuries and both were transported to Renown Regional Medical Center in Reno via Care Flight helicopter. Alcohol is suspected as a contributing factor to the accident.
Once NHP is confident that family members have been notified of the event, names will be released.
Nevada Highway Patrol's Major Accident Investigation Team (M.A.I.T.) is investigating the accident. Witnesses to the event or anyone with additional information is encouraged to call the Department of Public Safety-Communications Center at 775-687-0400.


text:
Alternative Names
Onychocryptosis; Unguis incarnatus; Nail avlusion; Matrix excision
Definition of Ingrown toenail
An ingrown toenail occurs when the edge of the nail grows down and into the skin of the toe. There may be pain, redness, and swelling around the nail.
Causes, incidence, and risk factors
An ingrown toenail can result from a number of things, but poorly fitting shoes and toenails that are not trimmed properly are the most common causes. The skin along the edge of a toenail may become red and infected. The great toe is usually affected, but any toenail can become ingrown.
Signs and tests
An examination of the foot will show the following:
If you have diabetes, nerve damage in the leg or foot, poor blood circulation to your foot, or an infection around the nail, go to the doctor right away. Do NOT try to treat this problem at home.
Expectations (prognosis)
Treatment will generally control the infection and relieve pain. However, the condition is likely to return if measures to prevent it are not taken. Good foot care is important to prevent recurrence.
Linda Vorvick, MD, Medical Director, MEDEX Northwest Division of Physician Assistant Studies, University of Washington School of Medicine. Also reviewed by David Zieve, MD, MHA, Medical Director, A.D.A.M., Inc. – 10/12/2009


text:
Detroit >Beauty >
Spas >Bridge Spa
1570 Monterey St, Detroit, MI | Directions 4820642.389956 -83.105036
Sign in with Facebook Sign in with Facebook to see what your friends are up to!
Do you have a review of Bridge Spa on your blog? If you include the Citysearch image link (shown below) in your post, we'll automatically link to your review from the business profile page. Here's how our Linkback system works:
The Linkback system is free and automatic. It's really that easy.
To link to our business profile page, copy the html below to your web page.


text:
You have no items in your shopping cart.
Hover to zoom
Out of stock
Sign up to get notified when this product is back in stock
Edgar Renteria spent his first season with the Cardinals in 1999, the same year he signed this Topps baseball card contract. He had a six-year stretch in St. Louis that many people will remember him for. You can remember him with this contract.
ALL MEMORABILIA SALES ARE FINAL. Please read all Terms ... Read More
ALL MEMORABILIA SALES ARE FINAL. Please read all Terms and Conditions before making your purchase.
Only registered users can write reviews. Please, log in or register


text:
A Ribbeting Tale
January 1, 2014|
A famous frog-hopping contest yields data that challenge previous lab estimates of how far a bullfrog can jump.
January 1, 2014|
A famous frog-hopping contest yields data that challenge previous lab estimates of how far a bullfrog can jump.
January 1, 2014|
Researchers uncover an unprecedented relationship between morels and bacteria. But can it be called agriculture?
November 1, 2013|
A rare bleeding disorder leads scientists to uncover an unusual blood component that might be common to us all.
May 1, 2013|
A new DNA assay developed by forensic scientists helps archaeologists reconstruct eye and hair color from old teeth and bones.
September 1, 2012|
Researchers look to the emerging phenomenon of "crowdfunding" to pay for their work
September 1, 2012|
Researchers are learning how species from across the animal kingdom use seismic signals to mate, hunt, solve territorial disputes, and much more.
August 1, 2012|
People living on islands in the Norwegian Sea suffer from an unusually high rate of certain genetic diseases and health issues, making the population ripe for research.
August 1, 2012|
Researchers working in war-torn countries find hints to the molecular roots of posttraumatic stress disorder.
July 1, 2012|
ALS patients take their fate into their own hands, self-administering an unapproved chemical and collating their results online.
June 1, 2012|
Scientists at the American Museum of Natural History use DNA barcoding to show that even sardines infected with nematodes can still be kosher.


text:
No more lost arrows! Zwickey Judo Points have use spring arms to help prevent arrow loss in tall grasses when you're out in search of small game or just out stump shooting for practice. Quality built and ready for a day of archery fun.
Order ONLINE Today!
Zwickey Judo Point 100 Grain 2-Pk.
Zwickey Judo Point 125 Grain 2-Pk.
You qualify for a free gift. It will be added to your cart automatically.
Shop Similar Items
to find something that we have now or that can be backordered.
If you would like to be notified when we have this item available for sale, click
and enter your email address to receive an email notification.


text: EO is a template-based, ANSI-C++ evolutionary computation library that helps you to write your own stochastic optimization algorithms quickly. Evolutionary algorithms form a family of algorithms inspired by the theory of evolution, and solve various problems. They evolve a set of solutions to a given problem in order to produce the best results. These are stochastic algorithms because they iteratively use random processes. The vast majority of these methods are used to solve optimization problems, and may be also called "metaheuristics". They are also ranked among computational intelligence methods, a domain close to artificial intelligence. With the help of EO, you can easily design evolutionary algorithms that will find solutions to virtually all kind of hard optimization problems, from continuous to combinatorial ones.


text:
This section contains essays to simplify the use and deployment of SQL on the MonetDB platform. The topics are inspired by ongoing projects or specific user requests.
Graphical User Interfaces Graphical database utilities have been around for some time to support click-and-go interactions with a DBMS. They often support multiple database back-ends using a standard communication protocol, e.g. JDBC. MonetDB/JDBC makes such tools work flawlessly with the server and make your experience with MonetDB/SQL even better. Recommended GUIs are Squirrel and DBvisualizer.
The foundation for building your own applications rest on the programming language bindings provided.
mclient program is the universal command-line tool that implements the MAPI protocol for client-server interaction with MonetDB.
On a Windows platform it can be started using start->MonetDB->MonetDB SQL Client. Alternatively, you can use the command window to start
mclient.exe. Be aware that your environment variables are properly set to find the libraries of interest.
On a Linux platform it provides readline functionality, which greatly improves user interaction. A history can be maintained to ease interaction over multiple sessions.
The default setting is geared at establishing a guest connection to an SQL database at a default server running on the localhost. The
-h hostname specifies on which machine the MonetDB server is running. If you communicate with a MonetDB server on the same machine, it can be omitted.
Usage: mclient [ options ] Options are: -h hostname | --host=hostname host or UNIX domain socket to connect to -p portnr | --port=portnr port to connect to -u user | --user=user user id -d database | --database=database database to connect to -e | --echo echo the query -E charset | --encoding=charset specify encoding (character set) of the terminal -f kind | --format=kind specify output format {csv,tab,raw,sql,xml} -H | --history load/save cmdline history (default off) -i | --interactive read stdin after command line args -l language | --language=lang {sql,mal} -L logfile | --log=logfile save client/server interaction -s stmt | --statement=stmt run single statement -X | --Xdebug trace mapi network interaction -| cmd | --pager=cmd for pagination -? | --help show this usage message SQL specific opions -n nullstr | --null=nullstr change NULL representation for sql, csv and tab output modes -r nr | --rows=nr for pagination -w nr | --width=nr for pagination -D | --dump create an SQL dump -N | --inserts use INSERT INTO statements when dumping
The default
mapi_port TCP port used is 50000. If this port happens to be in use on the server machine (which generally is only the case if you run two MonetDB servers on it), you will have to use the
-p port do define the port to which the
mserver is listening. Otherwise, it may also be omitted. If there is more than one mserver running, you must also specify the database name
-d database. In this case, if your port is set to the wrong database, the connection will always be redirected to the correct one. Note that the default port (and other default options) can be set in the server configuration file.
Within the context of each query language there are more options. They can be shown using the command \? or using the commandline.
For SQL there are several knobs to tune for a better rendering of result tables (
shell> mclient -d database Welcome to mclient, the MonetDB/SQL interactive terminal (Apr2011-SP2) Database: MonetDB v11.5.2, 'database' Type \q to quit, \? for a list of available commands auto commit mode: on sql>\? \? - show this message \<file - read input from file \>file - save response in file, or stdout if no file is given \|cmd - pipe result to process, or stop when no command is given \h - show the readline history \t - toggle timer \D table- dumps the table, or the complete database if none given. \d[Stvsfn]+ [obj] - list database objects, or describe if obj given \A - enable auto commit \a - disable auto commit \e - echo the query in sql formatting mode \f - format using a built-in renderer {csv,tab,raw,sql,xml} \w# - set maximal page width (-1=unlimited, 0=terminal width, >0=limit to num) \r# - set maximum rows per page (-1=raw) \L file - save client/server interaction \X - trace mclient code \q - terminate session
SQuirreL SQL Client is a graphical Java program to view the structure of a JDBC compliant database, browse the data in tables, issue SQL commands, etc. It is a very cool tool. It can even draw dependency graphs based on the schema and foreign keys. The latest versions is available from their website. Download and install the software. The following scheme works for version 3.4.
After starting SQuirreL for the first time, it will load its default welcome screen. Locate the Drivers window and click to add a driver.
In the pop up form enter the driver name MonetDB, an example URL pointing to the database of interest
jdbc:monetdb://<host>[:<port>]/<database>, the website https://www.monetdb.org/Home. Now goto Extra Class Path and add the MonetDB JDBC driver jar file. The latest version can be downloaded from the MonetDB repository or came with your distribution, typically installed in
${prefix}/share/monetdb/lib/monetdb-jdbc-X.Y.jar. Next, click on the List Drivers button and it will insert
nl.cwi.monetdb.jdbc.MonetDriver to the Class Name field. Click OK.
Now create a new Alias to setup a connection. You will have to edit the alias to direct it to the proper database server (change URL) and use the proper user credentials. Explore the application and have fun!
DbVisualizer is a platform independent tool aimed to simplify database development and management for database administrators and developers. It's a very cool tool (can even draw dependency graphs based on the schema and foreign keys.
Free, personal use versions are available from their website. Download and install the software. The following scheme works for their versions 6.1.
After starting DbVisualizer for the first time, it will load its default welcome screen and starts the wizard to select database driver. Cancel this wizard and open the Driver Manager, using the menu Tools->Driver Manager... In the Driver Manager add a new Driver using Driver->Create Driver... Type the name of the driver in the Name field, e.g. MonetDB. Type the URL format for the driver: jdbc:monetdb://hostname/database. In the Driver File Paths box, follow the directions to load a JAR file that contains the JDBC driver. Use the MonetDB JDBC driver that came with your distribution, typically installed in ${prefix }/share/MonetDB/lib/monetdb-X.Y-jdbc.jar.
After adding, the window should list the driver class nl.cwi.monetdb.jdbc.MonetDriver and automatically fills it in in the Driver Class field. Close the Driver Manager window.
From the menu select Database->Create Database Connection. A pop-up dialog will try to pursue you to use the wizard. You know better so, click "No". Fill in the name for the connection in the Alias field, e.g. MonetDB. Select the monetdb driver from the list. Copy the default URL by clicking on the "URL Format: ..." text field and change it to reflect the right hostname (usually localhost will do). Fill in the default userid and password (monetdb). Press the "Connect" button. It will report the database being used and the JDBC driver in use. In the left pane the monetdb database now becomes available from browsing.
Explore the application and have fun!
A caveat of the free-version system is its performance on SQL scripts. They are sent as a single string to the server for execution. This is not the most optimal situation for MonetDB. Running a batch script is better started from the MonetDB SQL client.
Note: the jdbcclient tool is only provided for performing basic JDBC tests. It is not supported,
mclient should be used instead.
The textual client using the JDBC protocol comes with several options to fine-tune the interaction with the database server. A synopsis of the calling arguments is given below
java -jar ${prefix}/share/monetdb/lib/jdbcclient.jar \ [-h host[:port]] [-p port] \ [-f file] [-u user] [-l language] [-d [database]] \ [-D [table]] [-e] [-X<opt>]
or using long option equivalents –host –port –file –user –language –dump –echo –database. Arguments may be written directly after the option like -p50000.
If no host and port are given, localhost and 50000 are assumed. An .monetdb file may exist in the user's home directory. This file can contain preferences to use each time the program is started. Options given on the command line override the preferences file. The .monetdb file syntax is <option>=<value> where option is one of the options host, port, file, mode debug, or password. Note that the last one is perilous and therefore not available as command line option. If no input file is given using the -f flag, an interactive session is started on the terminal.
NOTE The JDBC protocol does not support the SQL DEBUG <query>, option. Use the mclient tool instead.
-h --host
-p --port
-f --file
-u --user
-d --database
-l --language
-e --echo
-q --quiet
-D --dump
There are many ways in which you can insert data into an SQL table in MonetDB. Here we will explain the pros and cons of various methods.
The easiest way to insert data is to use the
INSERT INTO query:
INSERT INTO table VALUES (1, 2, 3);
The benefit is clear: this is very straightforward. However, this is a seriously inefficient way of doing things in MonetDB.
MonetDB, by default, runs in auto-commit mode. This means that each query is a database transaction. This in turn means that each query that changes the database necessarily causes a write to the disk in order to safeguard the change. This is a serious bottleneck. As you can see on Wikipedia, a typical 7,200 rpm SATA drive can do about 75 to 100 I/O operations per second. Since each INSERT is at least one I/O operation (depending on, among others, the underlying operating system), this limits throughput severely.
A much better way to do lots of inserts is to make sure the inserts are bundled into a single transaction. This can easily be done by surrounding the inserts with a
START TRANSACTIONand
COMMIT, as in:
INSERT INTO table VALUES (1, 2, 3);
An other way of accomplishing the same result is to clear the auto-commit mode in the server. How this is done depends on how you connect to the server. In ODBC this can be done with a call to the function
SQLSetConnectAttr(), in JDBC it can be done with a call to the
setAutoCommit()method. In the
mclienttool, it can be done when using it interactively with the
\acommand, and from the Apr2012 release forward, by using the
-acommand line option.
Note that the variant
INSERT INTO table VALUES (1, 2, 3), (3, 4, 5), (6, 7, 8);
is also supported by MonetDB. However, this variant is not to be recommended for large numbers of tuples since it uses a lot of stack space on the server, and stack space is a very limited commodity. In other words, if you try to insert too many tuples in one go, the query will fail, or worse, the server will crash.
A slightly faster way of inserting data is to use a prepared query. In ODBC you would call:
SQLPrepare(hdl, "INSERT INTO table VALUES (?, ?, ?)", SQL_NTS);
you will also need to call
SQLBindParameter()for each of the parameters in the query, and then call
for each insert. As before, all insert queries should be done in a single transaction.
In JDBC a similar sequence using a PreparedStatement can be used. Also consider using the JDBC batching functionality.
The methods discussed so far share another disadvantage: even if the server has multiple CPUs/cores, the server will only use a single one at a time because each insert is a separate query. There is also a way to more fully use the CPU power of the system by using COPY INTO. COPY INTO is a single query that takes a complete file of comma-separated values (CSV) and inserts the data in one go. The values don't actually have to be comma-separated, any delimiter will do. Since COPY INTO is a single query, whether or not auto-commit mode is enabled doesn't matter.
COPY INTO comes in many variants. The easiest form is:
COPY INTO table FROM 'file';
The 'file' must be an SQL string that contains the absolute path name of the file to be inserted. The file is read directly by the server, and so has to be accessible to the server. By default, the field delimiter is '|', i.e. a vertical bar, and the record delimiter is '\n', i.e. a newline. The delimiters can be changed:
COPY INTO table from 'file' USING DELIMITERS '|','\n';
Often CSV-encoded files use quote characters to surround field values. By default, no quote characters are recognized, but by using the following form, they will be recognized:
COPY INTO table from 'file' USING DELIMITERS '|','\n','"';
When using quote characters, the other delimiters can be part of the value, and the quote character itself can be part of the value if it is preceded by a \ (backslash) or if it is doubled. The backslash itself must also be doubled.
Often NULL values need to be inserted as well. By default, a NULL value is indicated by using NULL in the CSV file, but often the actual value used is different, e.g. no value. This can be indicated by using:
COPY INTO table from 'file' USING DELIMITERS '|','\n','"' NULL AS '';
When the data is not directly accessible to the server but is accessible to the client, the 'file' in the above queries can be replaced by STDIN:
COPY INTO table FROM STDIN;
When using STDIN, the contents of the CSV file should follow the query. This form is not directly usable in ODBC or JDBC, but see SQLcopyinto.java for an example of how to use this from Java. If using the mclient tool and the CSV data is in a file by itself, you can use the command (also see the mclient manual):
mclient -d database -s "COPY INTO table FROM STDIN USING DELIMITERS ',','\\n','\"'" - < file
The COPY INTO forms mentioned so far share one important drawback. When a lot of data is to be inserted, the server doesn't know how much memory to allocate for the tables, and so will likely allocate too little. This means that during the insertion process, the server has to grow the allocated memory area. This can be an expensive operation. Therefore, it is better to give the server a count of how many records are to be inserted:
COPY n RECORDS INTO table FROM 'file';
Here n should be a number that is at least as large as the actual number of records to be inserted. If the file contains more than n records, only n will be inserted, if the file contains fewer, all values will be inserted. Giving a higher number is especially useful if multiple COPY INTO queries are to be done on the same table. The first COPY INTO, when the table is still empty, should be the total count of to-be-inserted values so that the server will allocate enough memory when the tables are first created (they are only really created once data is inserted).
This form is the fastest way of inserting data into MonetDB.
One more elaboration of the COPY INTO form is to specify an offset into the CSV file. Often CSV files contain header information that is not part of the actual data. This header information can be skipped by using the form
COPY n OFFSET m RECORDS INTO table FROM 'file';
Here n is the number of records to insert and m is the first record to be inserted where the first record in the file is called 1 (i.e. counting is 1 based).
A database is often populated with the SQL COPY statement using an ASCII representation of a table with column and record separators, e.g. a CSV file. This scheme is preferred for almost all situations. Its performance is mostly determined by parsing cost of turning ASCII value representation into the native binary one. The MonetDB copy process is highly optimized for multi-core systems, where several threads in parallel handle variable length records efficiently.
When large tables are migrated between MonetDB instances, or when large tables are produced by a trusted external program, a slightly faster loading track can be used instead. This saves rendering of data into ASCII and subsequent parsing of the data being exchanged. For this to work, the user creates the binary version of the BAT storage and 'attach' it to the SQL catalog using a variation of the COPY command.
To illustrate, consider the following snippet:
create table Tmp( i integer, f real, s string); copy binary into Tmp from ('path_to_file_i', '
file_f', '
Each attachment file is produced by a program that writes the binary image of the BAT directly, i.e. a binary dump of an C-array. For the SQL types char (1 byte), tinyint (8-bits), smallint (16-bits), int/integer (32 bits), and bigint (64 bits) correspond with the C types directly; real and double are mapped onto type float and double in C, respectively. For variable length strings, the file must have one C-based string value per line, terminated by a newline, and it is processed without escape character conversion. MonetDB assumes that all files are aligned, i.e. the i-th value in each file corresponds to the i-th record in the table.
All other types (including UTF8 and escaped characters) should be handled using the default COPY INTO language construct.
The file names must be absolute paths to the column input files. They must reside on the same file system as the database farm and they will replace the content of the table Tmp. The files with numeric data are moved into place to avoid copying. String input files are retained in their original location and should be removed by the user.
WARNING: currently, upon discovering an error in the input, the files are 'gone'.
In many cases, the data that is supposed to be stored in MonetDB is created by a large-scale data aggregation process. Apache Pig is a popular tool for this task. There is a possibility of directly generating MonetDB binary column files using the MonetDB-Pig-Layer.
Inside a Pig script, this is used as follows:
STORE raw INTO './results/' USING nl.cwi.da.monetdb.loader.hadoop.MonetDBStoreFunc;
An open source solution provides a stepping stone for others to extend its kernel functionality with specific types and functions. Experience shows that the need for those are fairly limited. Often the use of the built-in data types, the MAL algebra and functional abstraction, provide the necessary toolkit to achieve your goal.
In the few cases where the MonetDB kernel and SQL runtime system needs extensions, it calls for access to the source code of MonetDB and proficiency in C-programming, compilation and debugging. The openess of MonetDB means that extensions are not sand-boxed; they run within the system address space. Moreover, the multi-layered architecture means you have to make the functions written in C known to the MAL interpreter, before they can be made known to the SQL compiler. The current setup makes this a little more cumbersome, but the added benefit is that both simple scalar functions and columnar operations can be introduced.
In this section we show how to extend SQL with a simple scalar function to reverse a string, i.e.
sql> select 'hello',reverse('hello');
| hello | olleh |
step 1. You should access and be able to compile and install MonetDB in a private directory.
step 2. Go to the
sql/backends/monet5/UDF directory from the sources top directory. It provides the reverse example as a template. A group of user-defined functions is assembled in a directory like UDF. It contains files that described the SQL signature, the MAL signature, and the C-code implementation.
step 3. Extension starts with a definitin of the MAL signatures. See the example given, or browse through the files in
monetdb5/modules/mal/*.mal to get a glimpse on how to write them. The MonetDB kernel documentation provides more details. The file contains the MAL snippet:
command reverse(ra1:str):str
address UDFreverse
comment "Reverse a string";
step 4. The signature says that it expects a command body implementation under the name UDFreverse, shown below. The C-signature is a direct mapping, where arguments are passed by reference and the return value(s) references are the first in the arguments list. The body should return a (malloced) string to denote an exception being raised or MAL_SUCCEED upon access.
#include "udf.h"
static str
reverse(const char *src)
size_t len;
str ret, new;
/* The scalar function returns the new space */
len = strlen(src);
ret = new = GDKmalloc(len + 1);
if (new == NULL)
return NULL;
new[len] = 0;
while (len > 0)
*new++ = src[--len];
return ret;
UDFreverse(str *ret, str *src)
if (*src == 0 || strcmp(*src, str_nil) == 0)
*ret = GDKstrdup(str_nil);
*ret = reverse(*src);
return MAL_SUCCEED;
step 5. The next step is to administer the routine in the SQL catalog. This calls for a SQL statement to be executed once for each database. The autoload method can relieve you from loading the modules manually in the server after each restart. The UDF template contains the file
80_udf.sql and
80_udf.mal. The former contains the definition needed for SQL:
create function reverse(src string)
returns string external name udf.reverse;
step 6. The MAL interpreter should be informed about the linked in functionality. This is faciliated using an autoload feature too. The MAL script simply contains the module signature.
include udf;
step 7. After all pieces are prepared, you have to call the bootstrap program in the root of your checked out source tree once. Thereafter a configure/make/make install attempts compilation and places the interface files and libraries in the proper place.
Creation of bulk and polymorphmic operations require much more care. In general, it is best to find an instruction that is already close to what you need. Clone it, expand it, compile it, and test it. A bulk variation of the reverse operation is included in the sample UDF template. As a last resort you can contact us on the mailing lists for further advice.
Every SQL query passes a series of optimizer steps to arrive at a more efficient execution plan. The steps taken are denoted as a 'optimizer pipe' identified by a name, e.g. default_pipe. The active pipe is denoted by the SQL global variable called, e.g.
sql>select optimizer;
| single_value |
| default_pipe |
1 tuple (0.863ms)
[TO BE REPLACED, It does not support concurrent use] The SQL implementation comes with a simple query profiler to detect expensive queries. It is centered around two predefined tables that stores information about all SQL queries definitions and their execution time.
The history table is controlled by the boolean system variable 'history'. After this variable is set, each query compiled added to the cache is also entered into the 'queryHistory' table using a hardwired call to the procedure 'keepQuery'.
create table queryHistory( id wrd primary key, defined timestamp, -- when entered into the cache name string, -- database user name query string, -- original text parse bigint, -- time in usec optimize bigint -- time in usec );
The query performance is stored in the 'callHistory table. The key timing attributes are 'xtime', i.e. the time to prepare for the answer, and 'rtime', i.e. the time to render the result set and sent it to the user. All timing in usec.
The remaining parameters illustrate the resource claims. The 'tuples' attribute denotes the size of the result set in number of rows. The 'foot'-print depicts the maximum amount of memory claimed to keep all relevant intermediates and persistent bats in virtual memory at any given time during query execution. The 'memory' parameter is total amount of BAT storage claimed during query execution. The 'inblock' and 'oublock' indicate the number of physical IOs during the execution.
create table sys.callHistory( id wrd references queryHistory(id), -- references query plan ctime timestamp, -- time the first statement was executed arguments string, exec bigint, -- time from the first statement until result export result bigint, -- time to ship the result set to the client foot bigint, -- footprint for all bats in the plan in bytes memory bigint, -- storage size of intermediates created in bytes tuples wrd, -- number of tuples in the result set inblock bigint, -- number of physical blocks read oublock bigint -- number of physical blocks written ); create view queryLog as select * from sys.queryHistory qd, sys.callHistory ql where qd.id= ql.id;
The following code snippet illustrates its use.
sql>set history=true; sql>select 1; +--------------+ | single_value | +==============+ | 1 | +--------------+ 1 tuple sql>select 1; +--------------+ | single_value | +==============+ | 1 | +--------------+ 1 tuple sql>select * from sys.queryHistory; +---------+----------------------------+---------+-----------------------------+-------+----------+ | id | defined | name | query | parse | optimize | +=========+============================+=========+=============================+=======+==========+ | 1010556 | 2010-05-15 22:07:29.000000 | monetdb | select 1; | 3473 | 224 | | 1010655 | 2010-05-15 22:07:47.000000 | monetdb | select * from queryhistory; | 593 | 1090 | +---------+----------------------------+---------+-----------------------------+-------+----------+ 2 tuples sql>select * from sys.callHistory; +---------+----------------------------+---------------+-------+-------+--------+--------+--------+---------+---------+ | id | ctime | arguments | exec | result| foot | memory | tuples | inblock | oublock | +=========+============================+===============+=======+=======+========+========+========+=========+=========+ | 1010556 | 2010-05-15 22:07:29.000000 | user.s2_1(1); | 0 | 6 | 0 | 0 | 1 | 0 | 0 | | 1010556 | 2010-05-15 22:07:31.000000 | user.s2_1(1); | 1 | 6 | 0 | 0 | 1 | 0 | 0 | | 1010655 | 2010-05-15 22:07:47.000000 | user.s3_1(); | 731 | 95 | 149456 | 149456 | 2 | 0 | 0 | +---------+----------------------------+---------------+-------+-------+--------+--------+--------+---------+---------+ 3 tuples sql>select id, query, avg(exec) from sys.queryLog group by id,query; +---------+-----------------------------+------------------------+ | id | query | L4 | +=========+=============================+========================+ | 1010556 | select 1; | 0.5 | | 1010655 | select * from queryhistory; | 731 | | 1010744 | select * from callhistory; | 1100 | +---------+-----------------------------+------------------------+ 3 tuples sql>call sys.resetHistory();
QueryHistory and callHistory are ordinary tables linked with a foreign-key constraint, which can be cleaned using the procedure resetHistory.
The code produced by MonetDB/SQL is massaged by an optimizer pipeline. The pipeline to be used is identified by the SQL global variable
optimizer, which can be modified using a SQL assignment, e.g. the minimal optimizer pipeline is set using:
sql>set optimizer='minimal_pipe';
sql>select optimizer;
| single value |
| minimal_pipe |
Each pipeline consists of a sequence of MAL function calls that inspect and transform the plan for better execution. The preferred optimizer can be changed by either providing its name or the complete MAL function sequence. For example the minimal pipe can be set also using:
sql> set optimizer='optimizer.inline();optimizer.remap();optimizer.deadcode();optimizer.multiplex();optimizer.garbageCollector();';
The final result of the optimizer steps becomes visible using the SQL EXPLAIN statement modifier. Alternatively, the SQL DEBUG statement modifier in combination with the 'o' command provides access to the intermediate optimizer results.
Several optimizer pipelines are pre-defined in the MonetDB sources. They represent ongoing development activities and experimental code. Their scope of applicability and/or stability has not reached a satisfactory level to include it in the default pipeline. The predefined optimizer pipelines can be inspected as follows: (as of Apr12 release)
sql>select * from optimizers();
A user-defined optimizer pipeline is checked against the dependency information maintained in the optimizer library to ensure there are no conflicts and at least the pre-requisite optimizers are used.
The default SQL optimization pipe line contains the following steps:
|Inline functions identified as such.
|Locate hardwired multiplex operations.
|Evaluate constant expressions.
|Inspects the SQL catalog for size information.
|Performs static type coercions.
|Removes empty set expressions
|Remove alias assignments.
|Horizontal fragmentation.
|Expand horizontal fragmented plans.
|Remove duplicate expressions.
|Searchs multiple joins and glues them together for better runtime optimization.
|Remove all code not leading to used results.
|Reduces the stack space for faster calls.
|Injects calls to the garbage collector to free up space.
|item Prepare code for multi-core execution
|Expand all remaining multiplex operations to iterators.
Topic How to set up a cluster of three MonetDB servers belonging to the same group.
Building a distributed system using the MonetDB infrastructure requires a number of machines that run monetdbd (see its man-page for details). Assume three machines to be as workers, called
leeghwater. Provided MonetDB/SQL has been compiled and installed on each of the workers, perform the following steps on each worker to get monetdbd running:
worker% monetdbd create /fullpath/to/mydbfarm
worker% monetdbd set passphrase=mypassphrase /fullpath/to/mydbfarm
worker% monetdbd start /fullpath/to/mydbfarm
This creates the location for the database on each worker and sets the private control passphrase for the MonetDB daemon to "mypassphrase". The final step is to activate the daemon itself. This is basically all you need to initialise a cluster of MonetDB instances.
Assume you have likewise initialized MonetDB on your desktop, named
willem, from which you will control the MonetDB instances. On the desktop machine you can use the following command to show which machines guarded with monetdbd can be reached:
willem% monetdb discover
Amongst others it will show you the workers you just initialized. From our machine
willemwe can further work with the cluster by addition of a database called
pumpon each node as follows:
% monetdb -h cruquius -P
create pump
willem% monetdb -h lijnden -P
create pump
willem% monetdb -h leeghwater -P
create pump
The discover command will not show them yet, as they are still in maintenance mode.
Beware, these three identically named databases are not related to each other in any way, i.e. access control and database content can be different for each individual database
pump. They are logical names to be refined using role tags to designate their function. Consider we use two server instances to act as harvey[1,2] and one as fox. How these functionalities behave is beyond the control of the MonetDB daemon. It suffices to setup the shared property tag to designate them all to belong to the same group.
% monetdb -h cruquius -P
set shared=pump/2/harvey pump
willem% monetdb -h lijnden -P
set shared=pump/2/fox pump
willem% monetdb -h leeghwater -P
set shared=pump/1/harvey pump
Now that we have set them up, they can be made available for use:
willem% monetdb -h cruquius -P
release pump
willem% monetdb -h lijnden -P
release pump
willem% monetdb -h leeghwater -P
release pump
mclientconnection can now go to any of the hosts directly, or use a pattern to find the right machine. Given the example above with our tags, for instance the following two mclient calls connect to
lijndenand round-robin to
willem% mclient -d '*/pump/2'
willem% mclient -d '*/pump/*/harvey'
Modern dataware houses are not confined to strict tabular data loaded into the database using the COPY INTO statement. In many areas, most notably in the scientific domains, proprietary file formats have been designed, augmented with libraries to create and inspect them. MonetDB recognizes the value of such choices and provides an easy way to open up these treasure chest for SQL querying. Therefor, it introduces a series of data vault, each geared towards supporting a well-defined foreign file format.
This topic is the focus in ongoing research [1].
Sampling a database is a essential step to improve the response time for database exploration. In the context of the SciBORQ project, we introduce a number of sampling techniques in the MonetDB software stack. Our goal is to provide methods for performing sampling (uniform and weighted) over a) the result of a query, b) the base tables, and c) the entire database schema. Sampling can be performed during query execution, as well as during data loading in the case of predefined sampling indexes. The sampling methods included in the distribution are described below.
Uniform Sampling.
A new SQL operator has been added to support sampling the result of a query.
If <expr> is an integer literal greater than 1, it defines the number of rows to be included in the sample. If <expr> is a real literal between [ 0.0, 1.0 ] it refers to the percentage of the result set to be sampled. For example, if <expr> is 0.3 then the sample will contain 30% of the rows in the query result.
SAMPLE is treated as a variation of the LIMIT, ORDER BY, etc. clauses, which means it can only be in the outer most SELECT clause. SAMPLE cannot appear in a subquery, but this can be circumvented using a table producing function, for example
CREATE FUNCTION mysample ()
RETURNS TABLE(col a,...)
SELECT a,...
FROM name_table
and then use function mysample() to create a sampled table E.g.,
INSERT INTO sample_table (SELECT * FROM mysample());
The implementation of the uniform sampling is based on the algorithm A as described in the paper "Faster Methods for Random Sampling" by Jeffrey Scott Vitter [1]. Algorithm A is not the fastest one, but it only makes <expr> calls in function random() and it is simpler than the other more complex and CPU intensive algorithms in the literature. Algorithm A instead of performing one random experiment for each row to decide if it should be included in the sample or not, it skips <expr> rows and includes the next row found. The algorithm scans the input relation sequentially and maintains the uniqueness and sort properties. The sample is without replacement.
The easiest method to move a MonetDB to a new location, or to create a copy for back-up purposes, runs as follows. First stop the database server by calling the monetdb management tool
bash> monetdb lock dbname
When the server is stopped, you can still connect as a database administrator to ensure that all (update) queries have ceased execution (see system monitor). Once satisfied that the activity has ceased, you can either follow the safe route to dump/restore a database, or perform a file-level RSYNC or RCP to copy the complete <dbfarm>/<dbname> directory to another dbfarm location. The MonetDB daemon process attached to the remote <dbfarm> will pick it up and makes it visible for connections. Finally, perform the following operation to continue processing user requests at the orginal server.
bash> monetdb release dbname
Timing a query execution is supported in multiple ways, but largely depends on what you want to measure. Point-to-point wall clock time, or the actual behavior of kernel operations.
(1) The baseline is to use simple command line tools, such at TIME on Linux to assess the performance of running a script against mclient. Beware that /bin/time and /usr/bin/time are not the same, they mainly measure and report the wall-clock time spent by the given command/process. See their respective man pages for details.
(2) The next approach is to use the "--interactive" option of the mclient tool, which will report on the timing of each individual SQL query in a script in easy human consumable terms. It returns the wall-clock time between sending the query to the server and receiving the first block of answers. Its rendering can be controlled (see mclient).
(3) The query history can also be maintained in a separate log for post analysis. (see description)
Thus, (1) includes everything from loading the mclient binary and starting the mclient process, parsing the query in mclient, sending to the server, having the server execute the query and serialize the result, sending the result back to the client, to the client receiving, parsing and rendering the result, and sending the result to /dev/null ("for free"), to a file (I/O), or to a terminal (scrolling). (2) merely includes the time the server spends on receiving and executing the query and creating the result. The abovementioned costs on the client side to receive, parse, render, etc. the result are excluded
A detailed time of a SQL query can be obtained with prepending the query with the modifier TRACE. It will produce a queryable table with a break down of all relational algebra operations (see TRACE command). The offline tools stethoscope and tomograph provide further details for those interested in the inner working of the system. It provides a hook to many system parameters, e.g. input/output, cpu cycles, thread use...
Timing a database query should be done with care. Often you will notice differences in response time for the same query ran multiple times. The underlying cause can be that the data itself resides on disk (slow) or is already avaiable in the memory caches (fast), a single user runs queries (fast) or has to compete with other users (slow), including competing with other processes on your box fighting over cpu, memory, and IO resources. As a precaution you might want to flush the system caches. The Windows tool flushes the cache. You'll need to press the "Flush Cache WS" and "Flush All Standby" buttons. On Linux you have to create a little job that consumes all memory.
For more general information on running experiments and measuring time, see our performance tutorial.
The SQL implementation comes with a simple query profiler to detect expensive queries. It is centered around two predefined internal tables that stores information about all SQL queries definitions and their execution time. It is controlled by calling the procedure querylog.enable(), where after each query compiled and added to the cache is also entered into the 'querylog.catalog' table. Query logging stops by calling procedure querylog.disable().
table sys.querylog_catalog(
id oid,
owner string,
defined timestamp,
query string,
pipe string,
optimize bigint -- time in microseconds
The query performance is stored in the table 'querylog_calls'. The owner of the query definition is also the one that will be referenced implicitly from the call events. The key timing attributes are 'run', i.e. the time to prepare the result set , and 'ship', i.e. the time to render the result set and sent it to the client. All timing in microseconds.
The remaining parameters illustrate the resource claims. The 'tuples' attribute denotes the size of the result set in number of rows. The 'space' depicts the total size of all temporary columns created during query execution. Note, the space is allocated and freed during the query execution, leading to a much less demanding actual memory footprint. The 'cpu' load is derived from the operating system system statistics (Linux only) and is given as a percentage. The same holds for the io waiting time.
table sys.querylog_calls (
id oid, -- references query plan
"start" timestamp,-- time the statement was started
"stop" timestamp,-- time the statement was completely finished
arguments string, -- actual call structure
tuples wrd, -- number of tuples in the result set
run bigint, -- time spent (in usec) until the result export
ship bigint, -- time spent (in usec) to ship the result set
cpu int, -- average cpu load percentage during execution
io int, -- percentage time waiting for IO to finish
space bigint -- total storage size of intermediates created (in MB)
create view sys.querylog_history as
select qd.*, ql."start",ql."stop", ql.arguments, ql.tuples, ql.run, ql.ship, ql.cpu, ql.space, ql.io
from sys.querylog_catalog() qd, sys.querylog_calls() ql
where qd.id = ql.id and qd.owner = user;
The following code snippet illustrates its use.
sql>call sys.querylog_enable();
sql>select 1;
sql>select 1;
sql>select * from sys.querylog_catalog;
sql>select * from sys.querylog_calls;
sql>select * from sys.querylog_history;
sql>select id, query, avg(run) from sys.querylog_history group by id,query;
sql>call sys.querylog_disable();
sql>call sys.querylog_empty();
The storage footprint for any given database schema can be obtained by inspecting the table producing function
storage(). To illustrate below we see the storage characteristics of the lineitem table in TPCH SF-1. The column width for variable length strings, e.g. l_shipinstruct and l_comment, represents the average length found using a sample over the underlying column storage.
sql>select * from storage() where "table" = 'lineitem';
| schema | table | column | type | location | count | typewidth | columnsize | heapsize | indices | sorted |
| sys | lineitem | l_orderkey | int | 11/1175 | 6001215 | 4 | 24004860 | 0 | 0 | true |
| sys | lineitem | l_partkey | int | 11/1176 | 6001215 | 4 | 24004860 | 0 | 0 | false |
| sys | lineitem | l_suppkey | int | 11/1177 | 6001215 | 4 | 24004860 | 0 | 0 | false |
| sys | lineitem | l_linenumber | int | 12/1200 | 6001215 | 4 | 24004860 | 0 | 0 | false |
| sys | lineitem | l_quantity | int | 12/1201 | 6001215 | 4 | 24004860 | 0 | 0 | false |
| sys | lineitem | l_extendedprice | decimal | 12/1202 | 6001215 | 8 | 48009720 | 0 | 0 | false |
| sys | lineitem | l_discount | decimal | 12/1203 | 6001215 | 8 | 48009720 | 0 | 0 | false |
| sys | lineitem | l_tax | decimal | 12/1204 | 6001215 | 8 | 48009720 | 0 | 0 | false |
| sys | lineitem | l_returnflag | varchar | 12/1205 | 6001215 | 1 | 6001215 | 10240 | 0 | false |
| sys | lineitem | l_linestatus | varchar | 12/1206 | 6001215 | 1 | 6001215 | 10240 | 0 | false |
| sys | lineitem | l_shipdate | date | 12/1207 | 6001215 | 4 | 24004860 | 0 | 0 | false |
| sys | lineitem | l_commitdate | date | 12/1210 | 6001215 | 4 | 24004860 | 0 | 0 | false |
| sys | lineitem | l_receiptdate | date | 12/1211 | 6001215 | 4 | 24004860 | 0 | 0 | false |
| sys | lineitem | l_shipinstruct | varchar | 12/1212 | 6001215 | 11 | 6001215 | 10240 | 0 | false |
| sys | lineitem | l_shipmode | varchar | 12/1213 | 6001215 | 4 | 6001215 | 10240 | 0 | false |
| sys | lineitem | l_comment | varchar | 12/1214 | 6001215 | 26 | 24004860 | 268435456 | 0 | false |
| sys | lineitem | lineitem_orderkey | oid | 14/1472 | 6001215 | 8 | 48009720 | 0 | 0 | false |
| sys | lineitem | lineitem_partkey | oid | 14/1445 | 6001215 | 8 | 48009720 | 0 | 0 | false |
| sys | lineitem | lineitem_suppkey | oid | 14/1461 | 6001215 | 8 | 48009720 | 0 | 0 | false |
| sys | lineitem | lineitem_partsuppkey | oid | 15/1503 | 6001215 | 8 | 48009720 | 0 | 0 | false |
To estimate the storage footprint for a variation of this scheme, we first construct a relation with the model input. Thereafter it can be updated to reflect the expected database size and varwidth properties. The footprint then becomes available as table producing function
storagemodel(). Also be aware that dictionary encoding may have taken place, which leads to a much less storage footprint (see l_shipinstruct). Dictionary encoding is currently a runtime feature, it depends on insertion sequence and the dictionary size. It may lead to an overshoot in the estimated size. Therefore, the size of varchar columns should be taken with a grain of salt.
sql>call storagemodelinit();
sql>update storagemodelinput set count = 1000000 where "table"='lineitem';
sql>update storagemodelinput set "distinct" = 1000 where "table"='lineitem' and "type"='varchar';
sql>update storagemodelinput set "distinct" = 330000 where "table"='lineitem' and "column"='l_comment';
sql>select * from storagemodel() where "table" = 'lineitem';
| schema | table | column | type | count | typewidth | columnsize | heapsize | indices | sorted |
| sys | lineitem | l_orderkey | int | 1000000 | 4 | 4000000 | 0 | 8000000 | true |
| sys | lineitem | l_partkey | int | 1000000 | 4 | 4000000 | 0 | 8000000 | false |
| sys | lineitem | l_suppkey | int | 1000000 | 4 | 4000000 | 0 | 8000000 | false |
| sys | lineitem | l_linenumber | int | 1000000 | 4 | 4000000 | 0 | 0 | false |
| sys | lineitem | l_quantity | int | 1000000 | 4 | 4000000 | 0 | 0 | false |
| sys | lineitem | l_extendedprice | decimal | 1000000 | 8 | 8000000 | 0 | 0 | false |
| sys | lineitem | l_discount | decimal | 1000000 | 8 | 8000000 | 0 | 0 | false |
| sys | lineitem | l_tax | decimal | 1000000 | 8 | 8000000 | 0 | 0 | false |
| sys | lineitem | l_returnflag | varchar | 1000000 | 1 | 1000000 | 11240 | 0 | false |
| sys | lineitem | l_linestatus | varchar | 1000000 | 1 | 1000000 | 11240 | 0 | false |
| sys | lineitem | l_shipdate | date | 1000000 | 4 | 8000000 | 0 | 0 | false |
| sys | lineitem | l_commitdate | date | 1000000 | 4 | 8000000 | 0 | 0 | false |
| sys | lineitem | l_receiptdate | date | 1000000 | 4 | 8000000 | 0 | 0 | false |
| sys | lineitem | l_shipinstruct | varchar | 1000000 | 11 | 1000000 | 21240 | 0 | false |
| sys | lineitem | l_shipmode | varchar | 1000000 | 4 | 1000000 | 14240 | 0 | false |
| sys | lineitem | l_comment | varchar | 1000000 | 26 | 1000000 | 8590240 | 0 | false |
| sys | lineitem | lineitem_orderkey | oid | 1000000 | 8 | 8000000 | 0 | 0 | false |
| sys | lineitem | lineitem_partkey | oid | 1000000 | 8 | 8000000 | 0 | 0 | false |
| sys | lineitem | lineitem_suppkey | oid | 1000000 | 8 | 8000000 | 0 | 0 | false |
| sys | lineitem | lineitem_partsuppkey | oid | 1000000 | 8 | 8000000 | 0 | 0 | false |
The MonetDB kernel maintains an active queue of all running queries. This queue is available for all users to inspect the status of his own queries. The system administrator can inspect it to overlook the complete workload on the system. The queue is made visible as a table producing function, called sys.queue().
sql>select * from sys.queue(); +------+---------+----------------------------+----------+----------+---------+------------+----------------------------+ | qtag | user | started | estimate | progress | status | tag | query | +======+=========+============================+==========+==========+=========+============+============================+ | 902 | monetdb | 2013-03-30 10:23:39.000000 | null | null | running | 15168688@0 | select * from sys.queue(); | +------+---------+----------------------------+----------+----------+---------+------------+----------------------------+ 1 tuple (0.446ms)
The schema structure is largely self-explanatory. If the query (template) is ran multiple times, then the system can derive a progress indicator and calculate an estimated time of completion. The 'tag' column references the query log tables, provided this facility has been turned on. The initial column 'qtag' provides a key to each active query .
NOTE that PAUSE and STOP takes effect at the first safe point within the query plan, which often is after the current MAL instruction has been finished. For complex queries over large database this may take seconds up to minutes.
sql> select * from sys.queue; +------+---------+----------------------------+----------------------------+----------+---------+-----------+--------------------------+ | qtag | user | started | estimate | progress | status | tag | query | +======+=========+============================+============================+==========+=========+===========+==========================+ | 52 | monetdb | 2013-12-23 12:34:50.000000 | null | null | running | 1349763@0 | select * from sys.queue; | +------+---------+----------------------------+----------------------------+----------+---------+-----------+--------------------------+ 1 tuple (2.242ms) --- start a query in another window sql>select * from sys.queue; +------+---------+----------------------------+----------------------------+------+---------+-----------+-------------------------------------------------------------+ | qtag | user | started | estimate | prog | status | tag | query | : : : : : ress : : : : +======+=========+============================+============================+======+=========+===========+=============================================================+ | 56 | monetdb | 2013-12-23 12:35:03.000000 | null | null | running | 1353354@0 | select | : : : : : : : : sum(l_extendedprice * l_discount) as revenue : : : : : : : : : from : : : : : : : : : lineitem : : : : : : : : : where : : : : : : : : : l_shipdate >= date \'1994-01-01\' : : : : : : : : : and l_shipdate < date \'1994-01-01\' + interval \'1\' year : : : : : : : : : and l_discount between 0.06 - 0.01 and 0.06 + 0.01 : : : : : : : : : and l_quantity < 24; : | 57 | monetdb | 2013-12-23 12:35:10.000000 | null | null | running | 1349763@0 | select * from sys.queue; | +------+---------+----------------------------+----------------------------+------+---------+-----------+-------------------------------------------------------------+ 2 tuples (1.404ms) sql>call sys.pause(56); ------+---------+----------------------------+----------------------------+------+---------+-----------+-------------------------------------------------------------+ | qtag | user | started | estimate | prog | status | tag | query | : : : : : ress : : : : +======+=========+============================+============================+======+=========+===========+=============================================================+ | 56 | monetdb | 2013-12-23 12:35:03.000000 | null | null | paused | 1353354@0 | select | : : : : : : : : sum(l_extendedprice * l_discount) as revenue : : : : : : : : : from : : : : : : : : : lineitem : : : : : : : : : where : : : : : : : : : l_shipdate >= date \'1994-01-01\' : : : : : : : : : and l_shipdate < date \'1994-01-01\' + interval \'1\' year : : : : : : : : : and l_discount between 0.06 - 0.01 and 0.06 + 0.01 : : : : : : : : : and l_quantity < 24; : | 65 | monetdb | 2013-12-23 12:36:03.000000 | null | null | running | 1349763@0 | select * from sys.queue; | +------+---------+----------------------------+----------------------------+------+---------+-----------+-------------------------------------------------------------+ 2 tuples (3.082ms) sql>call sys.stop(56); sql>select * from sys.queue; +------+---------+----------------------------+----------------------------+----------+---------+-----------+--------------------------+ | qtag | user | started | estimate | progress | status | tag | query | +======+=========+============================+============================+==========+=========+===========+==========================+ | 67 | monetdb | 2013-12-23 12:36:22.000000 | null | null | running | 1349763@0 | select * from sys.queue; | +------+---------+----------------------------+----------------------------+----------+---------+-----------+--------------------------+ 1 tuple (2.799ms)


text:
Quickly Create Zazzle products from any image found on the web.
Your Mashup not listed on ProgrammableWeb yet? Tell us about it and get listed.
Epic Sky
Daily Mashup
Google APIlity Library
Flickr Api Explorer
Book Burro
APIs, mashups and code. Because the world's your programmable oyster.
John Musser
Founder, ProgrammableWeb
Adam DuVander
Executive Editor, ProgrammableWeb. Author, Map Scripting 101. Lover, APIs.
©ProgrammableWeb.com 2014. All rights reserved.Terms of Service | Privacy Policy


text:
Order by phone
Order online
Order in person
The McCain box office is open from 11:30 a.m. to 4:30 p.m. weekdays and is located in the lobby of McCain Auditorium.
McCain Performance Series tickets may also be purchased at the Little Theatre box office in the K-State Student Union Wednesday through Friday from 11:30 a.m. to 1 p.m. during the fall and spring semesters.
The McCain box office is generally open 90 minutes before each performance in McCain Auditorium.
Download order form and mail to:
McCain Performance Series
Kansas State University
207 McCain Auditorium
Manhattan, KS 66506-4711
Order Form (PDF)
Season Brochure (PDF)
Gift certificates
Gift certificates are available in any amount for McCain Performance Series events and are available at the McCain box office or by calling 785-532-6428. Gift certificates are valid for one year from the date of purcahse. Gift certificates are only valid for McCain Performance Series events.


text:
- Running
- Cycling
- Triathlon
- Fitness
- Race Results
- More
More Running EventsMore
The marathon is running's most sought-after goal. This is the perfect spot to fill out your marathon race calendar and pick up training tips for future marathon races.
Marathons Near
Location not recognized.
Gear to help you run better
Spring Gear
Best New Shoes and Clothes for Spring
This spring's running gear trends encourage runners to flaunt their uniqueness. Check out our picks of the coolest new running gear for spring 2014.
Injury Prevention
15 Injury Prevention Remedies Under $50
Effective, at-home injury prevention doesn't have to cost a bundle. Use one of these inexpensive remedies to cope with pain and sore, tight muscles.


text: I purchased an Unlocked iPhone 4 off eBay a while back. I inserted a Fido sim the phone did not activate so I called Apple and they said it was locked to Rogers. I already purchased a fido plan and did everything and in the end I found out I was stuck. I am currently stuck at the insert sim card screen so I can only make emergency calls and when I insert my fido sim and connect to itunes, I get the message this sim is not compatible with the iPhone. I wanted to unlock my iPhone but in order to do that, I need to jailbreak and in order to jailbreak the iphone, i need to get around this screen somehow. Anyone have any suggestions on how to get the iPhone working. Ive tryed finding people with rogers sims but no luck any help will be appreciated.


text:
Free HIV Testing for World AIDS Day
In recognition of World AIDS Day, HHS will offer free, confidential, rapid HIV testing. HIV testing is the only reliable way to know your HIV status. Knowing your status early can help you protect yourself by seeking out appropriate treatment and helps you protect your partners from infection. All appointments are confidential and last approximately 20 minutes. The tests are painless, and require only an oral swab – no needles or blood involved! Testing is available on the following days: Wednesday, November 30 and Thursday, December 1, 9 a.m. to 12 p.m.
To schedule a confidential HIV test, please call: 202-205-0216.


text:
Monday, November 15, 2010
© Copyright 2014 Albany Herald
San Francisco Giants catcher Buster Posey and Texas Rangers closer Neftali Feliz have been voted the Rookies of the Year.
Posey, a native of Lee County, won the National League award in voting announced Monday by the Baseball Writers' Association of America. Feliz won the American League honor.
Posey drew 20 first-place votes on the 32 ballots. He was called up from Triple-A in late May and hit .305 with 18 home runs and 67 RBIs for the eventual World Series champions.
Feliz set a rookie record with 40 saves in helping Texas reach the World Series for the first time. The rocket-armed righty was listed first on 20 of the 28 ballots.
Voting was done by two BBWAA members in each league city after the regular season.
More like this story
- Posey top NL rookie ( November 15, 2010 )
- Leesburg's Posey still leads NL catchers on MLB All-Star ballot; voting ends today ( June 28, 2012 )
- Yogi: Posey looks pretty good ( October 26, 2010 )
- PREVIEW: Posey, Giants on doorstep of 2nd World Series title in three years ( October 14, 2012 )
- Play ball! It's playoff time ( October 4, 2010 )


text:
Hey Guys, I've got a problem with the installation of osx86. I've already downloadet iDeneb_v1.6_1058_Lite_Edition to my pc..By the left: i've got windows 7..anyway..can you tell my how to boot into the installation with an sd card? Or is it possible to copy this .iso file to another harddrive, and boot it from there? I dont want to buy a DVD-Drive, which supports dvd-r /dvd-rw.. And i dont own an 4gb/8gb usb-stick..Sorry for my very bad english.I'm german
Thanks ! ^^


text:
Creating a fairer Britain
Our landmark review of the state of human rights in England and Wales is due to be launched next Monday, 5 March. The report will present the key human rights issues in England and Wales, highlighting areas where society should be more proactively defending and promoting human rights concepts in Britain. Watch the event live on the day and explore the review online at www.equalityhumanrights.com/humanrightsreview.
Read more about the Human Rights Review
From February 2012, we are looking at the information supplied by relevant public authorities in England (and non devolved public authorities in Scotland and Wales) to assess to what extent they have published relevant and accessible information to demonstrate their compliance with the duty. A report of findings should be available in spring 2012.
Read more about the Public Sector Equality Duty
Thank you to all those who have submitted responses to our consultation on the recommendations from our Hidden in plain sight report. Key points from the consultation will inform our continuing work on the Manifesto for Change, which will be published later this year.
Read more about the Disability Harassment Inquiry
On 31 January 2012 we published our equality information to show how we comply with the Public Sector Equality Duty. Our equality information helps us identify and understand potential key equality issues across our functions including employment and service delivery areas. We will use this information to develop our equality objectives, which we will publish in April 2012.
Read more about our equality information
The Court of Appeal's dismissal of two discrimination claims supported by the Commission has narrowed the rights of disabled people when flying. The judges decided that international rules on air travel should take precedence over domestic law on accessibility and discrimination onboard aeroplanes. John Wadham, Group Director Legal, said: 'The decision renders the regulation regarding air travel for disabled passengers toothless. It offers no protection for disabled travellers who are discriminated against while flying.'
Read more about the air passenger ruling
The Commission has successfully defended an appeal against a ruling which found that hotel owners had directly discriminated against a gay couple. Mr and Mrs Bull appealed against the County Court's decision that they were wrong to refuse Mr Preddy and Mr Hall a double room for the night in their hotel. The owners said that their hotel rule, based on their Christian faith, was that no unmarried couples could share a double room. The judges ruled that religious belief does not offer an exemption from laws that everyone running a business has to follow. Equality law already has exemptions for religious organisations, which the judges noted the hotel was not.
Read more about the appeal win
In February 2012, the Commission published the second of its regular updates on the activities it is carrying out across Britain to fulfil its role as one of the designated independent bodies which promote, protect and monitor the implementation of the United Nations Convention for the Rights of Disabled People (UNCRPD) in the UK. The other UK designated independent bodies are the Scottish Human Rights Commission, the Northern Ireland Human Rights Commission and the Equality Commission for Northern Ireland.
Read more about the Disability Convention
An Employment Appeal Tribunal has upheld that law firm Bivonas LLP discriminated against lawyer Mr Bennett on the basis of sexual orientation. The lawyer's discrimination claim focused on a memo from one of the firm's partners. It falsely implied that Mr Bennett only selected gay barristers and said he should be sacked. After lodging a grievance, Mr Bennett says the firm tried to intimidate him into withdrawing his claim. John Wadham, Group Director Legal, said: 'Homophobia will not be tolerated in the workplace or anywhere else. We funded Mr Bennett's defence and this win has set a precedent for discrimination law.'
Read more about the legal case
In response to the ruling on prayers in Council meetings, a Commission spokesperson said: 'Many litigants attempt to use the important protections in the Human Rights Act inappropriately. We note that the human rights arguments in this case have been rejected by the judge. We think it unfortunate that a compromise couldn't be reached on this matter, without resorting to legal action.'
Read more about the court ruling
Trevor Phillips, Commission chair, said: 'We welcome the government's announcement of its strategy. The Commission particularly welcomes the government's commitment to tackling intolerance and extremism of all kinds. At a time of increased economic pressures on society the government is right to work towards ensuring that hardship does not lead to increased tension and discrimination.'
Read more about the Government's integration strategy
On 22 February, the National Assembly for Wales held a debate about disability-related harassment, following the Assembly's Communities, Equality and Local Government Committee into how best to take forward the Commission's Hidden in Plain Sight recommendations in Wales. The Committee itself came up with 10 key recommendations, which the Welsh Government has committed to taking forward, including the introducing a disability-related harassment framework, drawing together all existing work in Wales and setting a strategic direction. The Commission has been asked to join the strategic group taking this work forward.