text:
Ramos gets 1st career win as Rays beat Blue Jays
Ramos gets 1st career win as Rays beat Blue JaysTampa Bay Rays starting pitcher Jeff Niemann delivers to the Toronto Blue Jays during the first inning of a baseball game, Monday, May 14, 2012, in Toronto. (AP Photo/The Canadian Press, Frank Gunn)
TORONTO (AP) The Tampa Bay Rays celebrated a win and lost another key player on Monday night.
Cesar Ramos got his first career victory after replacing the injured Jeff Niemann, and Ben Zobrist homered as the Rays beat the Toronto Blue Jays 7-1.
The celebration was muted by news that Niemann is expected to miss four to six weeks after fracturing his right leg, forcing the Rays to find another replacement for an already injury-filled lineup.
''It's tough, a lot of adversity right now,'' Zobrist said. ''We're just trying to keep nine bodies on the field.''
Before the game, the Rays put outfielder Desmond Jennings (left knee) on the 15-day disabled list. Once Niemann joins him, the Rays will have eight players sidelined with injuries, a list that also includes slugging third baseman Evan Longoria (torn left hamstring), closer Kyle Farnsworth (right elbow), catcher Robinson Chirinos (concussion) and outfielder Sam Fuld (right wrist).
''We've been bitten a little bit to this point,'' Rays manager Joe Maddon said. ''We're constantly having our depth tested.''
Luke Scott and Sean Rodriguez each had two RBIs for the Rays, who have won two straight after losing six of their previous seven.
Maddon said the Rays will call up a reliever Tuesday to help out until Niemann's spot in the rotation comes up again, adding that he'd prefer not to move Wade Davis back to the rotation.
Tampa Bay was forced to go to its bullpen early Monday, with Niemann knocked out after just one inning. He was injured when he was struck on the lower leg by Adam Lind's grounder in the first. The right-hander recovered to make the out, but walked gingerly around the mound and was checked by the trainer before finishing the inning.
''It's a tough break, literally,'' Maddon said. ''The ball was not hit that sharply so I thought it just be like a stinger and he'd be able to walk it off.''
Niemann warmed up for the second but was unable to continue, with the left-handed Ramos brought on to replace him after a mound conference involving Maddon and the trainer.
''(Niemann) just did not have a good look about him at all,'' Maddon said.
Ramos (1-0) allowed one run and two hits in three innings, walked three and struck out three, to win for the first time in 80 career appearances.
''I saw them gathering the cans of beer in order to celebrate it properly,'' Maddon said.
Davis pitched two innings, J.P Howell and Burke Badenhop each worked one inning and Jake McGee finished in the ninth.
Tampa Bay broke it open with a six-run fifth, taking advantage of an error by Lind to score five unearned runs off Blue Jays right-hander Brandon Morrow (4-2), who came in having won his past four starts and didn't allow a hit through the first four innings.
Will Rhymes led off with a double, took third on a fly out by Chris Gimenez and scored on Elliot Johnson's single. Zobrist grounded into a fielder's choice and B.J. Upton walked before Matt Joyce reached when a diving Lind couldn't handle Joyce's hard grounder, allowing Zobrist to score from second. Carlos Pena reached on a dropped third strike, loading the bases for Scott, who lined a two-run single to left. Rodriguez capped it with a two-run double to right-center.
''On a night when you're down a little bit offensively, that's where the pitching and defense has got to pick some things up,'' Blue Jays manager John Farrell said. ''That wasn't the case tonight.''
Lind's error in the fifth was his second of the night: he also dropped Upton's foul pop up in the first.
Toronto's struggling first baseman, who came in batting .189, was bumped back to the cleanup spot after being dropped to eighth last week because he came in 13 for 28 with three homers in his career against Niemann.
Zobrist led off the ninth with a first-pitch homer to right, his sixth.
Kelly Johnson drove in Toronto's only run with a two-out single off Ramos in the second.
Notes: Toronto has lost six of nine following a season-long four-game winning streak. ... The Rays recalled C/OF Stephen Vogt from Triple-A Durham to replace Jennings, whose DL stint is retroactive to May 12. ''(Jennings) is not getting worse, he's just not getting better,'' Maddon said. ... Toronto optioned RH Joel Carreno to Double-A New Hampshire and recalled LH Evan Crawford from Triple-A Las Vegas. ... Blue Jays RH Sergio Santos (right shoulder) is throwing from 90 feet on flat ground at the team's Florida facility. Santos, out since April 21, will progress to 150 feet before he resumes throwing off the mound. ... The Rays signed 1B Ryan Garko to a minor league contract. Garko, who had been playing in the independent Atlantic League, will report to Double-A Montgomery. He last played in the majors with Texas in 2010.


text: Billy the Kid Nashville Ballet's Winter Performance This Weekend By Mike Osborne • Feb 8, 2012 photo courtesy Nashville Ballet MUFREESBORO, Tenn. (WMOT) -- The Nashville Ballet delivers its winter performance this weekend. The show will include three distinct dances. In a press release, the ballet says the first performance is entitled Cryin' Out and features the music of genre-busting songwriter Gary Nickolson. Billy the Kid is the second piece to be performed. It's based on the 1938 work choreographed by Eugene Loring and explores why the life of a typical 19th century boy veered into lawlessness.

subset: commoncrawl


text:
12 Jul 2011 07:17:31 AM
Just What You've Always Wanted: Chuck Liddell/Tito Ortiz Feud Coming to DVD
By Jason Moles
Before I dig in, let's take a look at what Amazon has to say about this ingenious idea:
"Once friends, now bitter enemies, UFC superstars Chuck "The Iceman" Liddell and "The Huntington Beach Bad Boy" Tito Ortiz waged intense battles inside and outside of the Octagon. UFC Bad Blood: Liddell vs. Ortiz gives an all access look at the epic feud forged in heated competition over the UFC Championship, and fueled by personal conflict that often boiled over. Through exclusive new interviews, rare behind-the-scenes footage, and hard hitting action from their historic fights, you can re-live the rivalry that helped launch the Ultimate Fighting Championship into the mainstream, and make Chuck Liddell and Tito Ortiz household names that will be forever linked.
Special Features: Countdown to UFC 66, UFC 66: Chuck Liddell vs. Tito Ortiz, and UFC 47: Chuck Liddell vs. Tito Ortiz"
Well it's about time that massive video library is being put to use. One of the most well-known and publicly talked about feuds in mixed martial arts will live forever on DVD and Blu-ray come August 30th, you know, in case you ever want to show your grandkids what human cock fighting looked like. Not sure about you, but wouldn't this have been a bigger seller last year when Chuck Liddell coached opposite Tito Ortiz on The Ultimate Fighter 11? Rumor has it the DVD was supposed to be released much earlier but had to withdraw from stores due to a bulging disc and a cracked case.
To bring a few of you up to speed…Read More DIGG THIS


text:
NEW YORK – Authorities now say a 5-foot part that's believed to be from a hijacked 9/11 World Trade Center jetliner came from a wing.
Police said Monday the rusted metal part from a Boeing 767 is a trailing edge flap support structure. It helps secure wing flaps that aid in regulating plane speed.
Investigators initially thought it was part of the landing gear, because both pieces have similar hydraulics.
Authorities believe the aircraft part is from one of the two hijacked planes that brought down the trade center and killed nearly 3,000 people on Sept. 11, 2001. But Boeing officials can't determine which flight.
The chief medical examiner's office says its workers will sift soil at the site for human remains starting Tuesday.


text:
The sociology curriculum is intended to provide an understanding of the interactions and workings of societies, their institutions, organizations and groups. Through an introduction to the basic concepts, theoretical perspectives and methodological approaches of the discipline, students are familiarized with the sociological imagination, encouraging a deeper understanding of the relationships between personal experience (one's own and others') and the social world. Courses not only acquaint students with diverse cultures and social structures but also emphasize the dynamics of power and inequality on local, national and global levels, as they operate through race, ethnicity, class, ability, gender, and sexuality. Our curriculum emphasizes the concepts and practice of social justice and public sociology. Built into courses and the curriculum are opportunities for students to develop a sense of social responsibility by critically engaging the social world outside the classroom. The experiential focus of the curriculum includes participation in international study, community-based service and learning, and internships.
The department emphasizes the active engagement of students in sociological inquiry. Toward that end, many courses are designed to teach students the basics of theory construction and methodological processes. Our courses encourage students to make their own discoveries about human social experiences, and all majors are required to synthesize and apply what they have learned in the completion of an upper-level research–based, topical seminar or faculty-mentored independent research project.
While the department's curriculum provides a strong foundation for graduate work in the discipline, our strength is in the development of strong critical and analytical skills as well as our support of writing and oral presentation skills and computer and visual literacy, all of which are important for success in any chosen life course.
In the tradition of a liberal arts education, the sociology curriculum is designed to promote a sense of curiosity about the diverse ways humans create, transform and adapt to their surroundings, self-reflection and appreciation of perspectives and experiences outside their own, and public intellectualism through attentive, creative, articulate engagement with community affairs and social issues.
The department has partnered with community-based learning programs to offer a variety of courses through which students engage in organized service activities that address community needs while offering structured opportunities to reflect on those activities in ways that promote active learning and personal development. Our campus-community programs have offered sociology majors the chance to work with children, seniors, persons with disabilities and local farmers, as well as participate in programs designed to advocate for the poor, the environment, and victims and survivors of violence.


