Mr. Campbell has been a practicing courtroom lawyer for over 40 years. He focuses his accident, injury, product liability, medical malpractice, legal malpractice, and business dispute practice on Missouri cities and towns south of I-70 including, Kansas City, Sedalia, Warrensburg, Columbia, Jefferson City, Washington, Rolla, Lebanon, Farmington, Cape Girardeau, West Plains, Carthage, Joplin, Springfield, Poplar Bluff, and Lake of the Ozarks. Mr. Campbell serves as a mediator in civil lawsuits in his practice area, and he is an expert witness in attorney malpractice cases in Missouri.
Mr. Campbell is not only a respected trial lawyer, but also a civil suit mediator and expert witness in malpractice cases.
Listed in Super Lawyers directory published by Thomson Reuters 2006-2017. Lawyers listed in the Super Lawyer have been selected on the basis of qualifications, experience and peer review. Only 5% of the lawyers in a selected jurisdiction are listed.
After being admitted to the bar, John practiced with two well respected trial firms in Kansas City, Missouri, and was a co-founder of his own firm in Kansas City in 1980. Since then he has practiced with that firm or its successor. John began his practice at the Lake of the Ozarks in 2001, and continues to practice in that community and in Kansas City. Consultations with John are available by appointment only.
Tried 75-100 jury trials to verdict as lead counsel, including automobile collisions, products liability, premises liability, medical malpractice, legal malpractice, fraud, antitrust, and wrongful death.
John has also served as legislative advisor to the Missouri Association of Trial Lawyers, evaluating and revising legislation introduced in the Missouri General Assembly since 2001.


Spiridon Trikoupis was a Greek politician and writer, born in Mesolongi, Aitoloakarnania prefecture in 1788. He was a close political associate of Alexandros Mavrokordatos whose sister he married. Of this union a son was born, future Prime Minister Charilaos Trikoupis. After retiring from politics, he authored a 4-volume work on the history of the Greek revolution.
Trikoupis died on February 12, 1873.
This page was last edited on September 19, 2008, at 13:30.


Chef Michael Smith is back for another weekend full of fun, food and festivities - it's like a big holiday party - and you're invited!
Get to know Canada's best known chef, cookbook author and Food Network Canada TV show host as there will be lots of opportunities to meet, mingle and interact with Chef Michael himself - plus delicious dishes from his latest cookbook during a festive interactive dinner like no other. Fa la la your way up to Muskoka for this unforgettable weekend!


text:
Der Canyonlands-Nationalpark ist ein Nationalpark in der Nähe von Moab im US-Bundesstaat Utah in den Vereinigten Staaten von Amerika. Er liegt in direkter Nachbarschaft zum Arches-Nationalpark. Das Gebiet wurde am 12. September 1964 zum Nationalpark erklärt und umfasst eine Fläche von 1366 km² (527,5 mi²).

Der Colorado und der Green River haben tiefe Canyons in das Colorado-Plateau geschnitten und teilen den Park in drei Teile auf:

 Island in the Sky im Norden
 The Needles im Südosten
 The Maze im Westen

Neben diesen drei Hauptgebieten gibt es noch ein kleines im Westen, den Horseshoe Canyon.

Regionen

Die Island in the Sky- und die Needles-Bereiche sind über die US 191, die durch Moab führt, erreichbar. Die Maze ist die abgelegenste der drei Regionen und nur von Westen her über die Staatsstraßen 24 oder 95 und anschließend über unbefestigte Straßen erreichbar.

Zwischen den einzelnen Teilgebieten gibt es innerhalb des Parkes keine Straßenverbindungen.

Island in the Sky

Die Island in the Sky ist eine weitläufige Hochebene (Mesa), die von Colorado und Green River eingeschlossen wird. Es gibt viele spektakuläre Aussichten auf den White Rim, eine Sandsteinabbruchkante rund 360 Meter unterhalb des Plateaus, und auf die Flussläufe, weitere 300 Meter unterhalb des White Rims. Entlang des White Rim führt der beliebte 160 km lange White Rim Trail, ein unbefestigter Felspfad, der nach Genehmigung der Parkverwaltung mit Geländewagen oder  Mountainbikes befahren werden kann. Per Auto dauert die Fahrt zwei bis drei Tage, bei der Genehmigung werden Übernachtungsplätze zugewiesen, die als einzige Ausstattung ein einzelnes Toilettenhäuschen aufweisen. Die Anzahl der ausgestellten Passierscheine pro Tag ist streng begrenzt, so dass der Besucher auf der teilweise abenteuerlich geführten Strecke meist völlig allein ist.

Die Stromschnellen Big Drop Rapids des Colorado River befinden sich auf 1128 Meter über dem Meeresspiegel.

The Needles

The Needles hat seinen Namen von rot und weiß gemaserten Felszacken, die die Gegend prägen. Daneben gibt es aber noch eine Vielzahl von weiteren Felsformationen wie Canyons, Dolinen, Spalten und Steinbögen. Anders als im Arches-Nationalpark, wo viele dieser Bögen über kurze Fußwege oder sogar mit dem Auto zugänglich sind, liegen sie im Needles District im Hinterland und sind nur mit Geländewagen oder über lange Wanderungen zu erreichen.

Die Gegend war früher die Heimat der Pueblo-Indianer, von denen viele Hinterlassenschaften erhalten sind. Viele der Werkzeuge und Kleinutensilien sind von Antiquitätenjägern entwendet worden, aber viele der Steinhäuser und Erdhütten sind gut erhalten. Die Angehörigen der Pueblo-Kultur haben außerdem Spuren in Form von Petroglyphen hinterlassen. Die bekanntesten sind auf dem sogenannten Newspaper Rock in der Nähe des Visitor Center am Eingang zu sehen. Im Südosten grenzt der Needles-Distrikt des Nationalparks direkt an das Bears Ears National Monument.

Der Cathedral Point im Needles District ist mit 2170 Metern die höchste Erhebung im Park.

The Maze

Der Maze District liegt westlich des Colorado und Green River und ist das abgelegenste und am wenigsten zugängliche Teilgebiet.

Trivia
Der 2012 erschienene Roman Land der roten Steine des österreichischen Schriftstellers Walter Kappacher spielt zu weiten Teilen im Maze District.

Siehe auch
 Geologie der Canyonlands

Weblinks

 Canyonlands-Nationalpark auf Deutsch

Einzelnachweise

Nationalpark in Nordamerika
Nationalpark in den Vereinigten Staaten
Geographie (Utah)
San Juan County (Utah)
Wayne County (Utah)
Garfield County (Utah)
Grand County (Utah)
Tourismus (Utah)

redpajama_set_name: RedPajamaWikipedia


The plan for the weekend was to do some domestic chores on Friday, watch Wigan in the Play Off Semi Final in the evening, then go to a Vintage Fair in Manchester on Saturday and then onwards to John Lewis to look at sourcing a new TV.
The first part went to plan – we got lots done on Friday and the Warriors beat Leeds to make it through to Old Trafford, so Friday was a good day. What had also helped was the fact that we had wall to wall sunshine and that the forecast for the weekend was just as good, so we abandoned Manchester in favour of a night away in Absinthe. But where to go?
Initially, we thought we'd go to the Coach House Inn in Torver near Coniston. It's got a campsite behind it and is close to where my mate Mike lives so we could have invited him and his wife, Dawn, for a meal in the evening. Enquiries with him via text brought the news that the pub had closed and the site wasn't available so we switched to plan B or C.
Plan B was Pateley Bridge in North Yorkshire and Plan C was Silverdale. A quick look at the weather forecast gave higher temperatures in the West so we chose Silverdale.
I'd stayed with Boris at Gibraltar Farm back in June but Alison hadn't stopped here before. We arrived about 1.30pm after sorting some things at home and managed to get a pitch with Electric Hook Up. There was a camping rally in the main field with a marquee, etc and quite a few of the members had motorhomes on the EHU pitches.
We'd had no lunch so walked with Boz to the Wolfhouse Gallery and Cafe, close to the entrance to the site.The cafe was extremely busy – this is a popular spot for walkers and day trippers – so we had quite a wait for food. The main gallery seems to be undergoing refurbishment with new stock and fittings arriving during the time we were there and there was a Transit van parked in the access way as we went to leave.
As I got close to the van to squeeze through, a girl of about eight rushed rudely past and when I gave her Mother the eyes she also brushed past me, saying, "I'll have to go after her, she only speaks Russian" Fair enough.
I was reading the Westmorland Gazette (known locally as the Wezzy Gezzy) later and it seems that there are a group of children from Chernobyl being looked after in the area and I assume the girl was part of that group. They're over for a month on a trip organised by volunteers and I hope they have a great time.
After lunch we walked down to Silverdale village, across The Lots and down to The Cove, then back along the shore. The weather was great, Boris behaved himself and we sat for while on a bench, people watching and looking out to sea, with the sun beating down. Bliss.
A short stop at the pub up the road (The Silverdale Hotel) brought two glasses of wine in the beer garden and a packet of Cheddars for Boris. The beer garden could be so much better. There are plenty of picnic benches to sit at (and the usual smoking shelter) but the floor is covered in large limestone chippings which are neither attractive to look at, nor comfortable to walk on.
We walked back to the van and chilled, watching the sun gradually sink towards the horizon over Morecambe Bay. It turned quite chilly as we walked back down to the pub for an evening meal but we'd come prepared with fleeces and jumpers. The meal was OK although the beer didn't seem as good as last time I went in June. Another diner complained to the waitress about her meal (apparently it wasn't what she'd expected) – strangely, once the cost had been deducted from their bill, she proceeded to eat it all. Very odd.
We were back at the van and in bed by 9.30pm, listening to a programme about irony on R4 (insert your own jokes please), but neither of us had a sound night's sleep – I was cold and Mrs B was constricted by a certain Schnauzer, who was commanding his own space on the bed. Grrr.
Sunday started cool and breezy but sunny and after we'd packed up we headed back down to the car park at the beach for a breakfast of crumpets and coffee. Apparently, there was a cross Bay walk organised for Derian House Childrens' Hospice on Sunday, but we didn't spot the walkers whilst we were there. We were booked to do the walk a few years ago for the Hospice but it was cancelled at the last minute because of the weather. I've added it back to my 'to do' list. Cedric Robinson has recently completed 50 years as a guide across the Bay – whenever I've seen him on TV he always seems very calm and happy in his own skin.
We sat watching the sea and people for a few hours then made our way back home. We're organising a meeting for the Northern Chapter of the BrazilianVWBay Forum next June at Gibraltar Farm and if the weather's good we should all have a great time. It would be fun to try and get all the vans down to the beach car park on Sunday morning for a photo opportunity but we'll have to be there sharpish to beat the other cars.
The duvet cover and bedding for the van – heaven knows where she's put them!