text:
Sappelt LF
Renteria SS
Votto 1B
Phillips 2B
Bruce RF
Stubbs CF
Hernandez C
Frazier 3B
Willis P
Sappelt LF
Renteria SS
Votto 1B
Phillips 2B
Bruce RF
Stubbs CF
Hernandez C
Frazier 3B
Willis P
1. Eric Young (S) LF
2. Dexter Fowler (S) CF
3. Carlos Gonzalez (L) RF
4. Troy Tulowitzki (R) SS
5. Todd Helton (L) 1B
6. Ty Wigginton (R) 3B
7. Mark Ellis (R) 2B
8. Chris Iannetta (R) C
9. Esmil Rogers (R) P
I wish I still gave a crap.
I heard your record..it's alright.
Turn out the lights, the party's over.
Bases loaded for the Stubby one. Salami Time?
I don't know who made the call to do nothing at the trade deadline but it was a huge mistake. I am leaning towards Do-Nothing Jocketty. What has he done since the Rolen trade? Nothing. The Reds had a big opportunity with this 2011 season and, IMHO, they have squandered it big-time.
Do the Reds have any type of option with Willis for 2012?
I dunno how it'll happen but I know we'll find a way to screw Willis out of a win tonight.
Willis hits this inning!
pretty sad that the pitcher hitting makes us think we've got a chance this inning!
The older I get - the better I was
and yes - I hate the Cardinals (Reds fan since 1958)
Board Moderators may, at their discretion and judgment, delete and/or edit any messages that violate any of the following guidelines: 1. Explicit references to alleged illegal or unlawful acts. 2. Graphic sexual descriptions. 3. Racial or ethnic slurs. 4. Use of edgy language (including masked profanity). 5. Direct personal attacks, flames, fights, trolling, baiting, name-calling, general nuisance, excessive player criticism or anything along those lines. 6. Posting spam. 7. Each person may have only one user account. It is fine to be critical here - that's what this board is for. But let's not beat a subject or a player to death, please.


text:
Original URL: https://www.theregister.co.uk/2006/11/21/dell_q3_pre/
Dell's PC sales keep falling in Q3
But only on a preliminary basis
Posted in The Channel, 21st November 2006 22:19 GMT
After pulling all-nighters over the weekend, Dell's crack team of accounting nerds managed to finish off the company's third quarter results - well, almost.
Dell today dished out "preliminary" third quarter results that showed revenue rising to $14.4bn from $13.9bn in the same period last year. The hardware maker's net income also rose year-on-year to $677m from $606m. Both net income figures remain well off Dell's 2004 Q3 total of $846m.
Of course, all these results are "preliminary" because Dell is still trying to deal with a pair of accounting probes from the US Securities and Exchange Commission (SEC) and the Southern District of New York.
Dell was meant to file its third quarter results last week but delayed the procedure until today, as it grapples with the accounting probes. The company has yet to file its Form 10-Q for the second quarter with the SEC and "does not expect to timely file" the same form for Q3, according to a SEC filing.
The hardware maker continues to keep the nature of the accounting probes a secret.
In an SEC filing issued today, Dell would only say, "The investigations are examining certain accounting and financial reporting matters, including issues relating to reserves and other balance sheet items that may affect the company's previously reported financial results . . . The investigations are ongoing, and no determination has been made as to whether restatements of prior period financial statements will be required."
In its Q3 statement, Dell declined to provide the customary year-on-year compares across its product lines, but we've done the hard work for you.
PC sales dropped significantly to $4.7bn from $5.1bn last year. Dell's PC business has been a sore spot in recent quarters, as the company struggles to generate much desktop excitement.
Thankfully, Dell has a strong notebook line, which produced $3.9bn - up from $3.6bn - in revenue.
Server and networking sales rose slightly to $1.5bn from $1.4bn, while storage revenue jumped $100m to $600m.
Services revenue reached $1.4bn - up from $1.2bn last year. And software and peripherals hit $2.3bn - up from $2.1bn last year.
Dell's management declined to offer any "color" on the quarter in the company's statement, and management also decided against holding an earnings conference call with analysts. ®


text:
Here are some non profit projects I have contributed to:
- Amigos Unidos – A non profit organization that donates shoes, clothes, food and other neccesities to parts of the world in need.
- UPIC – A non profit organization that helps Middle Eastern Christians with medical treatment and other aid.
- Federal Jack (OSINT) – Citizen response telecommunications network.
- WeAreChange – Be the change you wish to see in the world.


text:
ArkGeo Board Meeting
Agenda for April 19th, 2013
Immediate Past President: Richard Lee
President: Chris Denton
Executive Vice-President: Kent Uhrich
Treasurer/Secretary: Judy Vaughn
Website Manager: Kevin Cackler
ROUND-TABLE DISCUSSION (6:00-6:30) Start conference call recording
- Open Discussion
Board Members present:
Chris Denton, Ron White, Judy Vaughn, Jim Sick, Kent Uhrich, and Morgan O'Neal
Visitors present: Pat Vaughn
- President's Report:
Presidents Report to the BoardChris Denton
April 19th, 2013
As of Friday, April 19th, there are a total of 279 registered voters, giving us an increase of 10 since last quarter, and 26 since July 1, 2012..
We are happy to say that Ron White has decided he can fulfill the rest of his elected term, and we are happy to have him back.
Arkgeo hosted 3 meet and greet events in the last quarter. Newport, El Dorado, and Monticello. Thanks to The Lasters, Morgan ONeal, and Jim Sick for hosting these events.
The ArkGeo web site still continues to perform well and once again I would like to thank Kevin Cackler for all his hard work keeping us going. It is much appreciated.
A great big Thanks to all of those who volunteer and spend some of their time promoting ArkGeo and geocaching in the state of Arkansas.
- Treasurer's Report:
Prepared by Judy VaughnArkansas Geocachers Association Treasurer's ReportJanuary 11, 2013 April 19, 2013
Beginning Balance
(Checking & PayPal)
$1256.05 Expenses: Postage and Fees $5.58 TOTAL EXPENSES $5.58 Income: Merchandise Sold $300.00 Geocoins Sold $43.00 TOTAL INCOME $343.00 Ending Balance
(Checking & PayPal)
$1354.34 in Checking Account
$ 239.13 in PayPal Account
Merchandise sold at Paris Event
Sold 3 Geocoins on website through PayPal
- Website Manager's Report:
2013 election candidates have been added to the election system. An email was sent to all voting members to introduce this year's candidates.
The site continues to be mostly spam-free and quick loading.
- Election Committee report
Chris DentonBoard Liaison
April 19th 2013
The election committee has had a busy quarter. 17 members were contacted about interest in running for a board position. of those 17, we did have 4 great members who agreed to run.
specialteacher aka Lisa Sanderock
thefab5willisclan aka Mark Willis
likestocanoe2 aka Sandy Fryar
Angel06 aka Linda Tredway
We want to extend a big thank you to these individuals who agreed to run. also, a big thank you to Will Pumphrey for heading up the search.
These was also an email sent out today to the membership reminding them of the election.
- Fund Raising Committee: No Report
- Community Relations Committee: prepared by Kent Uhrich (Board Liaison)
Garvin Gardens update! Thanks to Ron and Maribeth for their work on helping to get these 3 caches up and running!!!!! Here is the run down.
Ron and Maribeth met with a horticulture staff member to assist in placing caches around Garvin Gardens. One cache is located inside the pay area (Fee Attribute should be on the cache page) and the other two caches accessible to anyone without a fee but at some very nice places. The one placed inside the fee part of the garden is well worth the walk (or ride in a golf cart)! Ron and Maribeth left the contact information so they could be contacted if any help is needed in setting up the cache pages.
In talking with Michael Goff, one of the TV stations is working on a summer segment that will relate to outdoor cooking\camping and at times, Geocaching. We discussed how to get ArkGeo mentioned in a few of the segments.
Rotary Club has not called back after canceling two times.
- Events Committee prepared by Jim Sick (Board Liason)
There have been three ArkGeo events held since the last board meeting. On February9, rklmbl hosted the Southwest Meet and Greet in Eldorado. On February 23, drmo913 hosted ArkGeo Eat N Greet Welcome to Newport in Newport and on March 26 sayitagain hosted the Southeast Eat N Greet in Monticello.
Plans are still in the making for the Annual Meeting that is to take place the weekend of June 8 & 9 at the Witt Stephens Game and Fish Nature Center in Little Rock. For those who have not had the opportunity to visit the Nature Center this will be a real treat as it is a fantastic facility. For those wishing to camp, camping is available at Maumelle Park which is about 7 miles from the Nature Center. Sites rent for either 22 or 26 dollars based on how close you want to be to the river. I have scanned the brochure showing the location of the camp sites and anyone interested in receiving the brochure just contact me with a regular email address and I'll be happy to send it.
- Membership Relations Committee Report to the Board prepared by Morgan O'Neal (Board Liason)
Current Membership Relations Committee Members:
Ron White ronwhite Resigned 1/6/13, Reinstated 3/11/13
Judy Vaughn MathSeeker (Chairperson)
Justin Murphree arkfiremedic
Morgan ONeal drmo913 (Board Liaison)
Sharon and Glynn Simmons Flyfishingcachers
Chris Dickinson - Saint Aubie
Membership Relations Committee Activities:
Selected Arkansas Geocachers to profile on the ArkGeo website:
February Kevin Cackler aka kcackler; The Cacklers
March Morgan O'Neal aka drMo913
April Gunnar Wright aka Arkansas Stickerdude
ArkGeo Newsletter:
2 editions have been published and a 3rd is in the queue waiting on review.
I. Possibility of selling coins on ebay - Kent Uhrich will try to sell ArkGeo coins on ebay.II. ArkGeo History update - Wayne Lunsford is working on our written history. It is about 75% finished.NEW BUSINESS
I. Upcoming annual meeting plans - Annual meeting is scheduled for June 8th at Witt Stephens Jr.
Central Arkansas Nature Center at Riverfront Park in Little Rock. ArkGeo will provide sandwich
fixings, drinks, and water. Members will provide desserts and side dishes.
II. Update on upcoming election - email has been sent.
Nominees are:specialteacher aka Lisa Sanderock
thefab5willisclan aka Mark Willis
likestocanoe2 aka Sandy Fryar
Angel06 aka Linda TredwayVoting starts May 1st.
III. Welcoming back of Ron White to complete his board service.
IV. PayPal Balance Rules:
Motion made by Jim Sick and second by Kent Uhrich.
If the balance in the PayPal account gets over $400, move the money in excess of $200 to the
ArkGeo checking account. Motion carried.
V. Arkansas Challenge - March 2014, start planning after the annual event
Next board Meeting July 12, 2013
End conference call recording.


text:
What did you think? Are you inspired by wood pallets yet? Did you come back for more ideas? I can tell you that I had way too much fun with this idea because this is only a few of the ideas I came up with! Maybe I will share a few more later on!
Idea: turn the light colored wood darker, like a pallet and add subway-style sentiment
To turn the wood veneer paper darker, I inked it with Distressing Ink (Vintage Photo) with a foam applicator tool. Its messy, but worth it!
All of the stamps I used are clear, making it easy to lay them out and see what would and wouldn't work for my sentiment. Once the stamps were all in place, I pressed my acrylic block into them and they were ready to be inked. By doing that, I made sure they stayed lined up exactly how I envisioned.
Idea: inspired by a Pin to create an ombre look with ink and wood veneer paper strips
Again I inked with Distress Ink (Picked Raspberry) on the wood. Each piece received a bit more ink than the previous. The nice thing about the ink is, I could add more as I needed. So each piece started out very light until I achieved the amount of intensity desired.
And again, I lined up my stamps, pressed by acrylic block into them, inked, and stamped.
Idea: inspired by a Pin to create multicolored wood veneer strips, die cut wood strips
Each strip of wood veneer received ink, directly from the pad this time. (My Favorite Things) The dye based ink worked very well, but it did stay wetter longer, so watch that. (Messy, messy, messy.) The inked strips were adhered to a piece of cardstock and then run through a manual die cutting machine with a heart die template. It took several passes because of the thickness of the material. But it turned out awesome! The words love you were die cut from cardstock.
Ready to create cards inspired by wood pallet art? There are tons of possibilities! Be sure and visit the Paper Crafts Connection blog for your chance to win a set of stamps from Hero Arts!
thanks for stopping by!
P.S. If you are looking for more inspiration, check out my board on Pinterest, Wood Pallet Love.
P.S. If you are looking for more inspiration, check out my board on Pinterest, Wood Pallet Love.


text:
By Philip O'Connor
STOCKHOLM, May 9 (Reuters) - France scored one of the biggest ice hockey upsets ever when they defeated defending champions Russia 2-1 at the world championships in Helsinki on Thursday.
By Philip O'Connor
STOCKHOLM, May 9 (Reuters) - France scored one of the biggest ice hockey upsets ever when they defeated defending champions Russia 2-1 at the world championships in Helsinki on Thursday.
"When I'm 60 I'll tell my grandchildren that I was captain of the team that beat Russia at the world championships," a beaming Vincent Bachet told reporters.
All the scoring came in a see-saw second period, with Damien Fleury and Antoine Roussel notching the vital goals for France after Alexander Perezhogin gave Russia the lead. Alexander Radulov also missed a penalty for the Russians.
The defending champions turned up the heat in the final period but, even with a frenzied offensive effort in the final minutes, the Russians could not find a way through the massed ranks of the French defence.
Despite taking 29 shots to France's 19, Russia came off second best and their unbeaten streak at the world championships ended at 13 games.
In the late game in Helsinki, Martins Cipulis scored after just 15 seconds to put Latvia on the road to a 5-3 win over Slovakia, their first victory of the tournament.
Canadian goalkeeper Mike Smith was the hero in Stockholm, stopping 33 shots to shut out co-hosts Sweden as his side cruised to a 3-0 victory.
The Czech Republic defeated Denmark 2-1 in a shootout after a goal for each side from Zbynek Michalek and Morten Poulsen in the third period forced overtime in the early game in Sweden.
Switzerland remain top of the Stockholm group on 11 points from four matches, ahead of Canada (10), Sweden (9) and Norway (6).
Despite their defeat, Russia maintain their position as leaders of the Helsinki group on goal difference, level on nine points with the United States. Hosts Finland are third with eight with Slovakia in fourth place on six points.
The top four teams in each eight-team group go through to the quarter-finals. (Editing by John Mehaffey)


text:
Two New Majors Offered in the College of Arts and Sciences
Monday, March 19, 2012
The College of Arts and Sciences is proud to announce two new majors: Behavioral Neuroscience and Italian Studies. Here is a brief explanation of each program.
Behavioral Neuroscience -
The Behavioral Neuroscience major is an interdisciplinary major within the department of Psychological Sciences, which emphasizes the interaction of behavior with biological systems including brain pathways, nervous systems and hormonal systems. Disciplines such as psychology, biology, chemistry, anthropology, and philosophy all contribute to a cohesive understanding of psychological functions from a biological perspective. The assimilation of disciplines helps students develop intellectual skills in critical thinking and sound reasoning, and requires integration of knowledge from multiple levels of analysis, all of which are important characteristics of a liberal arts education. Career opportunities include jobs in healthcare, academia, government and the private sector.
Italian Studies -
From art, literature, music and cinema, to finance, politics and science, Italy has greatly influenced world culture. The study of Italian culture and its role in the evolution of the Western world since Antiquity is essential for a fuller understanding of the political, economic and cultural forces that continue to shape the Mediterranean, Europe and the world. The Italian Studies Program develops students' linguistic proficiency while providing them with a strong interdisciplinary knowledge of Italian culture. The lower-division language classes help students develop a basic communicative competency in Italian as well as cultural and intercultural awareness. The interdisciplinary Major in Italian Studies and the Italian Minor explore the breadth of Italian literature, history and culture, while at the same time building and reinforcing language proficiency.
Students who major in Italian Studies may integrate their knowledge of Italian culture with other disciplines by taking upper-division courses in other departments. They can also combine the major in Italian Studies with a second major or a minor in another discipline. In addition, students can take advantage of our study-abroad programs in Italy (information is available at the Office of International Studies Abroad). Italian Studies Majors can pursue careers in many different fields, including art, business, culinary arts, design, education, fashion, film, international relations, journalism, and many others.
Other Top Stories
College of Arts and Sciences
Contact Us Email
Phone: (619) 260-4600
Fax: (619) 260-4162
Visit Campus Map
Founders Hall
5998 Alcalá Park
San Diego, CA 92110


text:
1987 Jeep Wrangler YJ - FantaPosted in Features on April 22, 2014
When we saw the hood, rear wheel opening, and stance of Scott Hoyle's Jeep Wrangler the first thing we thought of was rock racer Shannon Campbell's Jeeps of the past. That was exactly the look Scott was going for, and he even sourced the fiberglass hood and 7075 aluminum links from Campbell Enterprises.
Yes, we said Wrangler. Scott started with a YJ since they use stronger frames and galvanized bodies and are often more affordable than CJs. His first modification was a classic CJ grille and the Campbell hood that integrates the fenders into the hood and provides gobs of tire clearance.
Tech Specs
1987 Jeep Wrangler YJ
Engine: 350ci ZZ4 Chevy V-8 with MSD Atomic EFI
Transmission: TH350 3-speed automatic
Transfer case: Dana 300 with twin stick
Front Axle: Dana 44 with 4.88 gears, ARB Air Locker, Moser axleshafts, CTM U-joints, and Warn hubs
Rear Axle: High-pinion Dana 60 with 4.88 gears, ARB Air Locker, 35-spline axleshafts, and disc brakes
Springs & Such: Synergy Mfg. 3-link front, triangulated 4-link rear with Fox coilovers and Fox air bumps
Tires & Wheels: 37x12.5R17 BFGoodrich Mud-Terrain KM2s on 17x8.5 TrailReady beadlocks
Steering: Saginaw box, Poly Performance steering arms, 3⁄4-inch rod ends, 11⁄2x1⁄4-wall tie rod
Other Stuff: Warn HS9500i winch, LED light bar, Beard seats, custom rollcage, custom rocker guards, Genright fuel tank, Engel fridge


text:
Richard Mordini of Javelin Venture Partners (checkered shirt) at Founders Space in San Francisco last Wednesday night (Photo by JD Lasica).
Show your plan to get to a million in revenue — and other tips from four seasoned venture capitalists
Target audience: Entrepreneurs, start-up teams, angel investors, venture capitalists, accelerators, incubators, digital agencies, businesses, educators, journalists, Web publishers.
Over the past year, I've been wading into the entrepreneurial waters once again. Last fall I joined the invitation-only Founder Dating, and I've been attending a slew of meetups — Silicon Valley NewTech, Startup Grind Silicon Valley, Hackers and Founders, Designers + Geeks — and other events geared to entrepreneurs and start-up teams. (I'm working on a cruise start-up in addition to running Socialmedia.biz. Contact me if you'd like to hear more.)
Last Wednesday night I found myself lured back to SomaCentral, the very cool co-working space at One Market in San Francisco, to hear four seasoned venture capitalists offer advice to start-ups on their pitches. About two dozen people attended the Founders Space event, Present Like an Investor: Tailor Your Approach to What Investors Care About, featured Joydeep Bhattacharyya of Shasta Ventures, Sean Jacobsohn of Emergence Capital Partners, Ali Wasti of Azure Capital and Richard Mordini of Javelin Venture Partners, along with Founders Space founder Steve Hoffman. Continue reading