Mustachian Post - Who is MP?
We are a couple in our thirties, and have two kids that fill our lives with happiness. We reside in the countryside, in a pretty corner of Swiss Romandie between lake, forests, and mountains. Thanks to a frugal lifestyle, we were able to complete our first life project which was to become homeowner in Switzerland. Our second major project is to reach financial independence by 40.
It's me (MP) who is behind each of the articles. I write about financial independence from a Swiss point of view. My favorite subjects are on the one hand practical cases such as how to manage your money with a budget or how to invest to achieve early retirement by 40, and on the other hand those more conceptual such as minimalism or essentialism.
My philosophy can be summarized as follows: "Life is a game, and it's up to you to define its rules." Applied to personal finance, this latter pushed me to think outside the box with this goal of financial independence. A goal that, once reached, will allow us to have time to explore other passions and aspirations, as well as to discover the world.
If you recognize yourself in these points, then welcome to the Financial Independence and Early Retirement Swiss Community. On this blog and its associated forum, you will find the keys to a wealthy, happy, and meaningful life!
What's the best online broker as a Swiss investor?
Let's start with my dear wife, Mrs MP, whom I define as the social element of our couple: it's her who plans our weekends, who invites people spontaneously on a weekday evening, which develops our network by getting involved in our village, and who, above all, likes to please others. So it's not surprising that she likes to cook (and she's so good at it!) because what's better than a good meal to share quality time with family or friends. It's said that the opposites attract, and it's true in our case if we add to her portrait the "impulsive" and "emotional" character traits that I liked from the first day on.
She works in an area where she can leverage all these qualities. After the birth of our children, she switched to part-time so that she could enjoy them as much as possible.
On my side, I'm a rational and pragmatic person. I'm grateful to have met my wife who brings this social thing into my life (because without her I think I'd be a monk), although I appreciate to have one or two weekends to relax and recharge our batteries. In our couple, I'm the geek and optimizer who is always looking to increase our savings rate by a small extra percent.
At work, I'm lucky to have a pleasant and motivating job, with flexible schedules, which allows me to play with our two kids a lot.
Another element that often comes up in the subjects and photos of the blog is that I fell in love with nature and great spaces when I was young, and the simple fact of seeing the blue of a lake or the green of a forest makes me happy. This explains the many references to my beloved country that is the Canada.
Our two children are my center of gravity. They bring me back to reality when I'm overwhelmed by my job or lose myself in blogposts ideas. They have this power to live in the present moment that make spending time with them well worth any meditation session!
I try to provide them with the educational bases that I received (included the financial ones), and to add my dose of financial independence on top of them.
They're really happy to have moved into the countryside because they're so much more free. Before, we often had to be with them when they played outside (as we lived in the city), but now it's more like "T'chô mum, I go play with my friends!"
Both Mrs MP and myself have grown up in the countryside, and we're delighted to be able to offer our children the same lifestyle: being surrounded by forests and mountains, and having closer and deeper contacts with people (vs. the often individualistic and shallow side of cities).
I learned the definition of the word "debt" as a synonymous of bad financial behavior, except to buy a house. In fact, we didn't even talk much about it with my parents because it was obvious that consumer or car loans were nothing but a recipe for sinking into precariousness. At the time, I did not understand why, but I knew that a debt was something harmful.
I still remember the purchase of my first car: my father had lent me some cash because he preferred to help me than to see me be cheated by a bank. For my second car, I couldn't resist and offered myself a powerful car that I'd wanted for so many years. This was my first and last car loan. My father was right, but I had to make this first grown-up mistake on my own to understand what he meant: nobody wants to pay 10% of interests for something that only brings ten minutes of pleasure per month, and depreciates as the worst investment!
Nevertheless, like most adulthood people, I lived from paycheck to paycheck, hardly ever saved, and went through events without questioning any expense. The only dream I had that required a lot of money (besides buying a Tesla) was to become a homeowner; I thought it would come as if by magic.
After having dreamed to become rich until the quarter of my life, I realized that the CHF wouldn't fall from the sky, and that the only one who could change something was me.
So I started to look for a budgeting tool to better manage and plan our finances in order that we save seriously - since nobody wanted to do it for us! This is where I discovered YNAB, which then led me to the concept of financial independence and early retirement (aka FIRE). I was immediately hooked. I began to read everything I found on the subject as I'd finally found a way to take control of our (financial) life to make it what we wanted.
I still remember the things I'd like to do the day when we wouldn't have to work anymore to make a living.
The first, quite simple, would be to have the time to take a nap in the middle of the week while everyone would go back to work after eating a tiny sandwich between two meetings.
Another visualization that I remember took place one morning, when I was leaving home to take the public transport; I had just come across a retired person who was going for a walk in the forest while I was about to start my day in the fast lane... I told myself "The day we are financially independent, I'll take the same bus early in the morning, except that I'll wear sport clothes and that I'll go for a walk in our beautiful Jura from 7 to 9am without the stress to have to go to work afterwards!"
A last one to stay inspired: being able to go to Canada for three months and to enjoy a RV road-trip, without having to worry about work or money. It makes you dream, doesn't it?
A hike in the Jura mountains on a sunny Tuesday afternoon, that's tempting isn't it?
Since this eureka moment in 2014, we have learned to optimize all of our expenses, to put a lot of money aside, to invest this cash on the stock market, and to optimize the taxes we pay. All of this allowed us to buy our home in Switzerland a year earlier than our original plan.
Mrs. MP has long thought that financial independence was a sweet dream of mine that would go away at some point, because she always had difficulty (and still today) to imagine that one can really stop working at age 40; but seeing the result of our efforts with this real estate purchase convinced her a bit more that our second big life project was actually possible.
Our combined wages have now reached CHF 10'000/month, we have crossed the quarter-million mark, and our average savings rate oscillates around 40% with record peaks up to 73%. We now simply need to be patient while continuing to live a happy and frugal life until the day we can leave our respective jobs. We can't wait for it!
While I was discovering the financial independence topic and beginning to apply certain principles, I soon faced many challenges because there was no FIRE blog focused on Switzerland. How to invest? Which online broker to choose? What portfolio strategy for a Helvetian? Which 3rd pillar?
I then created mustachianpost.com to document my Swiss journey towards financial freedom, with the vision of bringing value and inspiring those who would like to follow the same path.
In addition to being able to share my learning and experiences, I use writing as a medium to let my creativity (that I long set aside) run wild.
Along the way, I realized that a blog was good, but that it was still unilateral. I had plenty of space to express myself as an author, but the only way to speak out for other members of the community was either via the comments or other forums that only had a single discussion thread for Switzerland... I therefore launched a forum dedicated to the Swiss FIRE community.
In the past years, my vision of fortune has changed a lot, especially when it comes to what it can bring in a life: time and meaning — vs. the Tesla and other luxury yachts.
By interacting with this exceptional FIRE community, I came across new concepts that made me grow and evolve in directions that I'd never have thought taking in my life.
One of the major discoveries was minimalism, also called simple living. This way of life can start from various motivations such as anti-consumerism or ecology. My personal motivation was rather the will to reach a state of constant contentment, and get out of this vicious circle of always wanting more of everything to ultimately never be happy nor satisfied.
By digging into the subject, I learned techniques such as meditation and gratitude that help me to be more connected with the present moment, more listening to others and myself, and more open to the world and new ideas.
Having moved quite a lot and tested different sizes of city, this new state of mind made us settle where we felt it was the best for our family: in the Swiss countryside with its forests, its cow bells, its Vaud accent, and its small shop opened on Sunday mornings!
We realize that we are much more fulfilled since we are closer to people, and that we really take the time to enjoy every moment with them. The surrounding nature also helps us a lot to refocus on ourselves compared to big cities and their constant frenzy.
About outings, a decade ago, we were more the kind of people who went "shopping" on Saturday afternoons, as if spending money randomly was something "normal" like to go for a walk or work out. Now, the trend is much more focused on relationships with others and outdoor activities with children. And above all, we endeavor to get out of this short-term thinking where one tries to buy his happiness by consuming more and more instead of simply enjoying the one he has at his fingertips!
I would never have thought that I would succeed in keeping this blog active for more than a month, and here we are now with a significant number of articles.
If you are more of the "do things properly or not at all" kind, I advise you to start with the first post of the blog, and to go up until the last one published to not miss a chance to get wealthier.
For the most impatient of you who'd like to know how to get rich, you can read how we manage our budget. This should allow you to set aside some cash fairly quickly. If this is not enough for you, read this pro advice to boost your savings rate. Then, make sure that your bank accounts' setup is optimal so to not let your banks eat up all your savings!
After that, you should start to encounter the problem that you have too much money and don't know what to do with it. The financial independence concept relies on the fact that you have to make your money work for you — and not let it sleep under your mattress, so that you no longer need to work for it. I precisely wrote a blogpost dedicated to aspiring investors to explain how to make money on the stock market via Swiss equities and bonds.
If you're rather looking for advice on how to adopt a healthier and more genuine lifestyle, then I'd direct you to the category of my books and documentaries' reviews . I write only about the gems I find, and believe me, there are some that will change your life. You'll tell me what you think about them!
Thank you for following me in this life experience that is our journey towards financial independence in Switzerland. I love to exchange with people having the same kind of project that are a little bit crazy, so don't hesitate to share yours with me by email, Twitter, or Facebook.
And don't forget: "Life is a game, and it's up to you to define its rules. Why wouldn't you start today?"


text:
Royal Markets Inc. ("Royal," "We," "Us," or "Our") provides a way for fans to own parts of the songs they love, buy and/or sell non-fungible tokens ("NFT"s) on Our marketplace, manage NFTs using Royal digital currency services (as known as custodial or wallet services), and be part of Royal's exclusive social networks. This Privacy Policy describes Our policies and procedures on the collection, use, and disclosure of your information when you use Our sites or other on- or offline offerings (collectively, the "Service") and tells you about your privacy rights and how the law protects you.
We use your Personal Data (as defined under applicable privacy laws) to provide and improve the Service. By using the Service, you agree to the collection and use of information in accordance with this Privacy Policy.
International Transfer of your Personal Data
Analytics and Email Marketing
Supplemental Notice for Nevada Residents
Collecting and Using Your Personal Data Information We Collect Directly
We collect the following personal data from you when you use Our Service:
While using Our Service, We or Our service providers may ask you to provide Us with certain personal information. This information may include, but is not limited to:
Whether you are an artist, an artist's representative, or a collector
Bank account information in order to pay for products and/or services within the Service
Artist submission data
To sell NFTs on Royal, We may ask for the following information:
Your real name and artist name
Whether you are an artist, label/distributor, agent, management, or other
Your preferences with respect to using Royal (timeframe for releasing NFTs, types of NFTs sold, name of assets owned, etc)
Details about your asset ownership (percentage owned and desired percentage to sell, whether the asset is released, the asset genre, etc.)
Your experience with selling NFTs
NFT Purchase Data
To make purchases of NFTs or pay for a product and/or a service via bank transfer, We will also collect:
Your crypto wallet address
Which NFTs you bid on or purchase, and the amounts you pay for each NFT
Other information to facilitate the transaction, verify your identity, and comply with Our regulatory obligations (sometimes referred to as "Know Your Customer" checks). Such information may include, without limitation: date of birth, your passport or national ID card, a bank card statement, or other information linking you to an address.
In connection with Our social network platform, We may also collect:
Names of friends you choose to invite
Your public facing profile and optional avatar photo
Messages you send to and receive from or conversations made with other users
Audio, electronic, visual, and similar information
Usage Data (as defined below)
Note that when you use Our interactive features (e.g., messaging and chat features, commenting functionalities, forums, blogs, and social media pages), any personal information you provide will be considered "public," unless otherwise required by applicable law, and is not subject to the privacy protections referenced in this Privacy Policy. Please exercise caution before revealing any information that may identify you in the real world to other users.
Your Communications with Us
We may collect personal information, such as email address, phone number, or mailing address when you request information about our Services, register for our newsletter or loyalty program, request customer or technical support, apply for a job, or otherwise communicate with us.
We may contact you to participate in surveys. If you decide to participate, you may be asked to provide certain information, which may include personal information.
Sweepstakes or Contests
We may collect personal information you provide for any sweepstakes or contests that we offer, including information needed for tax purposes. In some jurisdictions, we are required to publicly share information of sweepstakes and contest winners.
Conferences, Trade Shows, and Other Events
We may collect personal information from individuals when we attend or host conferences, trade shows, and other events.
Business Development and Strategic Partnerships
We may collect personal information from individuals and third parties to assess and pursue potential business opportunities.
We may post job openings and opportunities on our Services. If you reply to one of these postings by submitting your application, CV and/or cover letter to us, we will collect and use this information to assess your qualifications.
Usage Data is collected automatically when using the Service. Usage Data may include information such as your device's Internet Protocol address (e.g. IP address), browser type, browser version, the pages of Our Service that you visit, the time and date of your visit, the time spent on those pages, unique device identifiers and other diagnostic data.
Information from Third Parties
We collect the following types of personal information from you from third parties:
For Digital Currency Services.
In accordance with the applicable law, We or Our service providers may obtain information about you from public databases, credit bureaus and ID verification service providers for the purpose of verifying your identity. Such information may include name, address, publicly available information, credit history, status on any sanctions' lists maintained by public authorities, and other relevant data. We obtain such information to comply with Our legal obligations, such as anti-money laundering laws. In some cases, We may process additional data about you to assess risk and ensure Our Services are not used fraudulently or for other illicit activities.
Third-Party Social Media Services
Royal allows you to create an account and log in to use the Service through the following Third-party Social Media Services:
If you decide to register through or otherwise grant Us access to a Third-Party Social Media Service, We may collect Personal data that is already associated with your Third-Party Social Media Service's account, such as your name, your email address, your activities, or your contact list associated with that account. If you decide to register through or otherwise grant Us access to a Third-Party Social Media Service, We may collect Personal data that is already associated with your Third-Party Social Media Service's account depending on the information you choose to share, such as your name, your email address, your activities or your contact list associated with that account. Our Service may contain social media buttons, such as Twitter, Reddit, Instagram, or Discord, which might include widgets such as the "share this" button or other interactive mini programs). These features may collect your IP address and which page you are visiting on Our Service, and may set a cookie to enable the feature to function properly. Your interactions with these platforms are governed by the privacy policy of the company providing it.
We use Cookies and similar tracking technologies to track the activity on Our Service and store certain information. "Tracking Technologies" include beacons, tags, and scripts to collect and track information and to improve and analyze Our Service. The Technologies We use may include:
Cookies. A cookie is a small file placed on your device. You can instruct your browser to refuse all Cookies or to indicate when a Cookie is being sent. However, if you do not accept Cookies, you may not be able to use some parts of Our Service. Unless you have adjusted your browser setting so that it will refuse Cookies, Our Service may use Cookies.
Web Beacons. Certain sections of Our Service and Our emails may contain small electronic files known as Web beacons (also referred to as clear gifs, pixel tags, and single-pixel gifs) that permit Royal, for example, to count users who have visited those pages or opened an email and for other related Website statistics (for example, recording the popularity of a certain section and verifying system and server integrity).
Cookies can be "Persistent" or "Session" Cookies. Persistent Cookies remain on your personal computer or mobile device when you go offline, while Session Cookies are deleted as soon as you close your Web browser. We use both Session and Persistent Cookies for the purposes set out below:
Tracking and Performance Cookies
Purpose: These Cookies are used to track information about traffic to the Website and how users use the Website. The information gathered via these Cookies may directly or indirectly identify you as an individual visitor. This is because the information collected is typically linked to a pseudonymous identifier associated with the device you use to access the Website. We may also use these Cookies to test new pages, features, or new functionality of the Website to see how Our users react to them.
Royal may use Personal Data for the following purposes:
For the performance of a contract: the development, compliance and undertaking of the purchase contract for the products, items, or services you have purchased or of any other contract with Us through the Service.
To maintain legal and regulatory compliance: For digital currency services, We are required to collect, use, and store your personal information such as verifying your identity in order to comply with anti-money laundering laws across jurisdictions.
To contact you: To contact you by email, telephone calls, SMS, or other equivalent forms of electronic communication, such as a mobile application's push notifications regarding updates or informative communications related to the functionalities, products, or contracted services, including the security updates, when necessary or reasonable for their implementation.
To manage your requests: To attend and manage your requests to Us, and to provide you with support and to respond to your inquiries, including to investigate and address your concerns and monitor and improve Our Service.
For internal administrative and auditing purposes.
To detect security incidents and protect against malicious, deceptive, fraudulent, or illegal activity, including, when necessary, to prosecute those responsible for such activities.
For other purposes: We may use your information for other purposes, such as data analysis, identifying usage trends, determining the effectiveness of Our promotional campaigns and to evaluate and improve Our Service, products, services, marketing, and your experience.
Automated Decision Making. We may engage in automated decision making, including profiling. Royal's processing of your personal information will not result in a decision based solely on automated processing that significantly affects you unless such a decision is necessary as part of a contract We have with you, We have your consent, or We are permitted by law to engage in such automated decision making. If you have questions about Our automated decision making, you may contact Us as set forth below.
De-identified and Aggregated Information. We may use personal information and other information about you to create de-identified and/or aggregated information, such as de-identified demographic information, information about the device from which you access Our Service, or other analyses We create.
Share Content with Friends or Colleagues. Our Service may offer various tools and functionalities. For example, We may allow you to provide information about your friends through Our referral services. Our referral services may allow you to forward or share certain content with a friend or colleague, such as an email inviting your friend to use Our Service. Please only share with us contact information of people with whom you have a relationship (e.g., relative, friend neighbor, or co-worker).
Royal will retain your Personal Data only for as long as is necessary for the purposes set out in this Privacy Policy. We will retain and use your Personal Data to the extent necessary to comply with Our legal obligations (for example, if We are required to retain your data to comply with applicable laws), resolve disputes, and enforce Our legal agreements and policies.
Your information, including Personal Data, is processed at Royal's operating offices and in any other places where the parties involved in the processing are located. It means that this information may be transferred to — and maintained on — computers located outside of your state, province, country, or other governmental jurisdiction, including the United States, where the data protection laws may differ than those from your jurisdiction.
Royal will take all steps reasonably necessary to ensure that your data is treated securely and in accordance with this Privacy Policy.
With Service Providers: We may share your personal information with Service Providers to verify your identity, monitor and analyze the use of Our Service, for payment processing, to contact you.
With Affiliates: We may share your information with Our affiliates, in which case We will require those affiliates to honor this Privacy Policy. Affiliates include Our parent Royal and any other subsidiaries, joint venture partners or other companies that We control or that are under common control with Us.
With business partners: We may share your information with Our business partners to offer you certain products, services, or promotions you have requested, or products or services We offer jointly.
Advertising Partners: We may share your personal information with third-party advertising partners. These third-party advertising partners may set Tracking Technologies and other tracking tools on Our Service to collect information regarding your activities and your device (e.g., your IP address, cookie identifiers, page(s) visited, location, time of day). These advertising partners may use this information (and similar information collected from other services) for purposes of delivering personalized advertisements to you when you visit digital properties within their networks. This practice is commonly referred to as "interest-based advertising" or "personalized advertising."
Business Transactions: If We are involved in a merger, acquisition, financing due diligence, reorganization, bankruptcy, receivership, purchase or sale of assets, or transition of service to another provider, your information may be sold or transferred as part of such a transaction, as permitted by law and/or contract.
Disclosures to Protect Us or Others: We may access, preserve, and disclose any information We store associated with you to external parties if We, in good faith, believe doing so is required or appropriate to: comply with law enforcement or national security requests and legal process, such as a court order or subpoena; protect your, Our, or others' rights, property, or safety; enforce Our policies or contracts; collect amounts owed to us; or assist with an investigation or prosecution of suspected or actual illegal activity.
The security of your Personal Data is important to Us, but remember that no method of transmission over the Internet, or method of electronic storage is 100% secure. While We strive to use commercially acceptable means to protect your Personal Data, We cannot guarantee its absolute security. To the fullest extent permitted by applicable law, We do not accept liability for unauthorized disclosure.
By using Our Service or providing personal information to us, you agree that We may communicate with you electronically regarding security, privacy, and administrative issues relating to your use of Our Service. If We learn of a security system's breach, We may attempt to notify you electronically by posting a notice on Our Service, by mail or by sending an email to you.
We may use third-party Service providers to monitor and analyze the use of Our Service. For example, Google Analytics is a Web analytics service offered by Google that tracks and reports Website traffic. Google uses the data collected to track and monitor the use of Our Service. This data is shared with other Google services. Google may use the collected data to contextualize and personalize the ads of its own advertising network. For more information, please visit Google Analytics' Privacy Policy. To learn more about how to opt-out of Google Analytics' use of your information, please click here.
Another example is Facebook Connect. For more information, please visit Facebook's Data Policy. You can object to the collection of your data by Facebook pixel, or to the use of your data for the purpose of displaying Facebook ads by contacting the following address while logged into your Facebook account: https://www.facebook.com/settings?tab=ads.
We may use your Personal Data to contact you with newsletters, marketing or promotional materials and other information that may be of interest to you. You may opt-out of receiving any, or all, of these marketing communications from Us by following the unsubscribe link or instructions provided in any email We send, or by contacting Us. Note that you will continue to receive important transactional emails from us, for example notification of updates to this Privacy Policy.
Legal obligations: Processing Personal Data is necessary for compliance with a legal obligation to which Royal is subject.
Public interests: Processing Personal Data is related to a task that is carried out in the public interest or in the exercise of official authority vested in Royal.
Legitimate interests: Processing Personal Data is necessary for the purposes of the legitimate interests pursued by Royal.
In any case, Royal will gladly help to clarify the specific legal basis that applies to the processing, and in particular whether the provision of Personal Data is a statutory or contractual requirement, or a requirement necessary to enter into a contract.
The NAI's opt-out platform: http://www.networkadvertising.org/choices/
The EDAA's opt-out platform http://www.youronlinechoices.com/
The DAA's opt-out platform: http://optout.aboutads.info/?c=2&lang=EN
"Do Not Track" Policy
Do Not Track ("DNT") is a privacy preference that users can set in certain Web browsers. Please note that We do not respond to or honor DNT signals or similar mechanisms transmitted by Web browsers.
Royal undertakes to respect the confidentiality of your Personal Data and to guarantee you can exercise your rights.
Depending on the law in your jurisdiction, you may have the following rights:
Request access to Your Personal Data. In some cases, you may be able access, update or request deletion of your Personal Data directly within your account settings section.
Request correction of the Personal Data that We hold about You. You have the right to have any incomplete or inaccurate information We hold about you corrected.
Object to processing of Your Personal Data. You may object where Our processing is based on Our legitimate interest, or where We are processing your Personal Data for direct marketing purposes.
Request the transfer of Your Personal Data. Subject to applicable law, We will provide to you, or to a third-party you have chosen, your Personal Data in a structured, commonly used, machine-readable format.
Exercising of Your Data Protection Rights
You may exercise your rights of access, rectification, cancellation and opposition by contacting Us as set forth below. Please note that We may ask you to verify your identity before responding to such requests, such as by asking you questions about your use of the Service. If you make a request, We will try Our best to respond to you as soon as possible.
This Supplemental California Privacy Notice only applies to Our processing of personal information that is subject to the California Consumer Privacy Act of 2018 ("CCPA"). The CCPA provides California residents with the right to know what categories of personal information Royal has collected about them and whether Royal disclosed that personal information for a business purpose (e.g., to a service provider) in the preceding 12 months. California residents can find this information below:
The categories of sources from which We collect personal information and Our business and commercial purposes for using personal information are set forth in "Types of Data Collected" and "Use of Your Personal Data" above, respectively.
Royal does not "sell" personal information, nor do We have actual knowledge of any "sale" of personal information of minors under 16 years of age, as the term "sell" is commonly understood. That said, We do share information with third-party advertisers for the purpose of promoting Our Services. To the extent that such sharing is considered a "sale" under the CCPA, you may opt-out of having your information shared by disabling third-party cookies on your device, or by contacting us as set forth below.
The right not to be discriminated against. you have the right not to be discriminated against for exercising any of your consumer's rights under the CCPA.
Authorized Agent. Only you, or someone legally authorized to act on your behalf, may make a verifiable consumer request related to your personal information. You may also make a verifiable consumer request on behalf of your minor child. To designate an authorized agent, please contact us as set forth below and provide written authorization signed by you and your designated agent.
Verification. To protect your privacy, We will take steps the following steps to verify your identity before fulfilling your request. When you make a request, We will ask you to provide sufficient information that allows us to reasonably verify you are the person about whom We collected personal information or an authorized representative, which may include asking you to answer questions regarding your account and use of Our Services.
Refer-a-Friend and Similar Incentive Programs. As described above in How We Use Your Personal Information ("Share Content with Friends or Colleagues"), We may offer referral programs or other incentivized data collection programs. For example, We may offer incentives to you such as discounts or promotional items or credit in connection with these programs, wherein you provide your personal information in exchange for a reward, or provide personal information regarding your friends or colleagues (such as their email address) and receive rewards when they sign up to use Our Services. (The referred party may also receive rewards for signing up via your referral.) These programs are entirely voluntary and allow us to grow Our business and provide additional benefits to you. The value of your data to us depends on how you ultimately use Our Services, whereas the value of the referred party's data to us depends on whether the referred party ultimately becomes a user and uses Our Services. Said value will be reflected in the incentive offered in connection with each program.
If you are a California resident and would like to exercise any of your rights under the CCPA, please contact us as set forth below. We will process such requests in accordance with applicable laws. This Privacy Policy uses industry-standard technologies and was developed in line with the World Wide Web Consortium's Web Content Accessibility Guidelines, version 2.1. If you wish to print this policy, please do so from your Web browser or by saving the page as a PDF.
California's Shine the Light Law
If you'd like to request more information under the California Shine the Light law, and if you are a California resident, you can contact Us using the contact information provided below.
California residents under the age of 18 who are registered users of online sites, services, or applications may request and obtain removal of content or information they have publicly posted. To request removal of such data subject to applicable law, and if you are a California resident, you can contact Us using the contact information provided below, and include the email address associated with your account.
If you are a resident of Nevada, you have the right to opt-out of the sale of certain Personal Information to third parties who intend to license or sell that Personal Information. You can exercise this right by contacting us at support@royal.io with the subject line "Nevada Do Not Sell Request" and providing us with your name and the email address associated with your account. Please note that We do not currently sell your Personal Information as sales are defined in Nevada Revised Statutes Chapter 603A. If you have any questions, please contact us as set forth below.
Our Service may contain links to other Websites that are not operated by Us. If you click on a third-party link, you will be directed to that third party's site. We strongly advise you to review the Privacy Policy of every site you visit. We have no control over and assume no responsibility for the content, privacy policies or practices of any third-party sites or services.
If you have any questions about this Privacy Policy, you can contact us by email at support@royal.io
Royal Markets Inc.

redpajama_set_name: RedPajamaCommonCrawl


text:
Q: Step in the derivation of eigenvalue spacing of a 2 by 2 random matrix In this CMSP online lecture the following derivation of the eigenvalue spacing of a 2 by 2 matrix is carried out. I have a question about the change in coordinates below (in red):
To calculate the spacing distribution of a $2\times 2$ random matrix we start off with a real symmetric matrix
$$X_{[2\times 2]}=\begin{bmatrix}
x_1&x_3\\x_3&x_2
\end{bmatrix}$$
with $X_1, X_2 \sim N(0,1),$ and the off-diagonal elements as $X_3 \sim N(0,\frac{1}{2}).$
The pdf of the spacing, $S,$ between eigenvalues is
$S=\lambda_2 - \lambda_1.$
The characteristic equation is
$$\begin{align}
\lambda^2 -\left(\mathrm {Tr} X \right)\lambda +\det X &= 0\\[2ex]
\lambda^2 -(x_1 + x_2)\lambda + x_1x_2 - x_3^2 &=0\\[2ex]
\lambda_{1,2} &= \frac{1}{2}\Bigg[x_1 + x_2 \pm \sqrt{(x_1+x_2)^2-4(x_1x_2 - x_3^2)}\Bigg]\\[2ex]
S&=\sqrt{(x_1-x_2)^2 +4 x_3^2}
\end{align}$$
Now,
$$f_S(s)=\int_{-\infty}^{\infty} \frac{dx_1}{\sqrt{2\pi}} \frac{dx_2}{\sqrt{2\pi}} \frac{dx_3}{\sqrt{\pi}}\exp\left\{-\frac{1}{2}(x_1^2+x_2^2)-x_3^2\right\}\delta\left(s-\sqrt{(x_1 - x_2)^2 + 4 x_3^2} \right)$$
At this point there is the following change of coordinates:
$$
\left\{
\begin{aligned}
\color{red}{x_1 - x_2 = r \cos \theta}\\
\color{red}{2x_3 = r\sin\theta}\\
x_1 + x_2 =\psi
\end{aligned}
\right.
$$

The question is: Are we just making these $X_1, X_2, X_3$ independent random variables dependent by using $r$ and $\theta$ for all of them? Is this change of variables legitimate, and why?

redpajama_set_name: RedPajamaStackExchange


text:
University Structure
Meet Professor Karen Stanton
Professor Karen Stanton
Professor Karen Stanton joined York St John University as Vice Chancellor in September 2015.
Prior to her appointment, she was Deputy Vice Chancellor at Glasgow Caledonian University. She has also held positions at King's College London and at the universities of Nottingham, Birmingham and Sheffield Hallam.
Her previous areas of responsibility have included executive lead for Glasgow Caledonian University's three academic Schools, its London, New York, Oman and Bangladesh campuses, internationalisation strategies, fundraising and external relations, business and community engagement and as Director of the Centre for e-Research, a 4* rated research team based at King's College London.
Before her roles within higher education, Professor Stanton worked as a researcher for the Home Office and at the BBC.
Professor Stanton gained her first degree in History from the University of Sheffield and her postgraduate qualification in Information Science from Manchester Metropolitan University.
Professor Stanton is currently a member of UUK, GuildHE and the Cathedrals Group and was previously a Director on the JISC Advance Board and on the National Committee of Inquiry in to the Changing Learner Experience. She is a Fellow of both the Royal Society of Arts and the Chartered Institute of Library and Information Professionals. She is also an Ambassador for the Uprising Charity aimed at developing the leadership skills of young people from disadvantaged backgrounds and for the Inspiring Digital Enterprise Award which aims to encourage young people to develop relevant Digital and Enterprise Skills.
Make the possible happen.
Key information about applying through UCAS
The applicant journey
Lord Mayor's Walk, York, YO31 7EX
Hi, how can we help you?
Close site search


that, like Hegel, Marx believed that history was a rational process.
of Marx, so I'll share it, hoping that I am not simply on the wrong list.
the whole nation, the public power will lose its political character.
generally, and will thereby have abolished its own supremacy as a class.
development of each is the condition for the free development of all"
bourgeoisie, therefore, produces, above all, is its own grave-diggers.
Its fall and the victory of the proletariat are equally inevitable" (483).
forms of exchange, returning to a simpler one).