text:
SEATTLE (AP) — The historic waiting room at Seattle's King Street rail station has been restored to look exactly as it did when it opened in 1906 with its ornamental plaster ceiling, Corinthian columns, mosaic floor tiles and a massive bronze chandelier.
It was reopened for Amtrak passengers Wednesday in a ceremony with Seattle Mayor Mike McGinn and transportation and preservation officials.
The renovation was the last phase of a $55 million project that began after the city purchased the landmark downtown building in 2008 from Burlington Northern Santa Fe. Other upgrades included a new roof and structural reinforcement to help the building and its clock tower withstand an earthquake.
The city Transportation Department says the work was funded by city, state and federal funds including the Bridging the Gap levy.
Copyright 2013 The Associated Press.


text:
You can find out more about Mirthwerx and our projects at our website.
Many people want to get into making games, specifically mobile games. Well, we were one of you! This series is for anyone who wants to jump in and do it. Our goal is twofold:
1) To demonstrate that it is possible
2) To share lessons we learned that will hopefully benefit those starting out
About Us
We at Mirthwerx are a team of two: Thomas the self taught programmer and Alex the artist who studied classical animation at Sheridan. We met 20 years ago in highschool and have tried to make a game ever since.
Before we embarked on this project, I had been writing business web/mobile software with Microsoft technologies for about 15 years. With this background, we knew how to build software properly (OOP, design specs, usability concerns). But you will see later how we failed to apply it.
Design and Prototyping
From day one, we knew we wanted two things:
1) Android is the future, but iPhone is the now. We will build for both
2) We want to build on a windows platform with familiar environment and tools
I started investigating the Mac platform and XCode by buying a mac-mini. After spending a day with ObjectiveC I knew I did not want to work in that language at all, it would drive me batty. Fortunately we could address both goals with one solution: Marmalade (formerly called Airplay before Apple started calling everything Airplay).
Here you can see using VS2008 C++ debugging and tracing in real time with an iOS emulator
Marmalade allows the user to write once in Visual Studio C++ and run anywhere (iOS, Android, Blackberry, Windows Phone, Bada, and more). The simulator is excellent, with all the performance monitoring you'd expect, so it was a total win finding this technology. The pricing for independent developers is also very reasonable.
Given this was our first title, we wanted to keep the design of the app simple. The initial concept was this:
The player swipes their finger to tickle monkeys in a farmer's field. The monkeys come more and faster in each level. The end.
It seemed so simple at the time, and there were only two of us, that we thought we didn't need a proper specification document. Instead we used Xmind(free!) for mind mapping all our ideas and kept "the design" in there. The game was intentionally art heavy, as our artist was able to work full time on this project, but I was only able to work after hours/weekends.
Mind Mapping is a powerful way to capture ideas quickly and organize them well for later reference. Xmind is a free open source tool for mind mapping.
In business software an initial prototype for the users is critical. It removes all the guess work that comes from reading and interpreting a Word document.
Rather than programming a prototype for real, we used an extremely powerful and inexpensive ($40 for a registered version!) game making tool calledGameMaker 8. This allowed us to throw together the graphics that had already been drawn with a few play mechanics and see if we had something fun or not. I think all in the first prototype took 20 hours. Since it was running on a windows screen, there was no way to test the actual touch/swipe mechanic, so we just resorted to clicking, each click simulating a swipe. So the big question: Is it fun?
First prototype of Catch the Monkey made in Game Maker 8
No. It was not fun. We changed around several variables (speed of monkey, clicks to make them laugh, number of monkeys at one time) but it was just too simple. There wasn't enough to do. We couldn't see playing it for more than 2 minutes. We had no desire to make a "gag game" so we went back to the drawing board.
In our design brainstorming session we came up with the idea of using different kinds of tools to interact with the monkeys. Tickling was just the initial tool, a feather, but later you could get other tools. This seemed to have some promise. So we thought up several types of tools, narrowed it down to a few that were easy to put into a prototype, and then made prototype 2. In this version the player has an inventory of each tool. When one ran out, the farmer would call his wife for a refill which would appear in a few moments. It made the player have to think about what tool to use when. We also gave the player control of the farmer, they could direct the farmer to walk to certain areas or pickup a certain monkey. Finally we added the concept of catching stars. Every so often a star would pop out and the player would have to click it to catch it. Stars would be used later for upgrades, though we never built it into the prototype. So: Is it fun?
Prototype 2 Made with Game Maker, notice the inventory counts for the differing tools
Yes and no. There was a kernel of fun in there that was trying to get out, but there were still many things blocking it. We knew choosing (essentially strategizing) between tools was fun and catching stars was fun (it was spontaneous, different, and difficult). We dropped controlling the farmer (too cumbersome), dropped the refill concept (too complex and arbitrary). We needed a game mechanic to allow the player to strategize and manage resource(s).
I must note that when we prototyped, we didn't just do it amongst ourselves, but with others who were not involved in the project to get their honest feedback. Those working on a project are too biased to give a proper perspective to what they are testing. You'll see later how this also came to bite us in the butt.
At this stage we sat down for our third and final all day brainstorming session. We went through many concepts before considering the mana/cooldown mechanic in WoW. In WoW the player can't just cast all the spells they want, they have a mana bar limiting the number that can be used in a short period of time. But some spells are so powerful that while they do use up mana, they must cool down for a long time (several minutes) so they cannot be used in a single battle. We felt if every tool required a common energy pool, but had varying cooldowns, we could strike the strategic balance we were looking for. By having enough variables we could keep things fresh and interesting for the player, and therefore they would be engaged and have fun.
One additional thing we decided was to create Star Powers. Stars to this point were only used as a currency to purchase upgrades, but a Star Power is a special ability that can help you now mid level for a certain cost in stars. By making stars dual purpose, and facing the player with a decision for a momentary benefit now rather than a long term pay off later, is a great mechanic we tried to bring to other aspects. It became a fun challenge for us as designers to make star powers that were really really useful, but the smart player only uses sparingly so they can get all the upgrades.
The final toolbelt design.
With the design phase basically finished (design happens all the way through), we proceeded into building the core game.
Building the Core
In the first article, we covered how Catch the Monkey started from initial simple concept, to the technology we chose, through the prototyping phase. At the end of prototyping we had a greatly increased design, but despite knowing better, we didn't document it thoroughly. We knew we had 12 tools to create, 10 types of monkeys, and some vague concept of a store which would allow the purchase of upgrades. How many upgrades and what they would do was not finalized. It was time to start coding!
This article is longer than the previous, I have attempted to keep it of reasonable length by highlighting only the most interesting aspects from the core construction phase. If you have a specific question, just post a comment and I'll respond.
We Going to Do this or Not?!
As mentioned in the first article, the artist was working full time but I as the programmer was only able to work part time as I was required by other aspects of the business. The project dragged. It finally reached a point where the project would be cancelled due to lack of progress. Instead, I mapped out the time remaining to build the game. About 6 weeks (50hrs x 6 = 300hrs) should do it. I made an extreme decision: I booked a 6 week hiatus from work to go to my cottage and focus 100% on the game. While my wife was less than thrilled, she was supportive of seeing me get the game done. It was time to go "all in". Hind sight confirms this was the right way to recover the project.
Our Single Biggest Mistake
Not having a properly defined design document would appear to be our largest mistake, but we made one that completely dwarfed it.
If you study the zombies in Plants vs Zombies, you will see there are many types of zombies, but they are made up of several graphical parts (head, body, arm, arm, legs) and several optional decorators (pylon, helmet, paper). By reusing and varying these components you can have many different types of zombie with minimal memory requirements. We wanted a similar approach with many kinds of monkeys each with varying abilities and weaknesses.
However, and we painfully learned this later, if you want to have this kind of reuse, you have to lay down very specific rules of what the characters can and cannot do. Notice in plants verses zombies that the zombies always face the camera (like the 2D South Park animation). No matter what they do, they never turn away from the camera to a profile view.
Well, early on in our animation and prototyping we decided when the monkey arrives at a plant he will plop down, TURN HIS BACK, and begin digging. Then when he gets a potato, he will TURN BACK and proceed to eat it. We completed all the artwork for the regular monkey before we discovered what a problem this was. When we wanted to have a hat monkey, we thought we would just create a separate hat object, attach it to the monkey, and off we go. Well as we did it we realized the hat (or vest, or sunglasses) has to turn with the monkey as he turns away from the camera. This requires one decorator frame per monkey frame and pixel perfect alignment. This means a whole host of painstakingly researched coordinates per frame to get it all to look right. It was so much work, and we didn't want to redraw the digging animation, so we made an expedient decision: just duplicate all the frames for the regular monkey to the hat monkey with the hat pasted right into the frame. The artist went ahead and did this for each of the 6 additional types of monkeys.
Here is the math of why this was such a problem later:
1 monkey has a set of interaction sprite sheets (fear, ducky, laughing, walking, climbing, etc.) taking about 20mb of VRAM memory.
7 monkey types x 20mb = 140mb VRAM
The iPhone 3GS (iPod 3+) only has ~55MB of VRAM available (with a 15MB heap) before it starts crashing.
We had initially wanted to target the iPod Touch 2+, but it has only 30MB of VRAM and it became impossible. So we increased the system requirements to iPod 3+ and scrambled to get the VRAM down. We'll talk more about this in the next article.
So the lesson is always map out memory requirements during the design phase, before you build it, rather than in the middle, or after. Had we of known the ramifications of the monkey turning away from the camera we would have gone a different direction with the art and the game wouldn't be noticeably different.
Cute Monkeys in a Nasty Real-Time World
Many business developers I know avoid writing multi-threaded solutions when they can avoid it. Why? Because the race conditions that can occur between two separate threads doing their own thing are a nightmare for testing. There are so many permutations of what could be happening simultaneously in the application that if it crashes, it is difficult to reproduce never mind fix permanently.
When it comes to games, they are already real-time in that the Update() loop is executed every so many milliseconds not matter what. There is no concept of "blocking" calls like there is in Windows Forms development. This is just the way games are, and this is not what I'm referring to.
I'm talking about a real-time game verses a turn based game. A turn based game waits for user input, then responds accordingly; while waiting for user interaction there may be things happening on screen, nice effects and such, but the actual state of the game doesn't change. In a real-time system the game state is constantly changing regardless of player interaction.
For our first time game, we NEVER should have chosen to do a real-time game.
Catch the Monkey was an incredible amount of effort to make everything work in a constantly changing environment. The number of testing scenarios is probably 20 times greater than a turn based system. The ability to replicate scenarios is extremely difficult, even when programming specific unit tests to occur. There was a point late the construction phase I wasn't sure I could ever get it to stop crashing. Fortunately Marmalade has some amazing memory monitoring tools built into it I was able to find all the issues (I think!).
We learned this lesson so bitterly the next title we are currently working on is turn based.
Object Hierarchy
Obviously the power of OOP is the ability to build small, focused, encapsulated objects and then work with them at a higher level. My goal was to create an object hierarchy that knew how to instantiate, move, and render itself.
There was a time in my career where I didn't do modelling. Once someone showed me Rational Rose, UML, and modelling I never went back. I always model my code, even personal projects no one will ever see, because I find it the best way to think through the problems before the code gets in the way. Rational Rose (or any proper modelling tool) helps you think through the design as you design. I used Rational Rose for several years, but when I went out on my own I couldn't afford the $2,000/seat license. Fortunately the Open Source community came to the rescue with StarUML. StarUML is a powerful free object modeling tool. It is virtually identical to Rational Rose (at least to the last version I used in 2003).
Looking at the class design diagram, notice the two fundamental objects: GameObject and UIObject. Both of these inherit from Graphic. Graphic encapsulates all the Marmalade 2D API interaction, and therefore is necessary for rendering whether it is a monkey, a story slide, or a text object.
A GameObject is an object used in a GameScene (which is a level you play). It manages its own state, sprite sheets, depth calculation, scaling (based on depth), click handling, and hit detection. All play objects inherit from GameObject. UIObject is similar to GameObject, but is more lightweight and designed for non-play scenes, such as text, buttons, and images in the store or tool selection screens.
Design Patterns
We used GoF design patterns as necessary. For example:
We used the Factory pattern for our Level class; feed in a week and day, and it spits out a formatted level object, complete with any necessary tutorials.
We used two singletons for caching image files and sound files called GraphicManager and SoundManager, so even though each object is responsible for loading/unloading it's assets, it does it through these caches to minimize the actual memory used.We used a
singleton for player state (number of stars, current progress, which tutorials have fired, upgrades purchased). This made it extremely simple to serialize/deserialize player progress.
We used the Decorator pattern for adding graphical effects to any GameObject, such as fade in, fade out, flashing, etc.
One of the early conceptual struggles I had was how to bring all the different types of screens (a store, a tool selection, story modes, title screens, option/menu screens, game modes) together into a nice organized OOP paradigm. While researching I found two excellent articles by iPhone game maker rivermanmedia:
The Scene System
The GUI Stack
I knew this paradigm was the way forward not just for this game, but probably all future games.
The Scene system breaks down the game into a series of scenes. In Catch the Monkey I ended up with 19, like SceneTitle and SceneDialog. Each of these inherit a common interface from Scene such as: Init(), Update(), Render(), Shutdown(). I created a SceneManager singleton that contains all the logic related to scene creation, shutdown, and transition. Now my code can be blissfully unaware of what else is going on at a higher level. If I want a scene to end and begin a new scene, I call:
SM->ChangeScene(new SceneShop());
If I want the new scene to be focused and on top of the current scene, I call:
SM->AddScene(new SceneOptions());
The SceneManager knows if there currently are other scenes involved, winding them down appropriately, removing their assets from memory, doing a fading transition, then initializing and firing up the new scene. With this in place the real-time game now behaves more like a Windows Form application, with dialogs able to call dialogs and just let the OS worry about sorting it all out.
The second key concept is the GUIStack. The GUI Stack sits inside the SceneManager and replicates "focus" of a scene just like how Windows does for forms and dialogs. By pushing and popping scenes onto the stack, I can control which scene has its Update() and Render() code called. If a scene doesn't receive the Update() call, it is effectively frozen in time (paused). In pure form, the top scene is the only one to have its Update() called, while all in the stack have their Render() called. Later in testing I removed calling Render() to every scene in the stack for performance improvement. For scenes that require a background scene (such as a dialog window appearing over top of the game screen) I Instead take a screenshot of the current state, then display that as a backdrop to whatever the current scene is.
Using Marmalade in 2D
As previously mentioned, we were targeting both iPhone and Android simultaneously with C++ in Visual Studio 2008. While Marmalade is a 3D framework, we knew we were making a 2D title and therefore focused on the Iw2D APIs. I'll highlight the fundamentals of 2D animation with Marmalade's 2D API.
As you you'll see, Marmalade works at a pretty low level. This isn't GameSalad here, and that is one of the reasons I chose it. Given the choice, I prefer the flexibility and power of a low level API rather than being limited to what a framework designer decided I should be able to do (or not!).
Marmalade works it magic by using a custom make file called an MKB. This file allows the user to define Marmalade libraries to pull into the project, source code, assets (sounds), fonts, and texture groups.
Marmalade has a resource manager that allows the management of image groups (texture groups) by defining them like this in the MKB file:
# Provide access to resource objects via IDE ["Resources"] (data) fonts.group templates.itx UI.group Loading.group Title.group
You then define all your images in custom group files:
UI.GROUP CIwResGroup { name "UI" shared true useTemplate "image" "image_template" "./accountbuttons.png" "./account1.png" "./account2.png" "./account3.png" "./black.png" "./bluestarbg.png" "./pause.png"
Within the code you can test if resource groups are already loaded into memory, and then load/unload them through two simple function calls:
if (IwGetResManager()->GetGroupNamed("farm", IW_RES_PERMIT_NULL_F) != NULL) IwGetResManager()->LoadGroup("farm.group");
Images are loaded (and automatically uploaded to OpenGL VRAM) by asking for the image by name (without the .png extension) by using:
CIw2DImage* img = Iw2DCreateImageResource(name);
Once you have an image in memory, it can be rendered simply by calling the image drawing routine with the image you want, and the 2D vector position.
Iw2DDrawImage(img, CIwSVec2(x,y));
Marmalade automatically queues up all of the drawing calls in the order in which you called them, so this way you can control layering by doing your background draw calls first. So before I would run through my Render() routine I would sort all my objects by depth (lowest to highest) and then draw them in that sequence.
To complete the rendering I call these two routines, which tells Marmalade I'm finished, show it to the world:
Iw2DFinishDrawing(); Iw2DSurfaceShow();
That's it. Call those drawing routines each frame and you've got yourself a game.
Simplifying Sprite Sheets
The game comprises over 4,000 frames of hand drawn animation, most is for the monkeys interacting with their world. To manage all these images, we put them into spritesheets. Two issues needed to be considered:
No dimension of the sprite sheet could be larger than 1024 (iPhone doesn't like textures bigger than this and Marmalade started fuzzing them)
Sprite sheet dimensions needed to be to the power of 2 (32,64,128,256,512,1024) for the graphics card. If they weren't, the graphics card would pad them out to make them to the power of 2 anyway.
An example of a GameMaker strip.
Photoshop does not have an easy way to make a sprite sheet where each frame is universal in height/width. So we discovered a trick that saved us dozens of hours:
Save each frame in PNG from photoshop
Create a sprite in Game Maker to drag and drop each PNG frame from the file system for a given animation
Export the sprite from Game Maker as an animation strip, which is each frame appended into one long horizontal PNG with the number of frames appended to the file name.
Run our custom sprite sheet program on the strip, which would break it out into a rectangle of the smallest power of 2 dimension as a PNG.
While it sounds involved, we could go from a collection of png frames to a squared sprite sheet in under 2 minutes. Just for its ability to create sprite strips GameMaker is well worth having!
The final spritesheet, power of 2 sized.You can't tell, but we also dropped the color depth from 32bit to 16bit for memory.
Who is the harshest critic, the audience or the musician? The musician, for they have the double burden of knowing every note they missed and how much better they played during practice. So while the creator is extremely biased and forgiving of their creation, there is a harsh reality of what they intended and what they ended up making. I would say the music is always much sweeter in the imagination than on the page.
At the end of the 6 weeks I had finished building the core of the game. I came in around 340hrs. Knowing I have a personal biased, having played the game over a thousand times during build cycles, I concluded this game is actually fun. There was something magical about trying to entertain 3-5 monkeys simultaneously. Because I was away at the cottage, the artist had to take my word for it. And since I hadn't yet figured out how to deploy it, he had no way to play it other than on my laptop. But, knowing we had a good core, something we were proud of, gave us the determination for the toughest fight yet: Polishing.
Balancing and Polishing
At this point we had a working game, around 90% feature complete. The player could start a new game, play each level, interact with all 7 monkeys, use all 10 tools, save up stars, buy 28 upgrades in the store, use all 4 star powers, and save/resume their game. We declared ourselves feature complete. If we had created a more detailed design document we would have realized how untrue that statement actually was!
The Last 10% takes 90% of the Time
We didn't know how long it would take to establish a publisher relationship, so we started showing an early prototype to some publishing agents. One commented that the game core was good, we definitely have a quality AAA title here, but we still have a lot of work left for polishing. We thought that was a rather silly statement, and proceeded to finishing off the loose ends and game balance figuring we would be in the store in about 2 weeks.
This is where games are vastly different than business software. In business software, when we are feature complete with all unit testing completed, 80%-90% of the work really has been done. Integration testing reveals its issues, but they are generally just misunderstandings between developers and spec that need to be resolved. A real-time game integration testing is about 50% of the work because of the layered interactivity/dependencies of the game elements to each other.
Getting it on a Device
Up until this point, the game could only be played in the Marmalade PC simulator. We still had no idea if performance would be an issue (memory or FPS) on real devices. It also severely hampered unit testing as the artist couldn't test the game at all. It was time to deploy to a device.
Marmalade Deployment Tool for making the IPA file
Apple is extremely careful of what can be put onto their devices. This is good as it cuts down on piracy, but it also creates a whole series of hoops you must jump through to sign your code and get device ids and certificates for deploying test builds to a device.
If you are using xCode on a mac (especially the latest version of xCode), it is a relatively straight forward process, where xCode takes care of most of it for you. All of apple's documentation tells you step by step how to do it with xCode. If you are on PC, well prepare for some hassle.
There are two things you must do: 1) Setup your machine for iOS deployments and 2) Setup your project for iOS distribution. Fortunately, the documentation in Marmalade 5.2 for how to create distribution builds is much improved over previous versions. There is a walk through that explains you to create a certificate, which you then upload to Apple, and download the Apple certificate(s) and where to put them.
With the PC setup, the project must be setup and signed for distribution. The Apple dev portal is used to assign UDIDs of devices allowable to an application. Apple provides a provisioning certificate used to sign your project. Marmalade has a deployment tool that appears when making a release ARM build of the project. You enter in provisioning and OS specific options into this tool (it saves the settings to the custom MKB file) and it does the magic of making you an IPA that can be deployed through iTunes to your iOS device.
All in I was able to get the game on my iPod in about 10 hours. This was a vital step, because we needed the touch screen to test our gestures.
Getting Jiggy with Gestures
If you recall, our core design was a player using their finger to tickle a monkey through swiping. After some prototyping, we needed other tools to break up the monotony of constantly swiping back and forth. One of our early influences was a GameLoft game Bailout Wars. The player flicks bankers to their doom, but you also have to make other motions as well.
We studied numerous games and came up with this list:
Tap & hold
Swipe Horizontal
Swipe Down
Flick Up
Circle (clockwise or counter clockwise)
We chose Tap, Swipe Horizontal, Swipe Down, and Flick Up. (We also had Tap & Hold, but cut it later.) We tied these gestures to tools that we felt made sense: the paper bag, for instance, is placed on a monkey's head, so the player swipes the bag down onto the head.
iOS and Android support multi-touch (up to 10 points) but we decided to stick to just single touch. A touch is nothing more than a click event, so we inspect the s3ePointerEvent in Marmalade to capture it into a global touch variable like this:
void SingleTouchButtonCB(s3ePointerEvent* event) { g_Touches[0].active = event->m_Pressed != 0; g_Touches[0].x = event->m_x; g_Touches[0].y = event->m_y; g_Touches[0].when = (int32)s3eTimerGetMs(); g_Touches[0].handled = false; }
While it is all nice to know where a finger currently is, how do you know if they are making a gesture or not? The answer is you have to do that yourself.
A gesture begins when the finger touches the screen. From then on, the current position of that touch must be tracked at a regular interval until it is released (finger is lifted). The difference in origin, progression across the points, and exit must be analyzed to determine what kind of gesture was made. I used the Strategy Pattern in a generic Tool class with the child class for each tool implementing their own unique gesture recognition.
So while this explains the technical on how to do gestures, there was a lot of refinement necessary to get it to "feel" right. It is amazing how different each person performs a simple left/right swipe. Some people do very gentle little swipes of 10 pixels, while others go all the way across the screen. Some do it straight across, others on a diagonal. Some do it so slow it didn't register, and some do it so fast it didn't register (we found the "right" granularity for the timing interval of each point is 50ms). At the end of the day, we went from a very strict gesture system where a horizontal swipe couldn't have more than 20 pixels of vertical movement, to a very loose one where just about anything goes!
Saving the Story To Last
Catch the Monkey is an action game. While we need some sort of story to set the context for the player's actions, we knew we didn't need Crime and Punishment here. From the very beginning, we had a rough story outline:
A farmer in South Africa has a potato farm. As he sits down to lunch with his wife, a monkey is spotted in the field. He goes outside to take care of the monkey, but more and more keep coming. Eventually he overcomes all the monkeys and returns to a cold lunch. Fin.
Ok, so we aren't winning any Oscars for screenplay writing, but it was enough to get going so we focused on building the game and then would circle back to the story.
When it came time to do the story sequences, I decided to involve my friend Rob for help. We sat down one evening to hash out the story. He started asking basic background questions for which I had no answer:
How well does the farmer do, is he poor or rich?
How's his marriage, good or strained?
What's his demeanor: happy or surly?
How long have they lived in this location?
This may seem like silly fluffy stuff, but it isn't. I knew from research in how to write fiction that before you have a story, you have to have a character. It is the characters that drive the story and we didn't have characters. So Rob and I had to define the characters first.
Throughout the game the player unlocks new tools. How are these communicated to the player? We decided it was by the farmer's wife "finding" them and making them available to the farmer in his tool shed. We chose to use a dialog sequence to put the tool arrival into some context. Well, you cannot write effective dialog (even simple monkey catching dialog) without knowing the characters voice. So these "fluffy" questions had to be answered before we could write a single line of dialog.
We then had to answer the two big questions:
1) Why are the monkeys coming to the farm in the first place? (Why now and not a year ago, or why not a year from now?)
2) How is it that the player stops the monkeys from coming (by resolving #1)?
We went through a lot of ideas that night, but everything good we came up with changed the flow of the game, or introduced new characters (like a boss monkey), and we just couldn't afford to do all those changes this late in the game development. It was overwhelmingly evident we should have had this meeting in the first week of the game, not the last.
Before you can write a line of dialog, you have to know the character's voice
We wrote the best story we could without changing the game or requiring a lot of new art assets. The first rule of writing is "write what you know". In the end, I based the farmer and wife on myself and my wife. The problem the farmer faces of trying to get rid of the monkeys, which seems so simple from the beginning, becomes overwhelming and takes over his whole life. This is actually a metaphor for what the monkey game became to me. When the farmer bemoans the monkeys never ending, that's how I felt about the amount of work the game kept requiring. But in the background, unfazed, is the wife. Helping where she can, encouraging when needed. Many of the lines in the game are verbatim what my wife said. When the farmer's wife goes away on a girl's trip in the middle of it all, this also happened in real life.
Of course, all this is probably far too sophisticated for a simple action monkey catching game, but it is in there none the less.
Levels and the Game Master
I'll admit this up front: sometimes I'm just plain lazy. But sometimes laziness is the mother of invention.
When we built the second prototype each level had scripted events: when a monkey is to be released down a tree, the type of monkey, the size of a wave of monkeys at one time. Most of these events were time driven. This is how classic action games, like Capcom's 1942, are made. Each play through is the same.
It was a lot of work scripting each level with all the events, and frankly I didn't want to do it again in the real game. There are also problems with scripting: how do you know if the player is bored or sufficiently challenged? Releasing a monkey every 10 seconds may be fun for me, but too easy/hard for you.
So we tried to think of an alternative: what if we had a Game Master (to borrow the RPG term) that determines when, where, and type of monkey to release based on how well the player is doing. If a player is doing poorly it won't become ridiculously intense, and if they are doing well it won't get boring. We will define rules for the GM to behave by, and vary those rules from level to level. For instance, some levels the GM will be fast and furious, in others a slow build up. Even better, the GM can monitor things in real time, like the players energy level, and make smart decisions at the time of knowledge rather than guessing with scripting.
This seemed like a radical idea to us, so we weren't sure what the negatives would be to building this dynamic AI "level designer" just so I didn't have to do all that scripting.
I don't remember why, but for some reason I felt I should play Valve's Left for Dead FPS zombie game. I generally don't like zombie shooters so I had never played it before. I got it off steam and noticed somewhere in the description about "The Director", which is essentially a level AI that responds in real-time to the players to give different experiences each play through. Once I saw Valve did it, I knew we were on the right path!
If Valve did it, so can we!
It took a few days to build the Level GM, but once it was done it was a total win. No scripting required, all we had to do was define for the GM the resources it has (types of monkeys, total number of each monkey allowed at a time) and the level of intensity we want (earlier levels are easier than later ones).
In the book Andrew Rollings and Ernest Adams on Game Design (some of it is free on google ebooks) they explain how it is more fun to have waves of intensity followed by relief followed by intensity rather than constant intensity. Plants vs Zombies follows this formula perfectly by providing big waves of zombies followed by few zombies so you can rebuild. We implemented this concept by adding "moods" to the GM. Based on many factors, the GM will "go evil" on you and break the rules of intensity we set out. But at other times it will "go nice" and give you a chance to catch your breath.
We've detailed plenty of our mistakes in these articles, so we're proud to say this is one where we nailed it! We'll be using this approach in our future titles.
Game Balancing: Redeeming Features
Game balancing is tough stuff! There are no strict rules as to what makes something fun, especially in combinations. In the end we had to go with our personal play experience, and then test on others.
It took 6 weeks to make the core game, and another 10 weeks to balance it. As I look over my work logs, up until the last day we were changing cooldowns, upgrade costs, and energy costs. I could give many examples from our time of play balancing, but I believe the most valuable lesson I can share is how we took something that wasn't good and made it great. This at the core is what the balancing phase entails. So here is the brief story of the Paper Bag:
In reading a book on fiction writing it stated every character thinks they are the hero of the story, so give them a chance to shine. Think of how in Lord of the Rings Sam, a tag along character for much of the story, gets to be the hero when he carries Mr. Frodo up Mount Doom. I think this applies to game features, in our case every tool should get to be the hero and legitimate chance of being a player's favorite.
Each tool has its own purpose. Some are for taking out individual monkeys, some are for dealing with groups. Some are to prevent them from coming in, some are for dealing with them as they come in. Some require the player's attention and dexterity, some are great because they don't require any attention.
The paper bag is a high cost high impact tool that completely paralyzes one monkey (intended for a high threat monkey) for a long period of time. It also has an Area of Effect (AOE) which causes other monkeys to be distracted and laugh at the silly monkey stumbling around.
In the first iteration, once the bag was placed onto a monkey's head it immediately made all monkeys in range laugh. Play testing revealed players preferring other tools over the bag. It's not that it was bad, but it wasn't good.
We played around with the cost, cool down, and range. At one point it made all the monkeys in the field laugh. But still the other tools were better.
Then we thought: what if instead of a onetime AOE effect it had a continual AOE? For the entire time the target monkey stumbled around any monkeys in range would be influenced. This changed the best time to use a paperbag from where a lot of monkeys are currently, to where a lot of monkeys WOULD BE. By making this AOE effect continuous we now had a very effective crowd control AOE tool while incapacitating one target monkey.
Now the paper bag is fantastic!
During game balancing some diamonds are in the rough. Some are rougher than others. It requires determination to cut into them to let the inner brilliance shine forth.
Features: Knowing when and how to say NO!
A game can be built forever. Should I even mention the obvious example of Duke Nukem Forever? When the goal is to create a rich enjoyable play experience, the temptation is to keep adding more and more features, because more = better, right?
Sometimes no. In our case we had to ship the game, not just for financial reasons but for psychological ones. After 2 years it is hard to keep up the enthusiasm. As we played and balanced, many ideas would come up. For instance:
We needed to add an easy (casual) mode for non-gamers or younger children
We needed a visual and audio warning to the player that they just lost a plant (seems obvious now, but it wasn't added until the second last day)
We needed more sound effects
We changed the "level complete" requirement from reaching a certain number of monkeys, to reaching a certain number AND clearing the whole field
All of the above were implemented, but they were unscheduled tasks and our release date kept being pushed further and further out.
To decide what HAD to be done we asked ourselves these two simple questions:
1) Is the game broken without it? Meaning it is too hard to play, or doesn't make sense to the average player, or boring/repetitive
2) Would we be embarrassed to release without it? Meaning it is obvious we cut a corner.
The second question may sound a little strange. Personal pride and brand reputation are at stake writing a game. If we tried our best and failed, that is ok. Sometimes that is life. But if we cut corners, therefore reducing chance of success, and we failed, that is just being lazy or foolish.
To reach our timeline some things had to give:
Cut a type of monkey
Cut two tools
We wanted level ranking and gamecenter integration, but we had to cut it
Watergun didn't make the cut. Maybe there will be a sequel we can put it into!
Finally, the hardest thing we had to do was what I'll call "compress" the game. Our goal had always been to have 50 levels, each of about 3 minutes (earlier ones are shorter, later ones are longer) for 150 minutes of perfect play.
Upon play balancing we saw there were fun levels and not as fun levels. Fun levels generally had the player getting something new (a new tool, star power, monkey type). So we decided to compress the game by removing the low fun content; 13 levels. It hurt to see all that work go away. But in the end what the player now experiences is peak to peak fun with no valleys.
After spending twice as much time polishing the game as it took to build it, we had a game that was truly feature complete. It was fun, it flowed well, and we are proud of it. It takes some going, but once you hit the sweet spot mid way through the game it is a ton of fun. We were finally ready for testing with others.
Testing, Release, Marketing
We had a game! Hurray! It worked, it played well, it has a beginning, middle, and ending. We were ready to get the sucker out the door. But before release, we had to go through the final stage of development: testing. Wow, what an eye opener!
No one Knows How to Play Your Game, and They Don't Care to Learn!
I submit I may be the strangest person alive.
I grew up in the 80's and early 90's. This is where many of my early gaming habits formed. Back then when I bought a new computer game, such as Civilization, Ultima, or Wing Commander, I would sit down and read the entire manual cover to cover before attempting to play the game. And this was when manuals were works of art: the civilization manual was over 100 pages and filled with fascinating sidebar historical facts. I continued this practice, though I've stopped now that the manuals are nothing more than epilepsy warnings and telling me where the square button is on my controller. (Fortunately board games still have amazing manuals, so I can enjoy those )
The good old days when games were hard and manuals were thicker than your arm!
Apparently no one else read manuals so the gaming industry moved away from them altogether. Players want to play, not learn how to play. I sort of knew this, I read about it in game design books, but I didn't have the experiential knowledge of it. It quickly came.
At our pre-release party (unfortunately 3 months before the actual release, but who's counting) we had several iOS devices with a 4 level demo version of Catch the Monkey installed on them for people to play. We watched people pick up the game and play it for the first time. We learned two things: people enjoyed playing with the monkeys, but they had no clue how to do it. So while they had fun, they were frustrated not knowing how to use the various tools.
It seems obvious as I write this, but we discovered our need for tutorials built into the game. All I can say is that when you work on something closely for 2 years you lose track of what is "intuitive" and what isn't. Observe strangers and reality will come crashing in. So, we used our character dialog system to retrofit in a tutorial system.
First Iteration of Tutorials. Nobody reads em.
Weeks before release, we tested with a focus group of teenage girls (our demographic) to see how they enjoyed the game. I squirmed in my seat as I watched them tap "next, next, next" and completely bypass the tutorial to get on to the game. Once there, they didn't know how to use certain features, started losing, and became frustrated.
Final version of tutorials. If you can't follow that, there's no helping you!!!
We learned valuable lessons as we went through three iterations of tutorials:
People assume they already know how to play your game. I can't for the life of me figure out why they come with this belief, but they do. Work with it, not against it.
People don't want to learn (because of the above), they want to play. So teach them one basic thing and set them off playing
When teaching, we observed the average player's patience is two: Two screens of slides, two steps of interaction, two dialog boxes, then they don't care anymore and want to skip forward
After playing, people want to learn. There is a correlation between how long they play and how interested they are in learning to play. In the first 2 minutes, they have 0% interest, at 5 minutes they have 10% interest, at 10 minutes they have 50% interest.
You have to space your lessons appropriately
Remove all flowery "in character" text from the tutorial, they want to learn as quickly and efficiently as possible and could care less if a character starts each sentence with ""
They don't want to read, they want to do. Make the tutorial visual and interactive
Pre-plan your tutorials into the main story/progression of the game. Don't do what we did and try to retrofit it in, it was a lot of work after the fact
Testing with Testflight
As previously mentioned, iOS locks down the devices to which you can install a binary. This requires the unique UDID of each device, registering it through the apple portal, including the provisioning profile at compile time into the binary, and then copying a provisioning profile to the device through iTunes (which provides zero feedback if it was done successfully) and finally copying the binary to the device through iTunes. I can't think of a process more antithetical to the apple "it just works" mantra. So, you can do all that OR you can use testflightapp.com.
Testflight for build distribution during testing; epic win!
With testflight, you send testers (family, friends, enemies) an email link and they go to it on their device. Testflight takes care of finding the device UDID, os version, make/model of device, and sending it to you the developer, installing the provisioning certificate. As a developer, all you need to do is register the device id to your binary. Now you can upload a build (with release notes) to testflight, and everyone you autohrize is sent an email a link to download it. It bypasses all the silly itunes file copying. Testflight's reporting allows you to see who has what installed. Valuable when they start reporting problems as you can definitively say "Oh, that's because you're on a build that was so yesterday! That build was terrible! Install the NEW build, it's wonderful."
Testing with Non-Gamers
Would you rather know about an issue during development, or once it's released? Of course during development!
Testing with people who play similar games as the one you are making is very helpful. You can be sure you are meeting your demographics' demands and they can often make suggestions or give articulate feedback on issues as they have a frame of reference.
However, we found great value in testing with people who have never ever played an electronic game in their life. You know who I'm talking about: your mother-in-law whose only game experience is yahtzee on the dining room table; the friend who didn't know brick breaker was pre-installed on his blackberry.
The official term is blackbox testing. These people can confirm if your tutorials work, but more importantly they do things you never in a million years would do. But make sure you watch them closely, they won't be able to tell you what they did or did not do. Here is an example:
We finished our final bug free never crashes build Dec 15. Over the Christmas holidays I showed a non-gamer friend the finished game. Within 2 minutes of playing he crashed it.
How? He never once lifted his finger from the screen. If you recall from part 3 about our gesture system, it tracks the current finger position every 50ms. Well if the player never ever lifts their finger from the screen, it becomes one giant gesture of 2,400 points after 2 minutes (affecting performance). Even worse, the initial target object of the gesture may be destroyed while waiting for the gesture to finish, resulting in a NULL reference and therefore a crash.
It was relatively easy to replicate and fix once I saw what he did, but I have to admit I never imagined someone not lifting their finger!
How Do You Know When You are Done Testing?
This may seem like a silly question, especially coming from a business software background. In business software you would already have all your test cases written before hand (Right?) and execute them. When they all pass, you know you are good to release. Typically we would then get the customer to test the application in a pilot project, and that is the "real world" test. If it's good, we release.
Well in games, it's different. There is no "customer" to sign off and take responsibility that the application is good, you just have to decide at some point: it's done.
Release too early, and the game will crash or misbehave for customers. Release too late, and you've squandered valuable effort that could have gone into another title.
I was listening to the MIT Open Courseware on Game Design and they asked this very question: how do you know testing is done?
Their answer: When you are out of time.
When you can't take another step forward, you might be done testing.
That seemed like a cheeky answer, but having now lived it, I agree. Now, of course, we made certain all features worked, it was as fun as we could make it, and it didn't crash. (Of course now as I write this we've heard reports of a bug in one of our tutorials, oops!). The game will never be perfect, there is always more to add, more to test. There comes a point where you have to draw a line in the sand and ship it. For perfectionists, this is a very difficult thing to do. I am fortunate that I'm not working solo on this project, both the artist and I together were able to agree the game was ready to go out. That gave me confidence I wasn't deluding myself or just fed up. J For those soloing it, I recommend you ask a friend to be your "quality control" and help give you the thumbs up for releasing.
Judging the Difficulty
I read in the book Level Up: Guide to Great Game Design that the game makers are the worst people for judging the difficulty. So, I knew this going in, but it is still difficult in practice. Obviously the first people that need to be happy are the ones making the game, that is your first quality control gate.
We also tested on young children (3, 8, and 9). Why? Because they'll test for free all day long and they have nothing better to do. (And they are the artist's children). We found that young kids love to play Catch the Monkey, but the mid game was too hard for them. So thinking this was a secondary market, we created an Easy mode that gives the player more energy and reduces the maximum number of monkeys in the field at a single time. The kids loved the easy mode and were able to finish the game, so we were happy.
Later, when doing focus group testing, two of the teenage girls couldn't get past a certain level and were getting frustrated. We recommended they restart the game in easy mode. As soon as they started playing in easy mode they said "Oh wow, this is much more fun."
At this point we had a dilemma: do we make easy mode normal mode, and normal mode hard mode? We did and made all the code changes to reflect this.
Then, a few days later, we fixed a bug in the Level GM AI and found it was working much better than previously. So we flipped it all back to Easy and Normal rather than Normal and Hard.
Big mistake.
Now that we have released and friends/family have been buying it, the most common complaint we hear from casual gamers is that it is too hard. When we tell them through facebook to try it on easy mode, they always come back with "Oh wow, this is much more fun." Even post release we're still learning things the hard way!
Here are the key lessons we've learned:
Make the game too easy, rather than too hard. Too easy can still be enjoyable, too hard never is.
Casual gamers are not looking for a challenge, they are looking to pass the time. Easy fits within this expectation.
Don't make the game hard with the ability for the player to opt into easy. Make it easy with the ability to opt into hard.
Releasing to the App Store
After making it through the arduous testing phase, we were ready to release this sucker. This has several steps:
1) Making a build signed for App Store, as opposed to ad-hoc provisioning build
2) Uploading the binary to Apple
3) Waiting for approval
It was time to fire up Visual Studio one last time and create an app store build. It was relatively easy to do, I simply copied the deployment options from my test flight build in Marmalade and off I went. Now here's the thing: you cannot test your app store build before you upload it. Why? Because it can only be installed on a device through the app store. So better get it right!
And we didn't.
iTunes Connect is how you control your app in the app store
I made two blunders when doing the final build. The first was somehow I didn't copy the proper icon image settings from the internal build to the final build, so it went to the app store with the default app icon. Doh! The second was far, far worse.
We knew our game didn't work on anything below iPhone 3GS or iPod 3. I saw other games show this requirement in the app store along the left column. I didn't see any way to set this through marmalade deployment, so I assumed it was done in the app store itself.
Well when you upload an app, especially your first, iTunes Connect walks you through a wizard. The answers you provide can never be changed, you got one shot to do it right. These we did right. Again, I didn't see anywhere I could set the requirements, so I figured it was after I uploaded the binary. I uploaded the binary and it went into the queue for review and approval.
Well, 8 days later, it was approved. But still no way to set the system requirements. It wasn't until later that I found out you need to modify the plist.info file to include the OpenGL ES version to 2.0 to target the devices we wanted.
No biggie, I modified the plist.info file and proceeded to upload the new binary.
Apple does not allow a developer to set more narrow restrictions on an application update than the app first had. So in short: if your initial version says it will run on iPod 2, you can't later do an update that makes it no longer run on iPod 2. We screwed up the one thing you cannot correct through an app update. After much back and forth with apple support we had to resort to putting the requirement right into the app description. We already know people don't read, but it's the best we can do at this point.
And one final thing to know about releasing to the app store when you make your app on a PC: you REQUIRE a mac to upload the binary to apple.
ITunes Connect used to allow you to upload through http, but no longer. There is a binary uploader program in the iOS SDK that checks and uploads your binary to apple. That uploader program only works on a mac. So while you can build and test the entire app on a PC, you need a mac for 10 minutes to upload your final binary. I've seen someone suggest just going to an apple store and using a demo mac to upload. In my case I already had the mac mini, so it wasn't terribly inconvenient, but it was a real surprise.
Releasing to the World
By default, all apps uploaded to apple are released to every itunes store in the world, unless you specifically turn a store off.
There be a lot of iTunes Stores. Fortunately you only need 6 translations to cover them all.
We had always intended to release to multiple countries, so we tried to minimize the amount of text in game and use symbols where we could (the monkey story sequences use icons rather than text for this reason, although it actually made more sense conceptually too: how do you write "monkey speak" anyway?!).
The key is to get your app description translated from your native language into the various app store languages. It costs about $100 per language to use a translation service to translate our app description. Of course, the difficulty is we have no way to judge how good the translation is!
Initial Marketing
As I write this fourth part, our game has been out in the world for 22 days. Sales haven't skyrocketed, so we're in no position to advise on how to market a game. However, there are two things we can share.
First, Apple controls the app store. They make their decisions based on volume. The sections like "What's Hot" and "New and Noteworthy" are driven by volume. The more volume you can drive in the initial days, the more likely you are to appear in those sections. Obviously the key is to get into the "Top 100 Free" or "Top 100 Paid". The only way you get there is through volume.
We've made it to #45 in the Family What's Hot. Go little monkey! Go!
Secondly, we knew review sites are important to get initial buzz going, but how do you find all the review sites out there? A google search will return some of the biggies, but also blogs that haven't been updated in 2 years. So we devised a clever way to make a short list of review sites: most games put their reviews or quotes from review sites in the top part of their app description. By clicking through about 20 apps we were able to compile a list of 41 respectable mobile game review sites.
Most if not all review sites work from a backlog of about 3-4 weeks. And they all want a promo code to get the game for free, they won't pay money for your app. Apple allows you 50 promo codes per release. Once you make a new release, the unused promo codes are invalidated.
In the 3 weeks we've been waiting, we've had 1 review come back. Fortunately it was a good one.
For our next title we'll be doing more on the pre-release marketing side to get the game buzz out before release. As we were taking so long on Catch the Monkey and we didn't really know if or when we would be done, we had to forgo pre-release marketing.
Well, there you have it: a summary of our ups and downs over roughly 2 years trying to make an iphone game.
We set a goal, and despite great difficulties, achieved it. Beyond this, three things have brought great satisfaction:
1. Our first review came in:
We received 4/5 stars and an editor's choice award from the family mobile gaming site famigo.com. It's nice to know someone objective thinks what we made is good!
2. A review someone wrote on the US store:
How fun can catching monkeys be? Hours of fun! I love this game because it's something for my kids to do that's different from princess games and phonics—and it's something that I can do when I'm commuting, waiting for my next appointment, or just to relax. This has got to be one of the best non-violent games I've ever seen. Great graphics, good story, and entertaining for everyone.
3. The popularity of these articles.
When we first set out to talk about our experience, we didn't know who would be interested. Over 3,000 reads and counting on the first article makes all this writing effort worthwhile! Thanks!
What's next for Mirthwerx?
We're currently working on a few things:
Playbook version (taking full advantage of having used Marmalade)
Android version (dido)
Free version (different from a lite version, it's a different but similar game)
And our second title which is a puzzle game for the masses (remember, turn based!)
I've enjoyed writing these articles, I hope they've been of benefit. I have some ideas for maybe doing an "encore" 5th article next week, but I'd be looking for questions or comments from people before I decide to do it.
Until next we meet,
Lord Yabo