Made of polyester blend with slight stretch, fully lined and non sheer. Comes with mandarin collars and faux oriental button detail on front, accentuated with lace panels. Complete with a concealed back zip closure.
15" - 16" 16" - 17" 17" - 18" 18" - 19" 19" - 20" 20" - 21"


text:
Belly Engineering
Work at Belly
Q&A: Yumin & Chelsea
What was it that led you to a career in Computer Engineering?
Yumin:
Both my parents are engineers. So growing up, I was taught to question how things work and then to seek solutions to minimize effort and maximize results. I took my first programming course in college and fell in love with the numerous possibilities and applications Computer Engineering had. I enjoy the challenge and that sweet sense of achievement when one finally works through a problem. Pursuing a career in Computer Engineering was the best way to continue that interest.
Growing up, I played a lot of video games and really enjoyed strategy games and logic puzzles. My sister and both my parents hold jobs in tech, so I always had an interest in the field. I decided to pursue Computer Science and fell in love with it. I could make a career out of solving logic puzzles and I would never run out puzzles to solve as even previously solved problems could evolve or have even better solutions to discover.
What is it about Belly that caught your interest and made you want to join our awesome Engineering Team?
Prior to working at Belly, I was in a very different industry and at some point, decided that I wanted to try my hand at something new. I wanted to work on a product that I could relate to and that I could be a direct consumer of One of my friends had picked up a BellyCard and used it at a store and I was curious to know about the technology behind it. My interest was piqued.
In addition, I had worked with some people on the team before, namely Ashton, Fred, Harrison, and Trey. They have always been a pleasure to work with and I looked forward to working with them again. It is my motto to learn as long as you live; Belly provided the perfect environment to learn from the very best. Darby is one of the individuals I have learned (and still am learning) a lot from. He remains as cool as a cucumber even in times of distress and always looks out for us. I had a lot of opportunities to grow professionally and technically because of him.
Honestly, it feels like we are a family here. We are not afraid to give honest feedback and we do not hesitate to recognize and celebrate each other's achievements. We learn to teach and we teach to learn. We always have each other's backs. The thing about being a relatively small company means that we have the room to be flexible and adapt to situations as they change. It also means that everyone is an owner of something, a piece of a puzzle that ultimately forms a product that we continuously iterate and improve upon. It matters a lot how our merchants and members feel about the product. They ultimately inspire us to ship a better product each iteration.
I worked for a very large corporation before I came to Belly. It taught me a lot about best practices, foundations of development and how a business operates. I appreciate learning all of that, but I have always had a fascination with startups. I was working long hours, had survived multiple divestitures and layoffs, liked moving quickly on problems and enjoyed trying to solve the unsolvable. I just couldn't get that from a large corporation, so I decided to look for a startup. I was out in Silicon Valley at the time and knew I wanted to come back to the midwest at some point, so why not now?
I'd heard great things about what Belly was doing, so I decided to attempt their coding challenge on my own time before applying. It was if Jeremy Haney knew I was going to apply before I did because the same day I started the coding challenge, he sent me an email telling me to apply. Throughout the interview process, he wouldn't hound me like other tech recruiters do, but instead he would ask me "how'd your work day go?" or "what belly could do to tailor the interview process to my current situation;" which consisted of working 13+ hour days, doing the code challenge until the wee hours of the morning and interviewing at the crack of dawn. He managed to make the interview process way more personal, which can sometimes be pretty rare in tech. If this was any indication of what the rest of the team was like, I knew I wanted to be a part of this company.
I jumped head first into the codebase in my first couple of days with the company. I probably wouldn't have survived without the help of Jon White and Chris Ingebrigtsen, a former Belly employee. I 've learned a lot and continue to learn from everyone on the engineering team. Belly has taught me to be a stronger engineer and how to handle many different technical and business situations.
Chelsea and Yumin:
At the end of the day, when we finally have a minute to breathe and look at the work we've accomplished, it's nice to know that we fucking did it! We made a product that millions of people see and although sometimes they hate us for our updates, we still built it and will continue to improve it.
What is Codefident?
We came up for the idea of Codefident because we wanted to find a way to empower people who had an interest in tech, but weren't necessarily sure how to get started. Codefident is a safe space for anyone to pursue their goals in technology and meet others in the community struggling and thriving with similar ideas. A lot of people don't know what resources are out there and don't know where to start. We figured that the best way for the attendees to learn about tech is to learn from each other and some great people in the industry.
Many people seem to act like tech is some sort of magic that is impossible for everyone to do. We feel like, if you can write an essay, you can write a line of code. If you are able to learn a language, such as Spanish, you could definitely learn a programming language. Once you learn the basics, many of those skills are transferrable to other programming languages.
Codefident is not necessarily teaching people how to code or build computers, but giving them the resources and community to figure out how to learn and grow. We want to make sure that people know they aren't alone. The tech community is constantly working to help everyone succeed. The tech community will only get stronger if it helps all of its members succeed.
This was also a great opportunity for us to work with some of the awesome ladies of Belly to put on a great event. Liz Barton and Lauren Licata kicked ass with reaching out to connections, strategizing logistics and overall, making it a fun event to work on. It just goes to show that you don't have to have the title "Engineer" to care about tech.
What other events/groups are you involved with?
Chelsea is a mentor at MobileMakers, a member of NSCoders, and ** CocoaHeads. She is also known as Momo ("Mobile-Mom") here. Yumin loves attending tech meetups and workshops such as Chicago Women Developers, Geekfest, and our very own **SOA Working Group started by Darby. They have both represented Belly as panelists at 100 Women in S.T.E.M. Student Expo organized by the Aparecio Foundation,and hosted a crafts and hardware workshop at the annual Expanding Your Horizons Conference. They are hosting their first ChickTech workshop early November of this year!
Ask a question or share this article, we'd love to hear from you!
Yumin Wong
Software Engineer, Platform
Chelsea Carr
Belly is building the best engineering team around.
Belly Card
© Copyright Belly Inc. 2016. All Rights Reserved. Twitter GitHub Dribbble


text:
\section{Introduction}

StarCraft\footnote{StarCraft and StarCraft: Brood War are trademarks of Blizzard Entertain ment,
Inc. in the U.S. and/or other Countries.} is a popular computer game representing a Real-time Strategy (RTS)
genre. In a typical RTS setting, players (either human or artificial) are in control of various structures (buildings)
and units which they order to gather
resources, build additional units and structures, or attack the opponent.
RTS games are in general a very interesting domain for Artificial Intelligence (AI)
research, since they represent well-defined complex adversarial systems and can be divided into many
interesting sub-problems \cite{Buro2004}.

Expert knowledge about such a complex environment is extensive and hard-coding the reasoning over it in an
imperative programming language like C++ or Java may in some cases prove time-consuming and inconvenient.
Various declarative knowledge representation paradigms are well-suited for some of the subproblems of RTS AI,
and their corresponding state-of-the-art solvers can often do most of the work for us.

In this text, we address the subproblem of finding an appropriate building placement that would effectively block
the entrance to player's base region. Skilled human players often block the narrow entrance (chokepoint) to their
base with their own structures in order to prevent the enemy units from getting inside. This technique is a vital
component of any StarCraft player's skill set, allowing him to survive the early phase of the game against aggressive
opponents.

Over past few years, we have seen a great amount of research conducted in the area of artificial intelligence for
RTS games, especially StarCraft, thanks to the introduction of the BWAPI framework \cite{bwapi}. Many of relevant publications deal with various machine learning approaches, either for
micro-management in combat \cite{Wender-Watson-12, Rathe-12}
or for macro-economic or strategic tasks \cite{Dereszynski-11, Synnaeve-12, Certicky-13}.
Others solve the opponent modelling \cite{Fjell-12} or optimization problems over possible build orders \cite{Churchill-10}.
However, there has been no publications dealing with the problem of wall-in building placement so far. Even though there
is a large number
of high-quality artificial players (bots) competing in long-term tournaments like SSCAI\footnote{\tt http://sscaitournament.com/}, or
shorter events on conferences like AIIDE or CIG, they seem to perform poorly against early aggression, since {\em none of them}
is able to use buildings to block the entrance to their base. We write this text in hope that it will serve as a guide for bot creators,
allowing them to solve this problem quickly and effortlessly.

After describing the problem at hand more closely in section \ref{section:proglem-description}, we will briefly
outline the semantics of answer set programming (ASP), a paradigm of logic programming employed in our
prototypical problem encoding described in detail in section \ref{section:encoding}.

\section{The Problem Description}\label{section:proglem-description}

The problem of wall-in building placement can be seen as a constraint satisfaction problem (CSP) \cite{Dechter-88}.
Typically, a CSP is defined as a triple $\langle X, D, C \rangle$, where $X$ is a set of variables, $D$ a set of values to be assigned to
them and $C$ is a set of constraints that need to be satisfied in any valid solution (assignment).
In our case, variables correspond to individual buildings that we want to use in our blockade (wall) and values are all
the tile positions\footnote{The notion of a ``{\em tile position}" will be explained further in the text.}
around the chokepoint. In other words, we need to assign a placement to every building
we are going to build, such that all of the following constraints are satisfied:
\begin{itemize}
	\item Every building {\em can be} built on its assigned location (this depends on the terrain).
	\item Buildings {\em do not overlap}.
	\item There will {\em not be} any {\em walkable path} leading from ``outside" region to our base, after the buildings are constructed.
\end{itemize}

{\bf Note (Protoss):} The situation is slightly more complicated when our bot plays as Protoss (one of three playable races
in StarCraft). We need one more constraint about all the buildings being powered by a Pylon, and we do not want to wall-in
completely, because otherwise we would not be able to get out of the base (in contrast, the Terran bots can lift their
buildings to get out and Zerg bots generally do not build walls at all). Therefore, in addition to buildings, we need to include one
unit in our wall (typically a Zealot). Fortunately, this is simply solved by adding one extra variable to $X$ (see figure
\ref{fig:wall-toss1}).

\begin{figure}[h!]
  \centering
    \includegraphics[width=0.9\textwidth]{wall-toss1.png}
  \caption{Example of wall-in placement as a Protoss. The wall consists of a Gateway, Forge and
  Pylon structures and a Zealot unit. In CSP terms, variables from $X = \left\{ Gateway, Pylon, Forge, Zealot \right\}$
  are assigned the values of $(118,23), (122,22), (124,23)$ and $(126,23)$ respectively.}
  \label{fig:wall-toss1}
\end{figure}

{\bf Note (Tiles):} For the purposes of building placement, the map in StarCraft is divided
into a grid of square $32 \times 32$px ``{\em build tiles}". The buildings can only be placed onto discrete positions
within this grid (unlike units, which can move around freely). Every building then occupies several tile positions,
depending on its size, while its position is usually denoted by the coordinates of the {\em top left} tile occupied by it.

The game engine of StarCraft causes one more complication: the buildings do not block the entire area
covered by the tiles they occupy. For example (see figure \ref{fig:wall-toss1}), a Forge building occupies an area of $3 \times 2$
tiles. However, there is a $12$px wide walkable gap at the
left side, and an $11$px wide gap at the right side of the Forge. The sizes of these gaps are hard-coded
in the game engine and are different for every building type. See the gap sizes for all the Terran and Protoss
building types in figure \ref{fig:gaps}. Some walls might contain gaps between the buildings that
are wide enough for smaller units (e.g. Zerglings with their $16 \times 16$px dimension) to walk through.
For example, there is a $27$px wide gap between the Forge and the Pylon in figure \ref{fig:wall-toss1}.
If gaps like this cannot be avoided, they need to be blocked afterwards by additional units.

This brings us to the {\em optimization} part of our problem. A CSP defined like this often has
more than one valid solution. Constraints may be satisfied by various assignments of tile positions
to buildings. We can, however, define and select the best possible valid assignment based on how wide the
gaps between individual buildings are.

Both the constraint satisfaction and optimization problems can be solved simultaneously by
a certain paradigm of logic programming, called the {\em Answer Set Programming} or ASP (details in the following
section). This, together with the existence of effective solvers, is the reason why we have chosen the ASP
for our implementation. However, we emphasize that various
other declarative approaches (different paradigms of logic programming, constraint programming, etc.) can
undoubtedly be used as well. The ideas and solutions described here should be easily transferable to other
languages and tools.

\begin{figure}[h!]
  \centering
    \includegraphics[width=0.45\textwidth]{gaps-terran.jpg}
    \includegraphics[width=0.45\textwidth]{gaps-protoss.jpg}
  \caption{Complete enumeration of gap sizes around Terran and Protoss buildings. Negative gap sizes mean
  that a given building blocks an area outside its assigned tiles.}
  \label{fig:gaps}
\end{figure}

To implement a wall-in placement generator in an imperative programming language, one would
need to solve the following subproblems one by one:
\begin{itemize}
	\item Search over the space of all possible building placements.
	\item Implement a proper pathfinding algorithm, which is not so easy with different gaps between buildings.
	\item Call this algorithm for every valid placement to determine if the wall is indeed tight.
\end{itemize}
In contrast to that, when taking a declarative approach, we only need to define the problem correctly.
The search over a solution space, constraint testing and optimization is taken care of by the solver (in our case,
an ASP solver {\em clingo} \cite{Gebser-08}).

\section{Answer Set Programming}\label{section:asp}

Answer Set Programming \cite{Gelfond-Lifschitz-1988, Gelfond-Lifschitz-1991, Baral-2003}
has lately become a popular declarative problem solving paradigm
with growing number of applications.

The original language associated with ASP allows us to formalize various kinds of common sense
knowledge and reasoning, including constraint satisfaction and optimization.
The language is a product of a research aimed at defining a formal semantics for
logic programs with default negation \cite{Gelfond-Lifschitz-1988}, and was extended to allow also
a classical (or \emph{explicit}) negation in 1991 \cite{Gelfond-Lifschitz-1991}.
An ASP \emph{logic program} is a set of \emph{rules} of the following form:
\begin{displaymath}
h \leftarrow l_1, \dots, l_m,\ not\ l_{m+1}, \dots\ not\ l_n.
\end{displaymath}
where $h$ and $l_1, \dots, l_n$ are classical first-order-logic literals and $not$ denotes a default negation. Informally, such rule
means that ``if you believe $l_1, \dots, l_m$, and have no reason to believe any of $l_{m+1}, \dots, l_n$, then
you must believe $h$". The part to the right of the ``$\leftarrow$" symbol ($l_1, \dots, l_m,\ not\ l_{m+1}, \dots\ not\ l_n$)
is called a \emph{body}, while the part to the left of it ($h$) is called a \emph{head} of the rule.
Rules with an empty body are called \emph{facts}. Rules with empty head are called \emph{constraints}.

The ASP semantics is built on the concept of \emph{answer sets}. Consider a logic program $\Pi$ and a consistent
set of classical literals $S$. We can then get a subprogram called \emph{program reduct of $\Pi$ w.r.t. set S} (denoted $\Pi^S$) by removing each
rule that contains $not\ l$, such that $l \in S$, in its body, and by removing
every ``$not\ l$" statement, such that $l \notin S$. We say that a set of classical literals $S$ is \emph{closed} under a
rule $a$, if holds $body(a) \subseteq S \Rightarrow head(a) \in S$.

\begin{defin}[Answer Set]
Let $\Pi$ be a logic program. Any minimal set $S$ of literals \emph{closed}
under all the rules of $\Pi^S$ is called an \emph{answer set} of $\Pi$.
\end{defin}

Intuitively, an answer set represents one possible meaning of knowledge encoded by logic
program $\Pi$ and a set of classical literals $S$. In a typical case like ours, one answer set
{\em corresponds to one valid solution of a problem} encoded by our logic program. If the ASP solver returns
more than one answer set, there is more than one solution. If it fails to return any answer sets, no
solution to this problem exists.

\section{Encoding the Problem in ASP}\label{section:encoding}

For our implementation, we were using a modern ASP solver called {\em clingo}\footnote{\tt http://potassco.sourceforge.net/}.
It supports an extended modelling language, described in \cite{Gebser-08} and \cite{Gebser-09}.
In addition to basic ASP constructs ({\em rules, facts, constraints}), it has a support for
{\em generator rules}, {\em optimization statements} and has a set of built-in {\em arithmetic functions} and {\em aggregates},
making the problem definition more convenient for us.

Our bot needed to prepare a logic program describing the current problem instance (finding a wall-in placement with a given
set of buildings at a certain chokepoint), pass it to the solver, read the results from standard output and
parse them to obtain resulting tile positions. The solver accepts this logic program either from standard input, or it can
be read from a text file (command to execute is then: ``{\tt clingo findWallPlacement.txt}" \footnote{In our implementation,
we call the ``{\tt clingo --asp09 findWallPlacement.txt}" command. The {\tt --asp09} flag instructs {\em clingo} to
display results in the format of ASP Competition'09, which is easier to parse.}). Contents of the {\tt findWallPlacement.txt}
file will be described in the rest of this section.
Typical output returned by the solver is depicted in figure \ref{fig:output}.

\vskip 5mm
\begin{figure}[h!]
{
\ttfamily\scriptsize
\begin{verbatim}
Answer: 1
place(zealot,126,23) place(pylon,122,22) place(gateway,118,23) place(forge,124,23)
Optimization: 42 0
OPTIMUM FOUND
\end{verbatim}
}
\caption{Output of the ASP solver corresponding to the wall from figure \ref{fig:wall-toss1}.}
  \label{fig:output}
\end{figure}

One call of the ASP solver with our problem encoding takes less than 200 miliseconds on a single-CPU
virtual machine running Windows XP with 1GB of available RAM.
This allows us to attempt to compute the wall placement with fewer buildings at first, and then keep adding
more of them, until the wall-in is possible\footnote{The wall-in is possible, if the solver returns some
non-zero number of answer sets. If it fails to return any, it means that the given chokepoint cannot
be blocked by a given set of buildings.}. In the case from figure \ref{fig:wall-toss1}, we first tried to compute the wall with only a
Gateway, Pylon and a Zealot. Since this was not possible, we tried adding a Forge to our logic program
and called the solver again (this time with success).

\subsection{Buildings to Use}\label{subsection:buildings}
The first part of our logic program in {\tt findWallPlacement.txt} file contains an encoding of the
buildings we want to use. First of all, we use BWAPI to generate the following set of facts defining the building types,
their sizes and gaps around them (notice the fake ``zealots" building type).

{\scriptsize
\color{MidnightBlue}
\begin{verbatim}
buildingType(forgeType).
buildingType(gatewayType).
buildingType(pylonType).
buildingType(zealotsType).

width(gatewayType,4). height(gatewayType,3).
width(forgeType,3).   height(forgeType,2).
width(pylonType,2).   height(pylonType,2).
width(zealotsType,1). height(zealotsType,1).

leftGap(gatewayType,16). rightGap(gatewayType,15). topGap(gatewayType,16). bottomGap(gatewayType,7).
leftGap(forgeType,12).   rightGap(forgeType,11).   topGap(forgeType,8).    bottomGap(forgeType,11).
leftGap(pylonType,16).   rightGap(pylonType,15).   topGap(pylonType,20).   bottomGap(pylonType,11).
leftGap(zealotsType,0).  rightGap(zealotsType,0).  topGap(zealotsType,0).  bottomGap(zealotsType,0).
\end{verbatim}
}

After that, we need to specify the building instances which we want to have in our wall and assign them to their
corresponding types. This can be done with the following collection of ASP facts:

{\scriptsize
\color{MidnightBlue}
\begin{verbatim}
building(pylon1).
type(pylon1,pylonType).
building(forge1).
type(forge1,forgeType).
building(gateway1).
type(gateway1,gatewayType).
building(zealots).
type(zealots1,zealotsType).
\end{verbatim}
}

Following constraint simply states that {\em two different buildings must not occupy
the same tile position} (must not overlap). Note that the ``$\leftarrow$" symbol from the rule definition above
is written as ``{\tt :-}" in our text file. Also, the convention in ASP is that
constants ({\em forge1, pylonType}) start with lowercase letters or numbers, while the
variables are uppercase ({\em B2, X, Y}).

\vskip 4mm
{\scriptsize
\color{MidnightBlue}
\begin{verbatim}
:- occupiedBy(B1,X,Y), occupiedBy(B2,X,Y), B1!=B2.
\end{verbatim}
}

However, we still need to specify which tile positions are occupied by which buildings.
This is taken care of by the following rule. Here, we use previously established
description of the {\em type, width} and {\em height} of our buildings. The ``$place$"
literal is especially important and will be explained in subsection \ref{section:generate-and-test}.
Intuitively, this rule says that {\em if we place building $B$ on tile $(X_1,Y_1)$
and $X_1 \leq X_2 < X_1+$ width\_of\_$B$, and at the same time $Y_1 \leq Y_2 < Y_1+$ height\_of\_$B$, then
also the $(X_2,Y_2)$ tile is occupied by $B$.}

\vskip 5mm
{\scriptsize
\color{MidnightBlue}
\begin{verbatim}
occupiedBy(B,X2,Y2) :- place(B,X1,Y1),
                       type(B,BT), width(BT,Z), height(BT,Q),
                       X2 >= X1, X2 < X1+Z, Y2 >= Y1, Y2 < Y1+Q,
                       walkableTile(X2,Y2).
\end{verbatim}
}

Following four rules simply compute the horizontal and vertical gaps between every pair of
adjacent tiles occupied by different buildings. The $verticalGap$ and $horizontalGap$ literals
will be used during the optimization.

\vskip 5mm
{\scriptsize
\color{MidnightBlue}
\begin{verbatim}
verticalGap(X1,Y1,X2,Y2,G) :-
        occupiedBy(B1,X1,Y1), occupiedBy(B2,X2,Y2),
        B1 != B2, X1=X2, Y1=Y2-1, G=S1+S2,
        type(B1,T1), type(B2,T2), bottomGap(T1,S1), topGap(T2,S2).

verticalGap(X1,Y1,X2,Y2,G) :-
        occupiedBy(B1,X1,Y1), occupiedBy(B2,X2,Y2),
        B1 != B2, X1=X2, Y1=Y2+1, G=S1+S2,
        type(B1,T1), type(B2,T2), bottomGap(T2,S2), topGap(T1,S1).

horizontalGap(X1,Y1,X2,Y2,G) :-
        occupiedBy(B1,X1,Y1), occupiedBy(B2,X2,Y2),
        B1 != B2, X1=X2-1, Y1=Y2, G=S1+S2,
        type(B1,T1), type(B2,T2), rightGap(T1,S1), leftGap(T2,S2).

horizontalGap(X1,Y1,X2,Y2,G) :-
        occupiedBy(B1,X1,Y1), occupiedBy(B2,X2,Y2),
        B1 != B2, X1=X2+1, Y1=Y2, G=S1+S2,
        type(B1,T1), type(B2,T2), rightGap(T2,S2), leftGap(T1,S1).
\end{verbatim}
}

\subsection{Terrain Encoding}
Now we need to express what the terrain around the chokepoint looks like.
Specifically, we need to have a set of facts describing which tile positions are walkable
and where there is enough space to build individual building types. Information about this
is easily accessible via BWAPI.

{\scriptsize
\color{MidnightBlue}
\begin{verbatim}
walkableTile(87,11).
buildable(pylonType,86,8).
buildable(gatewayType,90,8).
buildable(pylonType,85,19).
buildable(pylonType,88,13).
walkableTile(94,21).
buildable(zealotsType,93,10).
buildable(pylonType,88,19).
walkableTile(94,9).
buildable(gatewayType,85,11).
walkableTile(88,9).
buildable(pylonType,89,11).
walkableTile(94,18).
walkableTile(89,21).

...etc.
\end{verbatim}
}

\begin{figure}[h!]
  \begin{center}
    \includegraphics[width=0.5\textwidth]{terrain.png}
  \end{center}
  \caption{Terrain around the chokepoint. Blue squares denote the tiles where a
  Forge can be built and red squares the tiles where we can build a Gateway.}
  \label{fig:terrain}
\end{figure}

To keep the computation times low, we only take into account the tiles from a certain
area around the chokepoint. In our implementation, we considered a 16-tile radius
around the chokepoint's center.

\newpage
In addition to that, we also need to have a specification of two important tile positions - one inside
our base region and the other one outside of it. These will be used when determining if the wall blocks the passage or not.
If there is no walkable path between these two positions, the wall is tight.

\vskip 5mm
{\scriptsize
\color{MidnightBlue}
\begin{verbatim}
insideBase(94,10).
outsideBase(84,22).
\end{verbatim}
}

For the {\em insideBase} position, we simply select the tile from within our considered radius that is
closest to our base. Similarly, the {\em outsideBase} is a tile position that is closest to the center of the outer
region.

\subsection{Reachability}

The following constraint says that units must not be able to reach the
base region (specifically position $X_{2},Y_{2}$) from the outside region (position $X_{1},Y_{1}$).

\vskip 5mm
{\scriptsize
\color{MidnightBlue}
\begin{verbatim}
:- insideBase(X2,Y2), outsideBase(X1,Y1), canReach(X2,Y2).
\end{verbatim}
}

However, we still need to declare which tiles are reachable. The following set of rules basically takes care
of the pathfinding problem. First of them says that a walkable position is blocked, if it is occupied by a building.
Second rule states that the {\em outsideBase} position is reachable from itself (obviously).
A collection of eight rules after that recursively identifies a position as {\em reachable} if it is {\em not blocked}, and
it {\em has a reachable neighbor} in any of the eight directions.

\vskip 5mm
{\scriptsize
\color{MidnightBlue}
\begin{verbatim}
blocked(X,Y) :- occupiedBy(B,X,Y), building(B), walkableTile(X,Y).
canReach(X,Y) :- outsideBase(X,Y).

canReach(X2,Y) :-
      canReach(X1,Y), X1=X2+1, walkableTile(X1,Y), walkableTile(X2,Y),
      not blocked(X1,Y), not blocked(X2,Y).
canReach(X2,Y) :-
      canReach(X1,Y), X1=X2-1, walkableTile(X1,Y), walkableTile(X2,Y),
      not blocked(X1,Y), not blocked(X2,Y).
canReach(X,Y2) :-
      canReach(X,Y1), Y1=Y2+1, walkableTile(X,Y1), walkableTile(X,Y2),
      not blocked(X,Y1), not blocked(X,Y2).
canReach(X,Y2) :-
      canReach(X,Y1), Y1=Y2-1, walkableTile(X,Y1), walkableTile(X,Y2),
      not blocked(X,Y1), not blocked(X,Y2).
canReach(X2,Y2) :-
      canReach(X1,Y1), X1=X2+1, Y1=Y2+1, walkableTile(X1,Y1), walkableTile(X2,Y2),
      not blocked(X1,Y1), not blocked(X2,Y2).
canReach(X2,Y2) :-
      canReach(X1,Y1), X1=X2-1, Y1=Y2+1, walkableTile(X1,Y1), walkableTile(X2,Y2),
      not blocked(X1,Y1), not blocked(X2,Y2).
canReach(X2,Y2) :-
      canReach(X1,Y1), X1=X2+1, Y1=Y2-1, walkableTile(X1,Y1), walkableTile(X2,Y2),
      not blocked(X1,Y1), not blocked(X2,Y2).
canReach(X2,Y2) :-
      canReach(X1,Y1), X1=X2-1, Y1=Y2-1, walkableTile(X1,Y1), walkableTile(X2,Y2),
      not blocked(X1,Y1), not blocked(X2,Y2).
\end{verbatim}
}

There is, however, one more source of reachability in StarCraft - gaps at the sides of the
buildings. Because of them, the blocked locations may sometimes be reachable too.
To make our problem representation more precise, we should take them into account as well.
In section \ref{subsection:buildings}, we computed the horizontal and vertical gaps between
the pairs of tile positions, which will be used now.

First of all, we specify a pixel dimensions of an enemy unit type that we want to lock outside of our base
(in this case, it is the smallest unit in the game: $16 \times 16$px Zergling).
Then we use the following eight rules to declare more positions reachable (from corresponding
directions) if the gap is wide enough, even if these positions are blocked.

\vskip 5mm
{\scriptsize
\color{MidnightBlue}
\begin{verbatim}
enemyUnitX(16). enemyUnitY(16).
canReach(X1,Y1) :- horizontalGap(X1,Y1,X2,Y1,G), G >= S, X2=X1+1, canReach(X1,Y3), Y3=Y1+1, enemyUnitX(S).
canReach(X1,Y1) :- horizontalGap(X1,Y1,X2,Y1,G), G >= S, X2=X1-1, canReach(X1,Y3), Y3=Y1+1, enemyUnitX(S).
canReach(X1,Y1) :- horizontalGap(X1,Y1,X2,Y1,G), G >= S, X2=X1+1, canReach(X1,Y3), Y3=Y1-1, enemyUnitX(S).
canReach(X1,Y1) :- horizontalGap(X1,Y1,X2,Y1,G), G >= S, X2=X1-1, canReach(X1,Y3), Y3=Y1-1, enemyUnitX(S).
canReach(X1,Y1) :- verticalGap(X1,Y1,X1,Y2,G), G >= S, Y2=Y1+1, canReach(X3,Y1), X3=X1-1, enemyUnitY(S).
canReach(X1,Y1) :- verticalGap(X1,Y1,X1,Y2,G), G >= S, Y2=Y1-1, canReach(X3,Y1), X3=X1-1, enemyUnitY(S).
canReach(X1,Y1) :- verticalGap(X1,Y1,X1,Y2,G), G >= S, Y2=Y1+1, canReach(X3,Y1), X3=X1+1, enemyUnitY(S).
canReach(X1,Y1) :- verticalGap(X1,Y1,X1,Y2,G), G >= S, Y2=Y1-1, canReach(X3,Y1), X3=X1+1, enemyUnitY(S).
\end{verbatim}
}

Now we should have our terrain, building instances, reachability, and all the constraints ready, so we
can finally start generating solutions.

\subsection{Generate and Test Method}\label{section:generate-and-test}

Our logic program uses the ``{\em generate-and-test}" organization that is very often employed in ASP-based problem solving.
The idea is simple: we use so-called {\em generator rules} (or choice rules if generators are not supported by our
solver) to describe a large set of ``{\em potential solutions}" to our problem. In our case, any building placement
is a potential solution.
Each of them is then tested - we check if all the constraints are satisfied in it.
If there are some constraints, that are not satisfied, the solution is thrown away. Otherwise, it is {\em returned as an
answer set}.

The generator rules for our wall-in placement problem are depicted below (there is one rule for every
building instance\footnote{Note that it is also possible to write a single generator rule for all the building instances.
We have chosen the encoding with multiple generator rules for this text, because we feel it is more intuitive.}).
For example, the first rule says that ``for every $X$ and $Y$, such that $forgeType$ is
buildable on $(X,Y)$, we want to generate and check potential solutions with exactly one literal $place(forge1,X,Y)$" (exactly one,
because we want every building instance to be placed, and no building can be placed on more than one position
at the same time).

\vskip 5mm
{\scriptsize
\color{MidnightBlue}
\begin{verbatim}
1[place(forge1,X,Y) : buildable(forgeType,X,Y)]1.
1[place(pylon1,X,Y) : buildable(pylonType,X,Y)]1.
1[place(gateway1,X,Y) : buildable(gatewayType,X,Y)]1.
1[place(zealots,X,Y) : buildable(zealotsType,X,Y)]1.
\end{verbatim}
}

On the output, the ASP solver returns the answer sets corresponding to solutions with exactly one $place$
literal for every building instance, where all the constraints are satisfied.

\subsection{Optimization}
As we mentioned before, there might be more valid solutions to our problem, some of which are better than
others. We consider the wall-in better, if there are less wide gaps in it.
The ASP solver can be instructed to find the best among all the valid solutions
by including the following two optimization statements in our logic program.

\vskip 5mm
{\scriptsize
\color{MidnightBlue}
\begin{verbatim}
#minimize [verticalGap(X1,Y1,X2,Y2,G) = G ].
#minimize [horizontalGap(X1,Y1,X2,Y2,G) = G ].
\end{verbatim}
}

Note that we can omit the optimization statements if we do not necessarily need the best possible solution.
By doing this, we can save some computation time, since computing any answer set is faster than
computing the best one.

\vskip 10mm
Logic programs, like the one described in this section, can be easily generated
by any bot programmed in BWAPI and used to find a wall-in placement for most of the chokepoints
in typical StarCraft tournament maps. The computation time is bearable, considering that the bots
do not need to solve this problem very frequently (usually only once per game).

\section{Summary}\label{section:summary}

We have shown how a declarative programming approach can be used to generate wall-in
placements in StarCraft (and possibly other RTS games) quite effortlessly.

This text, written as a guide for bot programmers, addresses all the relevant subproblems, like
terrain and building encoding, pathfinding/reachability and optimization, and presents a declarative
solution to each of them.
The ASP encoding, presented here and employed in our implementation, can be directly adopted by
other bot programmers. However, we encourage readers to experiment with different declarative paradigms
and technologies.

\bibliographystyle{apalike}

redpajama_set_name: RedPajamaArXiv


text:
Jan 31 Crunchyroll Games Launches Street Fighter: Duel RPG for Smartphones in February
Hyper Japan Begins Friday at Earls Court
posted on 2012-11-17 03:51 EST by Andrew Osmond
Event includes appearance by Production I.G president Mitsuhisa Ishikawa on Saturday afternoon.
The Hyper Japan festival in London runs from Friday November 23 to Sunday November 25. The provisional timetable is here and advance tickets are here. The festival takes place at Brompton Hall, Earls Court (directions). The opening times are as follows: Friday 2 p.m. to 8 p.m.; Saturday 9.30 a.m. to 8 p.m.; Sunday 9.30 a.m. to 5 p.m.
Mitsuhisa Ishikawa , the co-founder and president of the Production I.G studio, will appear on the stage during the early Saturday afternoon. Ishikawa, with Takayuki Goto , founded Production I.G in 1987. He will appear in a talk with Ryusuke Hikawa , a critic of Japanese animation. British author Helen McCarthy will be the MC.
There will be several Cosplay events. Hyper Japan is hosting the U.K. rounds of two international cosplay competitions: the World Cosplay Summit and the European Cosplay Gathering. The World Cosplay Summit involves 22 countries. Two competitors from each country will be represented at the final, which is held annually in the Japanese city of Nagoya in Japan, broadcast by TV Aichi . The European Cosplay Gathering involves eleven countries. One group and one individual will be chosen at Hyper Japan and sent to the final at the Japan Expo convention in Paris.
The line up is as follows:
Saturday 4 p.m. – COSParade 4.30 p.m. – World Cosplay Summit / European Cosplay Gathering Group Selection 7 p.m. – Cosplay Prize Giving
Sunday 2 p.m. – COSParade 2.30 p.m. – European Cosplay Gathering Solo Selection 4 p.m. – Cosplay Prize Giving
The page for the World Cosplay Summit is here and the Euro Cosplay Gathering page is here.
- There will be a screening of animation from the 15 Japanese Media Arts Festival on Friday afternoon, including Koji Yamamura 's Muybridge's Strings . A full list of screenings is here (scroll down).
- Toei Animation will be represented at the event. According to the website, there will be "costume character appearances, photo shoots, goodies distribution, drawing lots with prizes to win. Visitors owning a Nintendo 3DS will receive a push announcing that exclusive One Piece content, among other content, will be available on their device at the venue."
- Square Enix will be presenting figurines and other merchandise.


Noonan Construction, your premier painting company in Baltimore, Maryland specializes in interior and exterior painting. We incorporate quality painting techniques to offer our clients services in the area of interior home painting, exterior home painting, staining, sealing for a customized home remodeling experience.
Contact Noonan Construction today for your free interior and exterior home painting estimate!


Yesterday, at 7 pm, was the kick start to the 2008 edition of the Campusmac, the annual event where Apple users come together to pass a few days dedicated to his great love y. ..
Posted: 26th August 2008 under General.
The governments of Mexico and the United States extended for another two years the pilot project for opening transport that allows the border crossing of up to one hundred trucks and cargo between the two nations that initially was going to completed in September this year, official sources reported today.
Posted: 20th August 2008 under General.
Posted: 11th August 2008 under General.
With the Las Vegas Strip and the Red Rock Mountains as the backdrop of many Las there are a large number of condominiums with beautiful locations. Owning a Las Vegas Property in the form of a condo is not only a viable and profitable idea, but also offers great beauty.
Posted: 5th August 2008 under General.


Faddegon's Nursery, Inc. Specials | Faddegon's Nursery, Inc.
Excludes fresh greens, greens arrangements, trees, live plants and plant arrangements. Frasier Fir by The Thymes, socks, candles, & lanterns.
Click here for our current discounts!
We will never share your email address or personal information.
Regularly $2.99 per pack, our club members get a lower price on any plants coming in a 6-pack (1206 cel pack). This price applies all season long just for you.
When you buy 3 or more varieties or sizes within the same species, you'll receive 15% off each plant. 2 Hydrangea 'Pinky Winky' and 1 Hydrangea 'Twist and Shout'? Mix and Match!
Fundy Blend is the ideal top-dressing for roses and perennials. Coast of Maine combines some of their limited supply of very old, humified birch and maple bark with partially humified hemlock bark and a very rich compost made of kelp solids and sphagnum moss peat. The result is an almost black humus that is rich in organic matter with all the added benefits of both compost and kelp. Fundy Blend will both enrich your soil and help retain moisture.
In Blossom Booster 10-30-20, the first number is for Nitrogen. This product contains 10% Nitrogen. The second number is for Phosphate. This product contains 30% Phosphorus as P2O5. The third number is for Potash. This product contains 20% Potassium as K2O. These three elements: Nitrogen, Phosphorus and Potassium are the major elements in any plant food.
In 2006, SUPERthrive® inventor Dr. John A.A. Thomson was the first chemist to win the Lifetime Achievement Award from Lawn and Garden Marketing and Distribution Association. Thomson developed the SUPERthrive® formula in 1939. Seventy-two years later, he was still engaged in the daily operations of his company, the Vitamin Institute, actively selling worldwide.
Sight, smell, shape and feel have become the trademark of Primal Elements soaps. The colors and shapes coordinate with unique scents for a beautifully fragrant presentation; all soaps contain vegetable glycerin, which moisturizes the skin with a luxurious lather that rinses cleanly away. We use pure essential oils and popular fragrance oils for optimum fragrance.
Receive our eNews full of great information about plants, promotions, & events. We'll never share your name or email address!