text:
This time maybe a bit longer thread, and I'd like to thank anyone in advance who takes time to read and spent some time for typing a reply.
For a long time I always wanted to implement the well known cardboard game of Monopoly in Java, based on an original one I have laying around here (oh boy, this really helps, as you can find almost any information - except the chance and community cards - seems like there nowhere listed anywhere on teh internetz - same for "official" rules). I've tried to start some times in the past - but never got more than a few lines down.
As for the new year - I now want to finaly get it done.
So, I looked up Monopoly at Wikipedia - wich referenced to the page about cardboard games - and starting here there's a really neat bit I really like and wich I'd like to base my game on:
A board game is a tabletop game that involves counters or pieces moved or placed on a pre-marked surface or "board", according to a set of rules.
source: https://en.wikipedia.org/wiki/Board_game
As I'm really into this whole object orientend thing and like abstraction - I want to start as follows:
I know the "game" I like to implement is a board game - based on a cicrcle wich is played by 2+ players on a round-by-round style with possible interactions - according to some specific rules. So I start with the basis - the board. Looking at the board we can note down some important specs:
- the board is a square with overall 40 fields - layed out as 4 corner tiles - one in each corner - and placed 9 tiles in between on each side
- there some different types of fields: buyable properties (wich divide into properties with houses and those without (the two supply facilities and the 4 railroad stations)) and special actions (community chest, chance, taxes, corners (go, jail, free parking, go-to-jail))
- it is played with 2 - 8 players (each player has a unique toke)
- for the buyable properties with spaces for buildings apply some rules for those buildings (how, when, how many)
- the overall ruleset about the game itself
So to get started, I came up with this abstract description of the board wich now needs to be implemented in a Java class. As said - I really like abstraction - so in the board-class I would ignore the facts about different types of fields - the board just have fields. Also, for the board-class it doesn't matter in wich order the fields are or that they form a circle - that's up for the graphical classes and the logic-class responseable for player movement. This leads me to the question: as there is no logical relationship between the board and the fields in terms of Java-classes wich has to know each other - is it useful at all to implement a relationship here?
Maybe I can find an awnser when I try to think about: What kind of information the fields hold and do I access them? The fields themselves only have to know its type, and, if there buyable, if they're bought by a player, also, if they have room for houses, how many are on them.
On the other hand - does a field have to know if it's owned by a player - or is it better if players know what properties they own? I would try to awnser it this way: Each round a player has to roll the dice - wich let them land on a field. To decide what happens when a player lands on a field it needs to know its state and all what's needed for it.
So let me start on another side: I will have a "session"-class - the main object wich represents the overall gaming session itself - just like if you get together with some friends to play round of Monopoly. So this class knows the overall state of the game and of all pieces it is made of, i.e. wich player is currently the active one, in wich state a player is (so it can be checked what actions a player can do at any time) and wich actions a player can do on a field he stands on. So, one could think about: First step a player has to do is to roll the dice. This is only true with the exception of one field: the jail. Wich leads to this flow-chart:
1) check on wich field the player is currently on
- 1a) if the player is currently not on the field "jail" skip the following and proceed at step 1b
-- 1aa) the player is just on the "just visit" part of the "jail"-field - skip the following and proceed at step 1b
-- 1ab) check if the player has at least one of the two available "get out of jail"-cards
--- 1aba) the player doesn't have any card - skip the following and proceed at step 1ac
--- 1abba) the player have at least one of the cards and decide to use one - so he will get out for free - proceed at step 1b
--- 1abbb) the player have at least one of the cards, but decide to don't use one - player have to pay
-- 1ac) player has to roll the dice
--- 1aca) if the player rolls doublets (both dice show same number) the player gets out of jail for free and moves the amount of fields the player rolled > step 2
--- 1acb) the player doesn't hit a doublets
---- 1acba) if it's the first or second try nothing else happens - the player can still decide to trade - otherwise turn ends and next player get to move
---- 1acbb) if it's the thrid try, the player didn't used a card and didn't hit a doublets - the player gets out of jail buy paying a fee and moves the amount of fields > step 2
- 1b) if the player is on any other field than "jail" - according to rules the first thing a player has to do is roll the dice and advance the amount of fields
2) check type of field
- 2a) its a corner field
-- 2aa) go - if custom rule is enabeld - player gets double of round fee - otherwise just normal amount > turn ends
-- 2ab) jail - just visit - nothing happens - turn ends
-- 2ac) free parking - action depends on active rule - nothing, fixed amount, taxes, custom rule
-- 2ad) go to jail - player is move back to jail, flag "player in jail" is triggered and turn ends without able to trade
- 2b) taxes - player has to pay taxes - depend on rule if payed to bank or to free parking
- 2c) chance / community chest - action noted on card
- 2d) buyable property
-- 2da) owned by player - player can decide to manage buildings
-- 2db) owned by another player - player has to pay
--- 2dba) special case: if a player doesn't have enough net-worth money (including selling houses and taking mortgages) he may is allowed to trade or ask bank for money - but this is uncommon - usually a player is out and declared bankrouptcy
-- 2dc) not owned at all
--- 2dca) player can decide to buy - if he has enough money to do so
--- 2dcb) player decide to not to buy - or doesn't have money to do so - property is sold by auction (as of official rules: a not owned property has to be sold by auction - although player can agree upon to simple "nothing happens -> next player" - wich, according to google, seems common)
3) after above steps done the active player can decide to start a trade with another player (except for "go to fail" - then turn ends directly) - it's common that a player can manage buildings - although official rules say a player may only manage buildings if it stays on a field of the color group
4) all actions a player is allowed to do - and anything that has to be done mandatory is done - the current turn ends and the next player gets the dice
Looks kind of confusing - and it may contain errors - but this is simply how monopoly round plays. Based on these actions wich has to an can happen at each turn - the session object needs to now the players - and somehow has to connect on wich field the player is on - to decide what to do and to wich field a player moves next after rolling the dice. As on the gui-classes the tokens has to somehow get rendered - there needs to be a connection to tell wich player is on it. Drawing require information about status - so it needs to be kept in sync with the session. I'm not yet sure about how I will implement it.
Also - as I want to implement this project as MVP - it will be based on events. So may following flow helps to awnser last question: A player is selected as active - starts by rolling the dice - wich in its turn triggers the next events (checking field, moving, actions) and finally updates the new game status. So this would be:
- Session.nextPlayer()
- Player.rollDice()
- Session.checkField() -> jail-logic
- Session.movePlayer()
- Session.fieldAction() -> cards, buy, buildings
- Session.update() -> sends out current new status to all player and instances to sync all objects
-> nextPlayer
I would think its maybe a good idea to implement to field-updates - first in the movePlayer() - and second at last call on session-update. So the fields know wich players are on them - the players also know on wich fields they are - wich needs to be kept in sync - and thier internal status (owned, if so by wich player, buildings). I'm still a bit worried about the facilities as the logic has to check when a player lands on one of them if the other is owned at all and if so if its the same or an other player.
So, as I now already needed over 1 hour to right this post - I will think about some sample implementations and how to link the different pieces.
So long ...
sounds like a very interesting project, although a far from easy one. Couple of years ago I too made a start with it, it was about Project Euler exercise 84, and though I solved that question, I did not go any further with the game. Way too much work.
Enjoy, and keep us informed!
First I looked about what the session needs to know during the game, how it interacts with other objects, and how to create one.
To get a possible constructor I thought about: What does a Session-object need to know to? So we have the players, a ruleset, the fields/gameboard (I'm still not sure about that) and the internal current status. As the last two gets reset and newly created for each new session a constructor needs a PlayerList and a RuleSet. So we get this:
As for the PlayerList I've decided to write some own code based on an internal java.util.Deque. Some now may ask: Why? Well, a Deque provides an easy FIFO-Buffer while maintaining the initial order. So, even there will be a possible shuffle by rules to determine wich player's first and what's the order - if it's initialy set can easy to some like this:
Why to add some custom code? Well, I plan to add optional rules to set the order and wich player starts. This may will be:
- lobby leader goes always first - this means, it doesn't matter in wich order the list is set, the leader of the lobby (the player wich set it up) will always go first
- random - explains it self - list gets shuffled at on player is chosen as random
- as joined - some more code needed in the lobby code, means the players will go in the order the initialy joined the lobby
- by dice - each player rolls the dice - order is set by highest or lowest - if two player roll the same the will have to roll again aganst eachother
- set - the lobby-leader sets an order before session starts
As far as it makes sense / is possible I want to make each rule combineable with each other - for example a leader could set random order but a set player as the first one - or a fixed order like "as joined" or "set by leader" and players still roll the dice just to select the first player. Sure - this sounds error prone in the first place - but I think: Monopoly is mostly played with custom rules - why not offer this freedom for the player-list also? Bugs get thrown out later.
So I will need a data structure wich provides a simple FIFO-buffer, but is also flexiable enough for mixing up random stuff. The docs says that a Deque doesn't provide a way to access by index - but I think that all those fancy streams-api added with v9 somehow provide an easy way to implement these different options. If not I can still go the old way > Iterator > Array > some shuffeling > and with a for-loop back into a new Deque. I think as heavy array-copying may be expensive - I may will go with LinkedList - may someone can help here.
So, even if it's called a "loop" - the game-loop still needs an entry-point wich can somehow set to the applied ruleset. As I can go with the above code to step through the Deque to set the starting player (if needed), I may alter may mentioned loop from last post to move the "nextPlayer" call to the end. This will simplyfy the start of the loop as I can just run through the list - and when the desired player is found - just stop right there - instead of add fancy magic to "step back once" (wich sure is easy possible by getting last element and re-adding it in the first place, but this step can be saved).
This may lead to the following:
So, you may start to see - this is all heavy pseudo-code - there's no real lines yet.
Why this "waitForTrade"? Well, as mentioned in the last post, each player still has the ability to initiate a trade (in real world may at any time - as the computer one have to follow some rules - we set it as "at the end of turn"). So, after any mandatory action is done, the player will get sent an event like "hey, you, you may trade now within the next 30sec" and simply will call a .wait() on the thread. To escape this there 3 actions: a player does not trade calls "end turn" -> notify(), a player will start a trade -> notify(), the timeout is triggered -> interrupt(). This is just because this is planed to run over network connections.
Sure, this is still in the planing phase - and many implementation details may depent on some tests I will have to run, like how to sync the timeout (what happens when a player hits the trade button the split-second between the "it's over"-timeout is triggered on server side but the event to inform the client is still on its way?), what order of actions fits best the real game, how to set-up the playerlist and ruleset in the firstplace (or: how to design the "lobby"). As some of you mentioned: this will be a big, not so easy project for something simple as a boardgame (ok, Monopoly itself isn't an easy boardgame - but it's still "just" a boardgame - only with some complex rules).
I'll keep you up through the week as I get some steps along.
So long ... Matt out.
Some of the points to think. I ignore implementation details what you started exposing, but rather thinking more about the design.
1. First, I wouldn't call the very first class you showed us a Session. That may mislead and make think about the HTTP sessions. Think maybe there is some better name which can reveal its intention. Maybe GameSession? GameRound? Game?
2. Session class. It has constructor PlayerList and RuleSet. First thought which came to my mind was, does the RuleSet changes per each session or just players (more likely)? Not saying it is incorrect, but that was my first thought.
3. You have Board and Field class as separate entities coupled with Session class. Does that mean that Board is a general board on which you could possibly also play chess, meaning you'd just set different fields? Maybe field better would be as constructor injection to board class, and game session would have only the board? Does session class really need to know about the fields individually? Maybe better to construct board fully (with fields) and then give it to game session?
These are just for you to think, might some ideas will help improve some areas. I'll step in later on more. Interesting project though.
thank you for your reply - it really made me thinking about some decisions. May let me awnser your points in order:
to your 1)
First of: I agree with you, "Session" doesn't really fit - GameRound seems to fit better.
I have to explain my already made up plan a bit more: When a user (a "Player") starts my code (I refer to as "Game") after connection one gets shown available games to join or spectate - this overview I call "main hub" - and the games listet are joinable "Lobbies" (or "Lobby" for one). A Lobby is kind of a "preparation room" players join together, agree upon rules and when all ready to play the game starts - that's how I come up with Session.
As it made me rethink about these names - not only I changed it to GameRound, but also PlayerList to just Players and Rule(s)Set to just Rules - just fits it better.
to your 2)
Refering to the Lobbies in 1, well, yea, each GameRound is supposed to have its own Rules. These rules are the "house rules" - that small differences each game is unlike others, like the amount of cash at start, if you get double money when you hit GO spot on, if you always pay taxes in fixed amount or always 10%, if there is a limit on houses, what happens at Free Parking - and so on. Sure, one can decide to stick to official rules - but may choose to change some. So your thought was correct.
to your 3)
I'm still unsure about the relationship between players, fields, the board itself, the session and how they all play together. I've just put it in as a placeholder. Do I need it? Not sure yet. The most think I'm still unsure about is the relation between the Player class and the Field class - wich one does need to know wich? Do they need to know each other at all? Can this relation been build externaly like in an external Board class? There're many placeholders and questions still flowin around in my head.
I wanted to get some line down and start with the rules - as they only consists of ints, booleans and maybe one or two enums - so the Rules itself doesn't depend on others. But your post somewhat throw me around the rethink about some thinks. So maybe let me just list the rules I already came up with - maybe some can changed, maybe split into others or taken togheter, may some more can be added - we'll see.
- amount of cash at start - int
- collect double on hit go - boolean
- how to pay taxes - enum [player choose, always fixed amount, always percentage]
- fixed amount of taxes - int
- percentage of taxes - int
- free parking action - enum [none, fixed amount, taxes, bank (this means also what's noted on cards like "doctors fee" or the famous "repair your properties" card), maybe some other rule ...]
- double amount of community chest or chance cards (payments players have to make to bank or to other players as well as payments a player receive from bank and others) - boolean
- house limit - int (-1 means no limit)
- hotel limit - int (-1 means no limit)
- buy on first round allowed - boolean
- enforce rolling dice as first action - boolean (except jail - wich player can decide to use card instant without rolling first)
- enforce auctioning - boolean
- on bankruptcy: go properties back to bank or player to wich is lost - enum [bank, player]
- how is decided wich player goes first - enum [set value, random, rolling dice]
- when above is set to specific value: reference to player wich goes first - object(Player)
- is a player allowed to trady when in jail
- additional fee/taxes when re-buy mortgaged properties in percentage of base value - int (0 means no additional fee/taxes)
So you see there's a huge list how a round can differ from others, and these only the "common ones" wich are also noted as "subject to agreed upon by players" in the official rules.
I think the easiest way to implement these rules is just following bean-convention: private fields with public getters/setters and constructor init fields to some "default" values.
As an example wich I will also add is a very neat additional rule added by a friend of mine: You just can't "manage" your properties as you like, even official rules only allow it 1) when its your turn 2) only for the property you're currently on (wich means when you're in jail you're not allowed to), but also you're also allowed only a limited amount of actions you can do. So it goes like this: each round you cross GO you earn an additional "action point" (on wich also can be a max set to) wich limits your actions. Each time you upgrade from houses to hotel or downgrade, even when just add or remove a house, or mortgage or re-buy a mortgaged property - you always have to spent such an action point. This means: When you're screwed at need to seel houses or mortgage properties to get enough money to pay a rent - you can only do so if you have enought points. If you don't have enough such points you can't scrap together enough money - and you're out. It spices thinks way up. One round I earned around 15 such points, but couldn't use them cause I kept down below 1k by other players (finaly I got sniped) - but they on the other hand kept landing on "go to jail" or drawing the jail cards - so they didn't completed as many rounds as I did so the didn't got much points - so they luckly couldn't upgrade for a long time (altough they stacked up to 100k+ (yea, german original edition is played each number added an additional 0 - so 100k in german edition is equivalent to 10k in us/uk version)).
Long post - again - apologies to anyone and thanks for reading. Next reply maybe on weekend - at least if I get time to.
- 1
Matt Wong wrote:I'm still unsure about the relationship between players, fields, the board itself, the session and how they all play together.
I'll be quick for now.
Some saying that designing close to a real life isn't the right thing to do. That's probably right, but, no one is saying that it does instant harm if you try to think it through. I'm about the Board and the Fields you have in GameRound (ex Session class).
Single Responsibility Principle - I think that's not the bad place to start thinking from when dealing with dillema about the responsibilities. This principle says, that class supposed to have one and only one reason to change.
What that means? Well, exactly what it says, somewhat stupid, isn't. Let's assume board's fields changing from red to blue, and from green to yellow. Does that supposed to affect GameRound class somehow directly? GameRound class's responsibility may remain to define and inform player that it his turn now to move (presumably onto the next field), but what these fields are, not too much to bother GameRound. I think much better would be to construct the fully operating Board with the Fields and pass it onto the GameRound. Similarly as when you order double glazed windows, so they bring stuff ready to put into the place. You don't get glass, then frame, handle, screws for handle, in fact, you don't need to know much what screws are used, you just expecting that they do their job what is needed to do to secure handle. Handle needs to know what screws are used, and if something changes in screws, only the handle needs to worry about that.
So I'd imagine to have something similar to:
So the GameRound class is dependent and interested only about the Board (in this example) as this is where the game takes place on. And leaves the fields stuff to worry for the Board class. And how that relates to SRP (single responsibility principle), well, whenever fields change, they don't affect at all how GameRound class is constructed, you don't need to recompile GameRound class as GameRound takes only the Board. Maybe Board itself tomorrow will have 2 layers of Fields (silly example, but good for emphasizing), which in turn would require to pass to Board(List<Layer1> fields, List<Layer2> fields) (meaning you'd modify Board class, recompile). Now imagine you'd remain with current scenario, you'd still need modify Board class + GameRound class in order to accept Layer1 and Layer2 stuff as all these would be injected through the constructor of GameRound class and then to Board class.
You aren't beginner, so apologies if I expand too much into details. But we have lots of readers here, so the more users (i.e. students) could possibly be on the same page, the better
Liutauras Vilda wrote:You aren't beginner, so apologies if I expand too much into details. But we have lots of readers here, so the more users (i.e. students) could possibly be on the same page, the better
Nah, don't worry - that's a really good post and really helps to think about this project in some new ways I hadn't yet thought of, for instance to look at it from a developers point of view instead of trying to adapt the real life scenario and glue into code. I was aware of SRP before - and what it mean in general - but didn't knew how helpful it can be to get a different look on specific problems to solve.
So far we can extend the example - if the GameRound is responsible to link the Players to the GameBoard, how could a player interact with a field? As noted above - when a new turn starts for a player there some actions happen (check jail, roll dice, advance, perform actions, trade). The check for jail sounds easy (as the status if a player is in jail, and if so, for how many rounds and if a player owns a "get out of jail"-card should all be properties of the Player class), but after a player rolled the dice (wich of course to prevent "getting out of sync" (in lack of a better term to say "prevent cheating") is done on server side) this somehow needs to "get done on the board". So I would consider something like this:
If we go with that - the gameboard has to manage:
1) update the field the player is on (so this may be a property of the Player class) - according to check for passing GO (not sure yet how to implement this one)
2) send out this update to connected game clients (wich infact gets managed by other classes wich just get called by the gameboard class)
3) check what action has to happen after movement
But then we're out of this SRP again as the gameboard suddenly again takes care of more than one action.
If we add another line - say
then the field class gets out of SRP as it has to check if the field is already owned by another player and what's is current status (in terms of buldings), somehow has to get back to the gameround object to access the rules object (example to check for the rule for taxes field) wich would lead to some ugly line like this:
wich then may could offer the player to choose from two options, then, depending on this decision, it could go furhter on like
wich then finaly further may lead to calculation of networth - and then - depending on the "free parking"-rule - decide where this money is payed to.
So, you see, I really have trouble to stick to this whole SRP thing and may need help to clean this up.
Unfortunately, I'm now up for a whole long 10-day shift, around 10h a day, so it may take some time until my next response if I don't find a spare minute in between.
So long for now - Matt out.
Matt Wong wrote:The check for jail sounds easy (as the status if a player is in jail, and if so, for how many rounds and if a player owns a "get out of jail"-card should all be properties of the Player class)
Not necessarily. Let's think about other possibilities what can go wrong. So new fields tomorrow appeared, in fact, jail is no longer there. So we end up with low cohesion Player class, as class gets stuffed with methods which are no longer needed, or needed only for an unknown period of time. But that probably isn't the worry in your case, the worry I'd say is, that Player class would need to have properties for each card, if not for each, then at least for some, then question would be why not for each and just for some, that way Player class could get confusing, player.isInJail(); player.isInHotel(); player.isAbleToMove(); more and more and more... What we might want to achieve, that player would be independent from fields and their underlying logic changes.
What if there were some mechanism to check that independently from player class.
I am nearly sleeping, but wanted to drop this thought for you to think for some time. There are various ways, which might worth to consider or at least to discover.
The Not-so-Good: You're starting out in the bushes. Too many details. You will soon get lost in them and quickly find yourself bogged down by complexity. STOP. Take that literally and as an acronym for what you should do when you get lost in the woods:
S - Stay calm. Relax, breath.
T - Think. When you start out, resist the urge to jump right into the nitty-gritty details that you've already waded yourself into. Think high-level first.
O - Observe. Play the game with a friend or two. Carefully observe what happens as you play the game. How would each action be represented in the computer game? What interactions with the software would a user have that would closely replicate the experience they have when playing the game in real life?
P - Plan. Plan out your moves before diving in. Visualize the end result instead of trying to think of every single little implementation detail. When you take care of the big thing, the little things usually fall in line nicely with them. When you start with the little things, they quickly pile up and leave very little room to fit the big things in later. Again, start with the big things.
I suggest you start by thinking about how the user(s) interact with the computer to play the game. Think about things like this first:
How does this game get played on the computer? Is it one person against the computer? Do multiple people take turns at the input device? What is the input device, a mouse? A keyboard? An XBox Kinect?
How are you going to move pieces around the board? Will the player press a key to throw some virtual dice? How are you going to track where each player is on the board? How will you track whose turn it is to move?
How are you going to keep track of who owns what? How do you get the computer to know when the game has been won?
Again, when you think about these things, resist the urge to think about classes, methods, fields, etc. Don't go into implementation before you have a good sense of the general direction you want to go. That is, don't start hacking away at the underbrush without even getting your bearings and setting your sights in the general direction of where you want to go.
Practice only makes habit, only perfect practice makes perfect.
Practice mindfully by doing the right things and doing things right.— Junilu
[How to Ask Questions] [How to Answer Questions]
- 1
Programming is largely a heuristic process. That is, you do a lot of experimentation, a lot of trial and error. Tests are your way of trying things out. They state your hypotheses of how your software is expected to work. They will fail first, of course, because you haven't written any software that works. But with a failing test, you now have a goal to work towards. That failing test focuses your efforts into getting this one aspect of the software you want to produce to work correctly. From one small thing that works, you add on another small thing that works. Again, starting with a test that fails to set your sights on the new bit of behavior you want to add.
This process is called Test-Driven Development. I have found it to be a very effective way to work. I recommend you try it.
Practice only makes habit, only perfect practice makes perfect.
Practice mindfully by doing the right things and doing things right.— Junilu
[How to Ask Questions] [How to Answer Questions]
Of course, I wouldn't write these all at once. I'd write them one at a time, implementing some piece of functionality and only as much of the design as is needed to support that piece of functionality. I'd keep implementing little by little, always running my tests so I know if something is broken, in which case I should go and fix it first, or if I can go ahead and add another little bit of functionality, starting with another small test.
Practice only makes habit, only perfect practice makes perfect.
Practice mindfully by doing the right things and doing things right.— Junilu
[How to Ask Questions] [How to Answer Questions]
1. define a "board space" class with fields for all pieces of information that exist on each space on the game board.
2. define a "board" class as an array or list of "board space" elements. I'd assign each board space a numeric index
3. define a "player" class with fields for all required data ( such as cash available, properties owned, current board position index)
4. the main function would call the board class constructer which would create the array and call the space class to initiate all the spaces on the standard board
5. the main function would then get input from the user and call the player constructor.
6. play would initiate and rotate with each player called to "roll" the dice and have a graphic presented illustrating their new board position, and a list of options that they can choose to perform.
What I'm not presently sure of is whether I would choose to show an actual game board or a small graphic of each space with houses/hotels as they are populated. It's a user feedback choice.
Also not sure how I would implement the function where a player whon forgets to demand rent as a player lands on their property. My understanding is if someone lands on my property and I don't say "rent" before the next player picks up the dice, I loose that rent payment. We'v enever played that way, but I believe that's how the rules read.
Sadly I don't have time to awnser as my other posts - as I simple didn't had enough time to think about your posts - so I'll try to make it short:
Once again, I'd like to thank anyone who took the time to read, also the ones who took even more time to reply - and to make me look at this project not just from one other side - but a few - to discover lot of new possibilities.
I already made some changes to once pretty stiff but now really loose basic consept in my mind. I've already tried to re-arange things - threw it away and came up with also another solutions - while still tryin to think about and figure more ... one word: amazing.
To tighten this up a bit: Lot of posts made me think of a, for me really strange but productive, way to not really start all other again, but to let other points of view lighten me up.
Just for a quick example: somewhere I've wrote: "first: check if player is in jail", uhm - yea, about that - I re-thought about this whole "jail-magic"-thingy and came up with: "Wait a second - I always have to keep track of the dice if the current player rolled a double, and if so, how many times in a row?". So, from my original "nah, just take the sum of both dice into what ever type might fit" I already move to "there's a lot more just about the dice than I thought of until now". There many of such cases where I know think: "Just wait a second - this crap of b-sh*t just doesn't make sense at all! - I have to aproach it from a different way ...".
Just a quick side-note on test-driven dev: I support that, as in the past I've seen so much goin wrong with "modders" of minecraft - wich fail to just follow Java Conventions (ok, don't blame them - this fault comes back to 1) Notch who screwed up the original 2) the "forge"-team wich screwed it up even more and worse) - and just by starting up the logger throws so many RuntimeException - hiding away checked Exception - one who can read and understand the logs and StackTrace just can think: "Ok little chumps - you got this all wrong pretty hard.".
But: I'm just not used to this kind of development. To admit: I'm the one kind of "hobby dev" wich just uses an editor and the terminal to write his codes (at least after many years I've moved from just notepad to notepad2 (I like it more than notepad++) wich at least adds syntax-highlightning - and yes: I'm using vim on teh unix). I'm not afraid of learning how to use IDEs, version control repos and all that stuff - I'm just not used to it - and starting to learn this now maybe a good idea - but would throw me back half a year on this project - wich I don't want like to waste. - Hey, I can still refactor it later on, can't I?
Also I've wrapped my head around this "board and fields"-thing and - although I really like abstraction (in the past I've over-complicated some easy examples with a full over blown interface-abstract-impl-factory thing) - I, at least until now, still can't make it up so that the board itself could be a "regular" interface without any specifics like jail and free parking, but I also aware that such funcationality can be made up through "external consturcts" cleverly hidden through interfaces
[spoiler] - is thier some code to "hide" some lines? know [spoiler]-tag from BB ...
don't ask me or nail me down on it, but on some of my not-so-well-known german small-community boards I've read some clever "hidden through abstraction"-code by one of our trolls - wich, to be honest to him (I really don't know if "it" is a he or she) sometimes has his really bright moments to shine, wrote some beautiful abstract code wich opened up to one of our "abstract-interface-magicians" the possibility to write some few lines wich, if you know java8 and its tweaks, allows you to write some 3-liners wich just fit in basicly everywhere[/spoiler]
and thier factory-style implementations.
Don't get me wrong - this project will only subject specific on the game of Monopoly and its own unique styles of gameplay - I don't want to make up a "general card-board game -engine-", so at least some spaghetti code would/could/should be allowed to get this runnig without over-complicating stuff unnecessarily.
I know one who have years of experience to build such things may can get away way more cleaner - but as I'm already into Java from about the age of 12 (I'm almost 27 now) and the only one project I finally got done was a very simple and ugly prototype-like implementation of battle ships - this is "the one project" I really like finally to get into the world of "productive developing" some code - no matter what it is, whats the plan/idea behind it is and how it will come out in the end.
If this long "I've already got this done 5 years ago"-"project" finally gets to a stage where it is at least "useable", let alone the term "playable". this would be the biggest achievement in my personal dev-carrer until now - no matter how bad the code will be nor how many bugs it will have - I really want to get this done - not only for myself but also as for a service I can offer to anyone in the world wide net: "You want to play a round of Monopoly?", as, to be honest, to find free online games or cheap buyable ones is still pretty hard. And pay 15 bucks on steam for table-top-sim to play Monopoly? There just has to be another way ...
As for all other replies I didnt awnsered - be sure I've read them - and sill will - but I'm out for about a week now only get some minutes to check for replies - await my next reply around next weekend.
Additional for any mods: If the way I'm taking this thread doesn't fit the forum rules - or if something else is not the way this "board" should be used - please inform me/us - and we will alter the way this "project" will go.
I've just started here as this seems to be an international place to finally get my first real project finally to be done (wich, no offense to my german board, couldn't happen at a smaller community). May there's a special "blog like" are where this may fit better than in the regular forums - any advice is highly appreciated as I want to comply with the overall rules as much as possible.
Thank you all again, in retrospect and in advance, to get this project done.
For those who want to think a dozen steps ahead: This project is subject to also imply some sort of "AI" - so, what I'm currently refering to as "the player" (or better: the Player class) will be an interface in the end wich either is set to an implementation of a real player (wich means any action is send over network and is displayed and controlled to and by a game client controlled by a real person) or just a "bot" (an AI if you will wich makes decisions based upon maths over some dozen rules) run on the server side. Therefore I want to already encourage any game-AI-dev to prepare up for an implementation - those wich will get into the "final" realease of course will get credited (either by pseudo nick or real full name - as you wish).
There're just a few, really "open", possibilities for this game, to play it online - that's the real reason I want to get it done: not just to play it with my friends on a real board but also in the cyberspace. If you think the same way - please join up this crew and be part of it on its journey to its endeavour to achieve its goal.
So long, until next weekend (don't expect any reply from me as I'm away for the next few days), Matt out.
I re-thought about the Jail logic. Why not decouple it into its own class?
So when a player is advanced to jail (third double in a row, go to jail field, go to jail card), the board will call an incacerate method on the jail field - wich then delegates the incarceration to the jail-logic class wich keeps track of players incarcerated and for how many rounds. So it should be easier to check when a new turn starts for a player. Something like jailInstance.isIncacerated(currentPlayer) and if so maybe some like jailInstance.rounds(currentPlayer) to check for how many rounds. This way the actions can be split of into another flow handling the jail mechanics.
Some in this way also for the dice: To keep track how many doubles rolled in a row and re-setting it if the dice show different numbers. Otherwise, if it hits the limit, trigger the into-jail event.
Sure, maybe it's possible to design interfaces to abstract the board, the fields, the dice - link some overall relationship in - and specialize depended on the type of board played (like a board w/o jail, a game with 3 dice, maybe some "extended" or "multi-layer" types). It's hard to think abstract high-level enough when talking about implementing a game with a set of rules - but yet different types (can't remember about this two-layer style to find it quick on the net - but the extended version is called "mega monopoly", and the small one is the junior one - wich, iirc, doesn't have a jail - not sure tho). I also think it should be my goal to implement the standard version first - then, after upping my skills, maybe refactor to add such additions.
I also thought about the GUI and wich way to go. As I'm pretty good in swing I think this will be my first choice. Sure, when keeping it strictly split apart and develope a good interface - it should be easy to replace it with javafx (although this would require some re-code cause javafx applications are different from swing ones).
So long, if I'm up to some other major news I'll post again.
Yeah, a jail class would probably be an excellent exercise in good practices. At a minimum, it could be a Container (for the "convict") and an Observer (for the jailing events, including watching the dice and cards).
I'm not clear on whether you expect to have the software merely referee the game or to act as a player. Monopoly is probably harder to play-by-computer than chess, since there's both chance and a certain amount of bluff, aided and abetted by calculation of odds and payoffs for the different properties. You have to make decisions to buy and sell properties, and, if memory serves, even auction them.
A good preliminary to Monopoly would probably be to model pachesi. It, too is a board-circling game with chance and decision making. And as a bonus, not commercially owned, should you decide to make it public. I think there are actually some computer versions of it around, although I'm pretty sure none in Java.
An IDE is no substitute for an Intelligent Developer.
On SEP 7 2017 Ubisoft released Monopoly Plus on steam - and I have to admit: yea, even someone already created it in "table top simulator" - it's kinda neat and also supports online multiplayer (from what I've seen you YT).
I'm aware about possible legal issues when opening this to the public - so my guess is - unless I advertise it (wich I'm clearly not allowed to due to missing marketing rights wich is still hold by Hasbro) it wont get a big audience, let alone the chance to even have it as a public download - wich I also could get sued for. But that's stuff for another topic for another time. The goal is very simple: a monopoly game wich I can play over the net with my friends written by myself in Java. I doesn't even have to have an AI - although would be nice to - sometimes back in the days I already dreamed about a "get your AI in"-challenge ...
anyway - back to topic
As I still have not that much time, and currently working on some other real-life stuff, my next goal is to get up a simple "tech demo" - just consisting of a board with fields and only the logic to advance the players around it in order. If I managed to get it to this stage - evolving it to the full game shouldn't be that hard as it's just extending something already running. Maybe I can get some time at sunday to get some lines down.
About pachesi - after I searched what this means and is (sorry, I'm german native) - yea, sure I know it. The main difference: you would only follow a more ore less straight line from a fix start to a fix finish - you don't go around the same board more than once (it's not even a complete circle as you never get on any field again). Just as an exercise? Well, maybe worth it, just to get into the whole "multiple players" thing - I'll see how it could help here ...
Funny, pachesi originated closer to where you are than to where I am. But I re-read the rules a year or so ago and they seemed a lot more complex than what I remembered.
Pachesi, like chess, is an ancient game and was popular at caravanserais. I've seen boards that were simply cross-shaped bits of cloth that folded up neatly for travel. Instead of dice, it was common to toss cowrie shells.
But I'm pretty sure that actually you had to go around and around the board until you landed on the place that led into your home stretch.
An IDE is no substitute for an Intelligent Developer.
Today you are you, that is turer than true. There is no one alive who is youer than you! - Seuss. Tiny ad:
Why should you try IntelliJ IDEA ?https://coderanch.com/wiki/696337/IntelliJ-IDEA


text:
The Affiliated Lawyers of the Americas ("ALTA") is a national and international alliance of preeminent law firms, professionals, and business owners from diverse ethnic and racial backgrounds. ALTA's purpose is to promote the growth and expansion of business opportunities and trade relations throughout North, Central, and South America and the Caribbean through collaborations and partnerships with each other and alliances with major regional, national and international interests. ALTA seeks to enhance and promote the administration and delivery of legal services throughout the Americas and the Caribbean and address legal and business development issues impacting historically underrepresented communities within the rule of law. To accomplish these goals, ALTA members share technology and information, engage in collaborative and joint ventures, hold seminars and conferences on topics of interest, and sponsor continuing legal education programs on current trends and particular areas of law and business of interest to the members and the community.
History of ALTA
In 1987, a group of Latino/Latina attorneys in the United States (USA) conceptualized, initiated and founded the Affiliated Lawyers of the Americas ("ALTA"). The group that formed ALTA was as diverse as the Latino population in the USA and consisted of men and women whose national origin included a variety of countries in the Caribbean, Latin America and Spain. The founders' diverse cultural backgrounds were further enriched by their interesting personal backgrounds and their vast professional experiences.
Within two (2) years after the founding of ALTA, the group managed to coordinate a meeting and visit to Juarez, Mexico, to meet with representatives from the Mexican business community concerning Maquiladoras (a Mexican Corporation which operates under a maquila program approved for it by the Mexican Secretariat of Commerce and Industrial Development (SECOFI) in Mexico). The group visited two maquiladoras in the Mexican border town, and had the opportunity to physically observe the operations in the facilities and meet with representatives of the facilities and discuss various production, trade and labor relations issues. In addition to being interested in international trade issues, including Maquiladoras, NAFTA and various initiatives in various Latin American countries, including but not limited to, the Internal Revenue Code Section 936 tax credit which has mainly affected Puerto Rico and the subsidiaries of U.S. companies that operate in PR, the Caribbean Basin Initiative (CBI) which consist of trade programs intended to facilitate the economic development and export diversification in Central America and the Caribbean, and bilateral trade agreements, the founders of the ALTA association were able to create joint ventures among its affiliated lawyers to represent clients in complex civil and criminal defense matters in federal and state courts in the U.S. and Puerto Rico. In the last couple of years, ALTA has been able to renew and develop a perspective that brings it into the 21st century.
Currently, the ALTA association has formed a not-for-profit trade association under the name of Affiliated Lawyers of the Americas (ALTA), Inc. which is incorporated in the State of New York. Presently, ALTA has incorporated the principles and vision that the founders created and worked to realize its objectives with a newly constituted Executive Committee. Thanks to the expansion of its membership and development of its organization, ALTA is able to represent the needs of the international business community and the vast and diverse particular communities that exist throughout North, Central and South America and the Caribbean, within the rule of law.
The name of the organization was created by Frank Gómez, who served as a consultant when the organization was established. Mr. Gómez has vast experience in the government and private sectors and is currently the President of the Board of Trustees of the Pan American Development Foundation.

subset: commoncrawl


text:
How common items you throw in the trash might create a danger for firefighters
DAYTON, OHIO (WKEF/WRGT) – Every day, firefighters risk their lives to keep the public safe, but how can the public keep them safe?
In a recent report from FOX 45, we told you about the growing danger of compressed natural gas (CNG) vehicles popping up in the Miami Valley. One of the prime users of a CNG truck is a garbage company. When a CNG vehicle catches on fire, the gas tanks can release, potentially sending a jet of flame 100 feet.
We spoke with a CNG expert Larry Stone about these vehicles, and how garbage trucks catch on fire. He gave us four examples of items people toss out, and how they can be a danger. Let's call them our "No-throws".
- Granulated Chlorine - It is a common item for anyone with a pool. Stone said that 60 percent of residential trash has moisture. When that moisture reaches the chlorine, it can react to create heat. He said the bellowing effect of a garbage truck driving 60 MPH down the highway could fan the heat, and cause a fire to start from something in the trash haul. Stone recommends that people pour it down the drain, or flush it in the toilet.
- Drain Cleaner – Stone said the active agent in drain cleaner, sodium hydroxide, can react similar to chlorine. He recommends pouring it down the drain for disposal. In his experience, someone tossed out a five-gallon pail of drain cleaner, and it started a fire.
- Bleach and Ammonia – Individually they may be fine, but in combination they can be dangerous. Stone said using bleach and ammonia at the same time in your home could pollute the air and make it toxic. He said breathing the combination could make someone pass out. While this may not lead to a fire, it can cause a risky for situation for a service worker, or a firefighter if the garbage load were to catch on fire.
- Batteries – They are commonly known as a "no-throw" item to keep out of your trash, but it still happens. Batteries that are thrown away carry the potential to spark, and start a fire in a trash load. It is recommended that batteries are recycled instead of thrown away.


text:
Tuesday, June 29, 2010
Worlds Fastest Cars
Fastest Cars in the world 2008-2009
Labels: Cool Cars, Fast Cars, Fastest Cars, Sport Car Pictures, Worlds Fastest Cars / Comments: (1)
Wiesmann Roadster
Labels: Cool Cars, Roadsters, Wiesmann
Posted by giga aptsiauri at 3:35 AM 0 comments
VW Camper Vans
RTTS Cool Cars and Van PicturesA collection of cool cars and van pictures from 'Run to the Sun' (RTTS) festival, Newquay, Cornwall, England. Every year on the May Bank Holiday, motoring and in particular VW enthusiasts and live entertainment fans make the annual pilgrimage to Newquay for a long weekend of sun, sea, music and motors.
Posted by giga aptsiauri at 3:34 AM 1 comments
VW Beetles
RTTS Cool Cars and Van Pictures
A collection of cool cars and van pictures from 'Run to the Sun' (RTTS) festival, Newquay, Cornwall, England. Every year on the May Bank Holiday, motoring and in particular VW enthusiasts and live entertainment fans make the annual pilgrimage to Newquay for a long weekend of sun, sea, music and motors.
Posted by giga aptsiauri at 3:33 AM 0 comments
VW Adidas Car - Golf GTI Excessive
Check out this cool car! Adidas have teamed up with VW GTI to create the aptly named 'Golf GTI Excessive'. Starting in June, Volkswagen, GTI and adidas will for the first time meld into a combined product as the Golf GTI adidas. The essential fact is that the GTI's technology and styling – and its interior customised in the style of the adidas brand – are brought together to produce a real dynamic mix. Volkswagen expect the Golf GTI adidas to attain collectible status very quickly, given the past history of models such as the two Golf Pirelli GTIs (1983 and 2007) and the Golf GTI Edition 30 (2006). Check out the pictures and videos of this cool car here.
Posted by giga aptsiauri at 3:32 AM 0 comments
Vintage Cars
$30 Million Most Expensive Car
The most expensive car in the world is a cool $30 million art Deco-inspired 1936 Bugatti Type 57SC Atlantic. It has reportedly been sold at auction this week in California for $30 million to an unnamed buyer. This car is taken from the Most Expensive website.
Posted by giga aptsiauri at 3:31 AM 0 comments
Toyota Hilux - Top Gear Volcano Pictures
Cool pictures from Top Gear last week when they went up the Eyjafjallajökull in a Toyota Hilux. Little did they know the active volcano would cause so much European travel havoc. Luckily, the Top Gear cast and crew escaped just hours before the volcano erupted. Finally a bit of good PR for Toyota. The Hilux remains truely a cool truck!
Posted by giga aptsiauri at 3:29 AM 2 comments
Surf Cars
Cool Extreme Sports Lovers Car - Toyota/Billabong Ultimate VenzaCheck out this cool Toyota Billabong extreme sports lovers car mash up called the Ultimate Venza. This new project was started by Toyota Motor Sales, USA, Inc. which teamed with Billabong and Street Image to create the perfect active sports vehicle capable to take you the beach, lake, mountains, skate park or anywhere in between and have a blast.
Posted by giga aptsiauri at 3:27 AM 0 comments
Porsche 911 Turbo S 2010
Showcasing the super cool 2010 Porsche 911 Turbo car.This is Porsche's new 911 Turbo, with an enlarged and twin-turbocharged engine producing more power, plus the option of a twin-clutch gearbox that features proper gearshift paddles. Swiss tuner Sportec has also prepared an upgrade package named the SP580 for the facelift version 2010 Porsche 911 Turbo. Here are the pictures...
Posted by giga aptsiauri at 3:26 AM 1 comments
Police Cars
Cool Police Cars from around the WorldA collection of fast cool police cars from around the world. Ever wondered what happens to your money when you get a speeding ticket? They splash out on cars like these, that's what they do!
Posted by giga aptsiauri at 3:24 AM 0 comments
Pimped Cars
Cool Tricked Out CarsA collection of cool and uncool tricked out, pimped custom cars from around the world.
Posted by giga aptsiauri at 3:24 AM 1 comments
VW Amarok Pictures and VideoShowcasing the cool VW Amarok pickup truck! The Amarok is scheduled to make it's world debut on the 15th of December 2009 as looking at these pictures and video, it going to be a beauty.
Posted by giga aptsiauri at 3:22 AM 0 comments
Peugeot SR1 Concept Car - Pictures and Video
Showcasing the cool Peugeot SR1 concept car with pictures and video. This cool looking Peugeot will be unveiled at the Geneva Motor Show this March, a new concept car which will be the first to bare the redesigned lion logo.
This cool Peugeot SR1 Concept Car is an all-wheel-drive turbo hybrid that has a mean 313 horsepower whilst delivering great fuel consumption of 48 mpg. The Peugeot SR1 will be powered by Peugeot's HYbrid4 Technology, a combination of a 1.6L turbo diesel engine for the front axle and a 95 hp electric motor on the rear end.
Posted by giga aptsiauri at 3:21 AM 0 comments
Paint Jobs
Pink Bentley Vitesse - Not Cool!
How to spoil a cool Bentley car - simply get a pink paint job or vinyl wrap as these pictures show. This Mansory Vitesse shown at recent Frankfurt Motor Show has carbon fiber hood and trim, glossy black turbine type wheels and the tackiest pink interior which includes some ugly purple carbon fiber trim to polish off this disaster.
Posted by giga aptsiauri at 3:20 AM 0 comments
Old School Car Pictures
Retro Cars and Girls Pictures
Posted by giga aptsiauri at 3:17 AM 0 comments
Off Road Cars
Local Motors Rally Fighter - Pictures and Videos
Showcasing the super cool Local Motors Rally Fighter car. The Off-Road Racer designed for car enthusiasts, by car enthusiasts is debuted at the biggest industry event of the year at SEMA, in the 'Making Green Cool Zone' It's one of the most exciting cars to hit the road in ages. Aggressive, sleek and inspired by old War Birds, the Local Motors Rally Fighter has the heritage of legacy with fresh appeal.
Posted by giga aptsiauri at 3:11 AM 0 comments
Cool 11m Scrappage Car
This cool 11-metre car is created out of more than 2000 scrapped car parts including a door from a limousine and a set of furry dice. The car is advertised as having 'one careful owner - and any number of really, really careless ones'.
Posted by giga aptsiauri at 3:10 AM 0 comments
New Cars
Porsche Boxster Spyder - Looks Cool!Porsche's current cool 2 seater roadster car, the Boxster is to get a performance makeover for the final few years of its life when a light and fast hardcore version called the Boxster Spyder hits UK car showrooms. The Porsche Boxster Spyder, revealed in these official Porsche pictures below, will make its motor show debut at next month's Los Angeles Auto Show, before going on sale in the UK in February 2010.
Posted by giga aptsiauri at 3:09 AM 0 comments
Mustang Girls
Ford Mustang Obsidian Pictures - One Cool Car!
Check out these pictures of the Obsidian SG One Ford Mustang, a seriously cool car! Also included below is car spec and a cool video included.
Posted by giga aptsiauri at 2:28 AM 0 comments
James Bond Cars
Cool James Bond CarsAcross 46 years, 22 films and six leading actors, the James Bond film legacy has featured some of the world's most luxurious and iconic sportscars. From the signature Aston Martin DB5 in Goldfinger to the Lotus Esprit Turbo in For Your Eyes Only, 007 has spared no expense in choosing his wheels. To celebrate the release of the Quantum of Solace, here's a list of the 007 hottest cars from the James Bond Legacy…
Posted by giga aptsiauri at 2:25 AM 0 comments
Hydrogen Cars
Hydrogen Scorpion CarA Texas startup has finally pulled the wraps off its 40-mpg, 450-horsepower Scorpion roadster, a hand-built hydrogen-burning "eco-exotic" that is sexier than Angelina Jolie and has the performance to provide more grins than nitrous oxide.
Posted by giga aptsiauri at 2:24 AM 0 comments
Hot Cars
Tramontana R Edition - Pictures and Video
The super cool, super quick Tramontana R Edition car is an evolved version of the standard open-wheel 2 seater, packing a Mercedes-sourced 5.5-liter V12 available in either naturally aspirated, 550 hp guise or a twin-turbocharged 760 hp version that dolls out an astonishing 811 lb-ft of torque. It does 0-100 kph in 3.6 seconds and gets 200 kph in a 10.15-second run. Price tag is a credit busting €385,000 but its one hell of a cool car as these pictures and video below show.
Posted by giga aptsiauri at 2:22 AM 0 comments
Honda RA-X
Labels: Concept Cars, Cool Cars, Honda
The latest cool concept car from Honda, inspired by the beginning of motorsport competition during the 60s and hence was named as RA similar with the first F1 cars in distinctive white and yellow colors. The design features innovative smooth crossing lines in the surface that forms a theoretical X. The car's engine can be seen through a glass and predominates at the back side of the engine vent with optical technology-led groups forming a triangular shape. Honda RA-X comprises MR engine and back transmission with a capacity of over 350 hp.
Posted by giga aptsiauri at 2:21 AM 0 comments
Hennessey Venom GT
Hennessey Venom GT
Labels: Cool Cars, Hennessey Venom GT, Super Cars / Comments: (0)
Posted by giga aptsiauri at 2:20 AM 0 comments
Gumball Pictures
Gumball 3000 - Cars & Girls PicturesCollection of Gumball rally cool cars and girls pictures. Hot girls and cool cars seem to go together beautifully...similar to grid girls in motor racing! So the question is do expensive sports cars attract beautiful girls? Recent theories suggest yes and judging by these pictures, the answer is hell yeah.
Posted by giga aptsiauri at 2:18 AM 0 comments
Gold Cars
Gold Ferrari
Check out these pictures of this cool gold Ferrari for the ultimate car paint...for the ultimate show off.
Posted by giga aptsiauri at 2:17 AM 0 comments
Funny Car Stuff
Thong Car
Check out this cool thong car! A refreshing take on the popular 'I wish my girlfriend/wife was this dirty' commonly written on cars that haven't had a car wash in months.
Posted by giga aptsiauri at 2:16 AM 1 comments
Funny Car Pictures
Pig Car Pictures
Labels: Bizarre Vehicles, Funny Car Pictures / Comments: (0)
A collection of cool cars and vans inspired by pigs!
Posted by giga aptsiauri at 2:15 AM 0 comments
Fun Cars
A Very Strange Car!
Okay this car is beyond belief! I'm not sure if it's cool, bizarre or art...but it sure attracts attention wherever it goes! Check it out!
Posted by giga aptsiauri at 2:14 AM 0 comments
Ford Shelby
2005 Ford Shelby GR-1 Concept with Aluminum BodyShowcasing cool car pictures of the amazing 2005 Ford Shelby GR-1 Concept with Aluminum Body.
Posted by giga aptsiauri at 2:13 AM 0 comments
Ford F-150 SVT Raptor
Showcasing the cool 2010 Ford F-150 SVT Raptor. The Raptor launches with the proven three-valve Triton 5.4 litre V8 engine delivering 320 horsepower and 390 ft.-lb. of torque; a new 6.2-liter engine with an estimated 400 horsepower and 400 ft.-lb. of torque becomes available shortly after launch. Both engines underwent extreme laboratory testing, including running the engines at over 6,000 rpm for more than 150 hours. The engines also were put to the test in the desert on a 62-mile evaluation loop to prove out the durability demanded by high-performance, off-road enthusiasts.
Posted by giga aptsiauri at 2:12 AM 0 comments
Flying Cars
Worlds First Cool Flying Car - TerrafugiaA cool car would be one that can also fly, yes? Well here it is! The world's first flying car.
Posted by giga aptsiauri at 2:10 AM 0 comments
Chris Evans splashes a cool £12 million on Ferrari car
Chris Evans has splashed out on a new car..a cool £12 million ($17 million) on a vintage Ferrari 250 GT SWB California Spyder! It is now the most expensive car bought in Britain.
Posted by giga aptsiauri at 2:09 AM 0 comments
Fastest Cars
Fastest Cars in the world 2008-2009Here are 10 of the worlds fastest cars of 2008-2009 available on the market and measured by their top speeds.
1. SSC Ultimate Aero
257 mph+, 0-60 in 2.7 secs. Twin-Turbo V8 Engine with 1183 hp, base price is $654,400. Tested in March 2007 by Guinness world records, the SSC Ultimate Aero takes the lead as the fastest car in the world beating Bugatti Veyron.
Fast Cars
Top 10 Fastest Cars in the World
As a lover of fast cool cars, we have created the top 10 fastest cars in the world. Many believe the Bugatti Veyron to be the worlds fastest production car which is incorrect. It actually comes in 4th position so starting at 10th position and working our way down, here are the 10 fastest cars in the world...
10th Fastest Car in the World = Jaguar XJ220 - 227mph
10th Fastest Car in the World = Jaguar XJ220 - 227mph
Famous Cars
Cadillac One Presidents CarsThe Presidential State Car is the official state car used by the President of the United States. It is also known as Cadillac One and here it is it all its glory.
Posted by giga aptsiauri at 2:06 AM 0 comments
Expensive Cars
Chris Evans splashes a cool £12 million on Ferrari car
Chris Evans has splashed out on a new car..a cool £12 million ($17 million) on a vintage Ferrari 250 GT SWB California Spyder! It is now the most expensive car bought in Britain.
Eco Friendly Cars
Cool Eco Friendly Cars
Labels: Concept Cars, Cool Cars, Eco Friendly Cars / Comments: (0)
Driving Days
Top 5 Motoring Days Out in the UKThere is more to motoring than just driving to and from work and renewing your car insurance. England has a proud motoring heritage and therefore boasts one of the most comprehensive ranges of interesting motor experiences that are great for days out with friends and family. Here are my top five:
Posted by giga aptsiauri at 2:03 AM 0 comments
Dodge Car Wash BabesThe Dodge is one cool car and deserves the love and attention that only two hot babes can provide, like this sexy car wash for example.
Posted by giga aptsiauri at 2:02 AM 0 comments
Denise Milani
Denise Milani Riding HardDenise Milani, sexy glamor girl riding hard pictures.
Posted by giga aptsiauri at 2:01 AM 0 comments
Delorean LimosineA Delorean Limosine...now way this is so cool. Check out the pictures!
Click to enlarge
Posted by giga aptsiauri at 2:00 AM 0 comments
Custom Cars
Cool Tricked Out CarsA collection of cool and uncool tricked out, pimped custom cars from around the world.
Custom Cars
Cool Tricked Out Cars
Labels: Custom Cars, Modded Cars, Pimped Cars, Tricked out cars / Comments: (0)
Mallett Corvette Z03
Labels: Car Pictures, Cool Cars, Corvette / Comments: (0)
Many people are simply drawn to cool cars. Behind the artistry and superfluous lines lies the maker's true passion to make an already existing work of art into something much more. This is what the 2009 USD Mallet Corvette ZO3 is. As a joint project of Mallet Cars of Berea, Ohio and Ugur Sahin Design from Gorinchem, Netherlands, the very powerful Corvette has just gotten a bit better.
Posted by giga aptsiauri at 1:52 AM 0 comments
Cool Videos
Aston Martin V12 Vantage promo video
Check out this cool Aston Martin V12 Vantage promo car video.
Cool Vehicles
Mobile Office SUV - Cool Car for High Flyers!
Here is a cool car idea - a mobile office designed by LimousinesWorld - for the rich, successful people whose work requires constant presence, as well as those who like to travel in comfort.
Subscribe to: Posts (Atom)


text:
Indonesia power and renewable markets long-term outlook 2017
You can pay by card or invoice
Report summary
The Indonesian government continues to implement several policies to solve the power crisis and improve the performance of the power sector. However, the recent regulations have caused dismay among the industry players. Project terms are generally becoming less attractive, following the recent revisions of the power purchase agreements (PPAs). Meanwhile, the new renewable energy price benchmark will make several projects uneconomic. We have maintained our forecast that coal will continue to dominate the fuel mix, with gas in second place. On a brighter note, the electricity subsidy removal has been quite successful and the measure was extended to a wider consumer group.
What's included
This report contains
Table of contents
- Executive summary
- Market background
Key developments
- Revised PPA terms
- Lower renewable energy prices
- Power demand growth at 5.9% a year
- Power generation mix outlook
- Electricity subsidy removal has been successful
- Regional map
- Data summary
- Economic outlook
Policy and regulation
- Key players
Indonesia power market value chain
- Generation
- Transmission
- Distribution and retail
- Energy policy
Power market regulation
- Single-buyer model
- PPA prices
- Fuel mix
- Renewables
- Pricing
- Land acquisition and licensing
Environmental policy and renewables
- Policy
- Renewables
- COP21 INDC target
Indonesia capacity and reserve margin
- West Kalimantan
- East Central South Kalimantan
- Sulawesi
- Papua Timor Maluku Nusa Tenggara
- Appendix
- Indonesia capacity and reserve margin
Breakeven cost by technology
- Short run marginal cost analysis
- Breakeven cost by technology
Java-Bali power transmission infrastructure
- Current power infrastructure in Java
- Future power infrastructure in Java
Sumatra power transmission infrastructure
- Current power infrastructure in Sumatra
Future power infrastructure in Sumatra
- Possible link to Malaysia
- Losses in Sumatra
- Java-Bali power transmission infrastructure
- Indonesia GDP growth and power sales
Supply-demand balances
- Annual generation forecast
- Plant utilisation (capacity factor)
Transmission utilisation across regions
- Inter-regional transmission capacity
- Inter-regional power transfers
- End-user tariffs
- Average annual system short-run costs
Break-even cost forecast
- Java-Bali and Sumatra break-even cost for power end-users*
Risks and uncertainties
- GDP sensitivity on gas demand (Java and Sumatra)
Coal sensitivity on gas demand
- Java-Bali
- Sumatra
- Impact of RUPTL 2017
Tables and charts
This report includes 65 images and tables including:
- Economic indicators
- Indonesia power available capacity
- Indonesia power market balance
- Indonesia gas demand by sector
- Key changes to analysis from H2 2016 publication:
- Major energy legislation
- Java Bali - new plant economics by technology (LRMC) for new-build using real levelised prices (2020-2035)
- Sumatra/rest of Indonesia - new plant economics by technology (LRMC) for new-build using real levelised prices (2020-2035)
- Demand: Table 1
- The government subsidy to PLN under the Public Service Obligation
- PPA reference ceiling prices for IPP projects
- Renewable energy selling prices*
- Geothermal selling prices (Ministerial Regulation 17/2014)*
- Renewable energy selling prices based on MEMR Regulation 12/2017
- Expedited electricity licensing and permitting (Presidential Regulation 4/2016)
- Java-Bali: power transmission capacity across regions
- Sumatra: power transmission capacity across regions
- Executive summary: Image 1
- GDP forecast - Indonesia
- Indonesia provincial map
- Executive summary: Image 2
- Indonesia's energy policy and regulatory structure
- Policy and regulation: Image 2
- Environmental policy and renewables: Image 1
- Generation mix: renewables vs non-renewables
- Renewable capacity by fuel
- Renewable generation by fuel
- Indonesia INDC target
- Existing and planned capacity with peak load
- Indonesia capacity by plant type and reserve margin
- Java Bali capacity by plant type and reserve margin
- Sumatra capacity by plant type and reserve margin
- Rest of Indonesia available capacity
- Rest of Indonesia reserve margin
- Break-even cost (LRMC) based on technology (2020 prices)
- Power infrastructure – South Sumatra
- Indonesia GDP growth and power sales growth
- Indonesia power sales
- Indonesia grid generation by fuel used
- Java-Bali grid generation by fuel used
- Sumatra grid generation by fuel used
- Rest of Indonesia grid generation by fuel used
- Java-Bali: Capacity factor by plant type (% utilisation)
- Sumatra: Capacity factor by plant type (% utilisation)
- PLN's average electricity prices*
- PLN's electricity prices by segments
- Java-Bali : average annual short-run generation costs
- Sumatra : average annual short-run generation costs
- Risks and uncertainties: Image 1
- Power demand sensitivity on gas
- Java-Bali 2020 merit order
- Java-Bali 2025 merit order
- Sumatra 2020 merit order
- Sumatra 2025 merit order
- Power infrastructure – West and Central Java
- Power infrastructure – East Java and Bali
- Power infrastructure – Central Sumatra
- Power infrastructure – Aceh and North Sumatra
- Java Bali: intra-regional power transfers
- Sumatra: intra-regional power transfers
- Prices: Image 5
- Java-Bali coal growth for high and low case
- Java-Bali coal demand sensitivity on gas in power
- Sumatra coal growth for high and low case
- Sumatra coal demand sensitivity on gas in power
You may be interested in
Indonesia power and renewable markets H2 2017 summary
Modest progress towards ambitious goal: Indonesia power and renewable markets H2 2016 summary
Philippines power and renewable markets long-term outlook 2017
Questions about this report?
Europe:+44 131 243 4400
Americas:+1 713 470 1600
Asia Pacific:+65 6518 0800


text:
Sailing-Invisible Italians still hold sway over America's Cup
By Alexander Smith
HAMILTON, Bermuda, June 25 (Reuters) - Although there is no Italian America's Cup team in Bermuda after Luna Rossa withdrew in anger over a rule change, Italy is having an impact on the final and could influence the cup's future.
When Prada boss Patrizio Bertelli pulled the team backed by the Italian luxury goods group out of the competition in April 2015, he offered key members of his team to help Emirates Team New Zealand, which is now challenging Oracle Team USA.
As the holder of the "Auld Mug", the U.S. team gets to decide the rules, and the decision to change the specifications of the boats stirred the already bad blood with the Italians, who called the change an "abrupt and unacceptable imposition".
Most significant among the team members who joined New Zealand's attempt to dethrone Oracle was former Luna Rossa skipper and team director Max Sirena who switched ship in October 2015 to work alongside New Zealand CEO Grant Dalton.
Sirena won the 33rd America´s Cup with BMW Oracle Team and led the Luna Rossa challenge in the 34th edition of the cup.
Luna Rossa said at the time of his move to Emirates Team New Zealand that this underlined "the sporting and friendly ties of mutual respect" built up since 2000.
As well as helping the New Zealand team out with personnel including designers, Bertelli has also helped them with support boats and other "assets", America's Cup sources told Reuters.
These ties could come into play in the next phase of the cup because victory for New Zealand, who lead the U.S. holders in the first-to-seven competition, would mean they get to decide on the format of the 36th America's Cup.
A close relationship between Bertelli and Matteo de Nora, who is Team Principal and a financial supporter of Emirates Team New Zealand, has led to expectations among other America's Cup teams, sponsors and sailors that Luna Rossa will become the "Challenger of Record" if New Zealand win.
Under the terms set out by the America's Cup "Deed of Gift", which dates back to the 1850s, the Challenger of Record is the first one accepted by the new defender of the cup.
This is done formally by a yacht club linked to one of the teams and there is usually a scramble to get the challenge in as soon as the final race is decided, with notice being served to the winning team as their boat crosses the finish line.
The challenger then negotiates initial crucial terms of the next cup, including location, the type of boat, the format and the rules under which teams will compete.
"We all understand that they (New Zealand) are likely to have Luna Rossa as a challenger of record, but what their plans and intentions are is completely unknown," America's Cup Regatta Director Iain Murray told Reuters this week.
Oracle has signed up to a "framework agreement" with four of the other challengers this year which would mean the cup being held every two years in foiling catamarans and a series of match races along the lines of Formula One around the world.
But not everyone liked the idea, with some saying it was not true to the spirit of the cup and New Zealand boycotted it. The New Zealand camp have not said so far what they will do if they win the cup back. (Editing by Adrian Croft)
Sorry we are not currently accepting comments on this article.


text:
8th Annual Night Out on the Town
Date March 24, 2018
6:30 PM to 12:00 AM
Farmington Club in Farmington, CT
Tickets on Sale Now!
2018 Night Out Ticket Form.pdf
Classroom Baskets
March 7, 2018
Please contact Mandy Andros at firstname.lastname@example.com if you are unsure who your basket representative is or you need more information about your theme. Monetary donations are greatly appreciated.
Advertise in our Program Booklet
2018 Night Out Ad Form.pdf
Examples of Auction Items from 2017
2018 Items will be updated in a few weeks
Silent Auction Items
2017 Night Out Silent Auction.pdf
Live Auction Items
2017 Night Out Live Auction.pdf


text:
Our client, a world leader in scientific technology and engineering are in search for a Manufacturing Quality Engineer to permanently join their Irish-based operations in Dublin. The role will involve joining responsibility for all quality related activities associated with their new product and process development, ensuring the planning and management of all quality relative activities, to ensure that the goods product meet their desired specification.
Managing the quality of purchased goods by:
o Assisting with vendor selection and executing the inspection process
o Planning and supervising incoming inspections
o Pursuing quality issues with suppliers to ensure their prompt resolution
Responsible for managing the quality of assembly operations by:
o Reviewing and approving various process control measures deployed in the assembly cell to ensure conformity of product
o Monitoring and analysing production quality indicators to identify possible issues and to provide drive for corrective and preventive action
o Ensuring that nonconforming material is suitably segregated, investigated and disposed of and ensuring that an appropriate corrective action is taken.
Responsible for maintenance of the continued operational status of the facilities by:
o Ensuring processes and measurements methods are suitably validated in conformity with validation practices for medical devices
o Managing maintenance and calibration of equipment to ensure its continued state of operation
o Monitoring the status of compliance of the assembly areas with their environmental control requirements
Responsible monitoring the status of compliance by:
o Ensuring that records are produced in conformity with planned arrangements and in compliance with GDP rules
o Ensuring training requirements are suitably identified and implemented
o Checking periodically through auditing techniques that manufacturing operations are performed in compliance with procedures.
Responsible for providing overall quality support to the team by:
o Working in close relationship with the design team to develop a full understanding of the product.
o Participation in the various risk assessments carried out to ensure conformity of the product manufactured.
o Ensuring that any change required analysed, validated and implemented in accordance with change control rules.
• A degree in a quality management, mechanical or production engineering or related discipline
• A minimum 3-5 years industry experience within the quality side of the medical device or similarly regulated industry.
• Manufacturing tooling experience and prototype development.
• Good working knowledge in the fields of process validation, equipment qualification (IQ/OQ/PQ), statistical process control and design for manufacturing
• organisation skills, with the proven ability to test products and materials both methodically and accurately.
• Demonstrate the ability to work within a cross-functional team and to adapt contribution to meet the team's expectations.
• Strong communication skills
• Demonstrate problem-solving possess and troubleshooting skills
• Experience/knowledge in NDP, metallurgy and materials analysis, injection moulding and plastic materials properties, is considered an advantage
• Experience in performing audits and compliance with quality management standards is considered an advantage. pursue issues until their resolution.
If you would like further Information you can contact the recruiter directly:
Oran McIvor | Tel: +353 (0) 1 507 9270


text:
Just Beatles are firmly established on the tribute band scene, performing at Beatles festivals all over Europe, including the world-famous Liverpool Beatleweek and theatres up and down the UK.
Expect non-stop hits all the way from the early days of Love Me Do, Please Please Me and She Loves You, through to later smashes such as Let it Be and Get Back. Every aspect of their performances have been perfected in their quest to emulate the Beatles, making them one of the best tribute bands out there.
Together with authentic instruments and equipment you'll think you're experiencing the Beatles live.


text:
Out & About: Friday, Dec. 8 to Thursday, Dec. 14
"YOUR HOLIDAY HIT PARADE" — Enjoy holiday hits of yesteryear alongside contemporary charmers in this tuneful new revue created by Portland's own musical theatre maestro Rick Lewis and Broadway Rose co-founder Dan Murphy. The show runs through Saturday, Dec. 23. For showtimes and tickets, visit broadwayrose.org/hit-parade.
"ANNIE" — Beaverton Civic Theatre presents the classic musical "Annie," about a red-haired orphan who yearns for a home, at the Beaverton City Library. The show runs Dec. 1 through Dec. 17. Shows are selling out, so view showtimes and purchase tickets at www.beavertoncivictheatre.org/.
6TH ANNUAL FOOD DRIVE AND COMMUNITY CONCERT — Saturday, Dec 9, 7:30 p.m. Tualatin's Winona Grange, 8340 S.W. Seneca St., hosts an Irish folk dance. Bring non-perishables for the Tualatin School House Pantry. Celtic band MAC will perform. Tickets are $12 general admission, and $10 for veterans, students and seniors ages 65 and older.
Aloha Library
17455 S.W. Farmington Road Suite 26A
SIT N' STITCH — Monday, Dec. 11, 6-7:30 p.m. Bring your knitting, crochet, or other yarn project, and enjoy the company of fellow crafters. All are welcome.
TECH ASSISTANT SESSIONS — Monday, Dec. 11 and Wednesday, Dec. 13, 6-8 p.m. Drop by the library for help with basic computer skills. You can also schedule an appointment by calling 503-259-0185.
BIRDSEED ORNAMENT — Wednesday, Dec. 13, 6-7 p.m. Get ready to feed the birds this winter by making a birdseed ornament to hang outside your home.All supplies will be provided. No registration is necessary, and there is no cost to attend.
Beaverton City Library
12375 S.W. Fifth St.
THE CHILD'S FRIGHTFUL FANTASY OPERA — Friday, Dec. 8, 4-5 p.m. This children's opera includes dancing and puppetry, and is a joint effort by Ping and Woof Opera and Necessity Arts Collective.
MARIO KART NINTENDO SWITCH TOURNAMENT — Saturday, Dec. 9 2:30-4:30 p.m. Test your skills in Beaverton City Library's first-ever Mario Kart Nintendo Switch tournament. There will be $20 and $10 Game Trader gift certificates for the two top winners.
ARABIC COMPUTER CLASS — Sunday, Dec. 10, 11:30 a.m.-12:30 p.m. Learn the basics of computers in a friendly environment. This class is taught entirely in Arabic, and is geared for adults. To register, call 503-644-2197, extension 2.
PASTA ANGEL ORNAMENTS — Monday, Dec. 11, 4-5 p.m. Learn how to make your own angel ornament using pasta. Grades 2-5 with family.
Bethany Library
(Cedar Mill Library
@ Bethany)
Suite J-8, 15325 N.W.
Central Drive
DECEMBER BOOK SALE — Starts Saturday, Dec. 9 and runs through Saturday, Dec. 23. Pick up some gently-used books at appealing prices.
STAR WARS DAY — Saturday, Dec. 9. All-day event. Drop by the Bethany branch for fun coloring pages, bookmarks, and a Star Wars figure hunt
TWOS TOGETHER — Monday, Dec. 11, 10:30-11 a.m. This program features active listening with short books, flannel board stories, nursery rhymes and songs with an emphasis on early literacy skills.
PRESCHOOL STORYTIME — Tuesday, Dec. 12, 11:30 a.m.-noon. Good listening skills are enhanced with longer stories, songs, rhymes, and earlyliteracy fun. Ages 3-6 years.
Cedar Mill
Community Library
12505 N.W. Cornell Road
Suite 13
KOREAN STORYTIME — Saturday, Dec. 9, 10:15-11 a.m. Join for stories, songs and rhymes in Korean. Ages 3 and older with family.
BILINGUAL STORYTIME/CUENTOS BILLINGUES — Saturday, Dec. 9, 10:30-11 a.m. Join for books, songs and rhymes in Spanish and English.
STAR WARS ESCAPE ROOM FOR TEENS — Saturday, Dec. 9, 2-4 p.m. Teens and tweens ages 11-18 can test their fate in the "Star Wars"-themed Escape Room. Registration Required; call 503-644-0043, extension 114.
WEDNESDAY HANGOUTS: ANIME CLUB — Wednesday, Dec. 13, 3-4:30 p.m. Ages 10-18 can come hangout at the Cedar Mill Library on early release Wednesdays to participate in several fun activities. During Anime Club, participants will watch anime and do anime-related crafts with their friends
Garden Home Community Library
7475 S.W. Oleson Road, Suite 6
FAMILY KARAOKE — Friday, Dec. 8, 6-8 p.m. Rock out, sing and dance to songs the whole family can enjoy. There will be fog, lights, and popular songs including oldies, Disney favorites, and pop hits to sing together.
RECORD SWAP — Saturday, Dec. 9, 3-5 p.m. Looking to refresh your record collection and pass on some old favorites for others to enjoy? Come to the library's first-ever record swap! The library will provide tickets for each of the records you bring to trade; each ticket gets you one new-to-you record. All ages of music enthusiasts welcome.
TUESDAY NIGHT NOURISHMENT BOOK GROUP — Tuesday, Dec. 12, 7-8:30 p.m. In December, the book group selects what to read for the next year. There's only one rule for book club: books must be under 450 pages. Each person is invited to bring two selections to recommend. You'll talk about them all and then vote on 12 selections, plus a couple of backups. New members are always welcome.
BOARD GAME NIGHT — Wednesday, Dec. 13, 6-9 p.m. Bring games to share with other board game enthusiasts, or pick a game from the library's selection.
Murray Scholls Library Beaverton Library
11200 S.W. Murray Scholls Place, Suite 102
SCULPEY ART — Saturday, Dec. 9, 2-3 p.m. See where your imagination takes you while creating Sculpey art masterpiece.! Each month we will explore a different theme. Grades K-5 with family.
KID ENGINEERS — Sunday, Dec. 10, 4-5 p.m. Inspire your kid to become an engineer. This month you'll be experimenting with boxes, toothpicks and marshmallows to construct forts and winter dens. Grades K-5 with adult.
OBOB BOOK CLUB — Tuesday, Dec. 12, 4-5 p.m. This week's selection is "Wild Life" by Cynthia DeFelice. Grades 3-5. Registration required; visit beavertonlibrary.org/register.
Public Library
22560 S.W. Pine St.
FAMILY STORYTIME — Tuesday, Dec. 12, 11:15 a.m.-noon. Family storytime is for all ages and all abilities, specializing in the needs of children with sensory issues.
BOOK DISCUSSION: BRITT-MARIE WAS HERE — Wednesday, Dec. 13, 6 p.m. When Britt-Marie walks out on her cheating husband and has to fend for herself in the miserable backwater town of Borg — of which the kindest thing one can say is that it has a road going through it — she finds work as the caretaker of a soon-to-be demolished recreation center. All are welcome at this discussion of "Britt-Marie Was Here" by Fredrick Backman.
PRESCHOOL STORYTIME — Thursday, Dec. 14, 10:15-11 a.m. Enjoy interactive reading, rhymes, music and movement for developing those early literacy skills, socialization, and play — all for you and your growing preschooler. Designed for ages 3-5. Playtime follows.
Tigard Public Library
13500 S.W. Hall Blvd.
HOUR OF CODE! — Sunday, Dec. 10, 1:30-3 p.m. Everyone can learn to code. Celebrate Computer Science Education Week with fun challenges featuring Code.org, Bee-Bot, Snap Circuits and more.
BOOK BABIES — Monday, Dec. 11, 10:15-10:45 a.m. Babies and their grownups are invited to share nursery rhymes, finger plays, songs and a simple book while making new friends and developing early literacy skills.
DOGS AND TALES — Wednesday, Dec. 13, 6-7:30 p.m. Could your child use a helping paw with reading? Reading aloud to a dog creates a relaxed, non-judgmental environment to help children develop their reading skills and build confidence. Registration required; call 503-718-2656.
Tualatin Public Library
18878 S.W. Martinazzi Ave.
TEEN WII U OR XBOX ONE — Saturday, Dec. 9 and Sunday, Dec. 10, 1-5 p.m. Join other teens at the library and let the gaming begin.
MUSIC BY TWO SPIRIT JAZZ — Sunday, Dec. 10, 2-6 p.m. Two Spirit Jazz's current repertoire comes from the American songbook and from the vast supply of American jazz and blues. Vocalist Suzanne Callaway and other members are also active composers and often include some of their originals at performances. Free to attend.
COMMUNITY GIVING PROJECT — Thursday, Dec. 14, 4-6 p.m. Join the community in making mittens and scarves for those in need. All finished scarves and mittens will be donated to a local charity for distribution. All levels of crafting and sewing abilities are welcome.
NW CHILDREN'S THEATRE CO. PRESENTS "A MISTLETOE MYSTERY" — Thursday, Dec. 14, 7 p.m. Let the children walk you through their favorite season highlighted by dance, costumes and live music.


text:
This site is entirely user-supported. See how you can help.
Street View is the best available vantage point looking, if possible, towards the location of the building. In some locations, Street View may not give a view of the actual building, or may not be available at all. Where it is not available, the satellite view is shown instead.
Latitude: 51.4344 / 51°26'3"N
Longitude: -2.1818 / 2°10'54"W
OS Eastings: 387459
OS Northings: 170614
OS Grid: ST874706
Mapcode National: GBR 1RH.16N
Mapcode Global: VH96J.46FQ
Entry Name: Melsome Monument About 6 Metres East South East of Isaac Monument at North East Angle of Churchyard of Church of St Bartholomew
Listing Date: 1 August 1986
Grade: II
Source: Historic England
Source ID: 1021994
English Heritage Legacy ID: 315102
Location: Corsham, Wiltshire, SN13
County: Wiltshire
Civil Parish: Corsham
Built-Up Area: Corsham
Traditional County: Wiltshire
Lieutenancy Area (Ceremonial County): Wiltshire
Church of England Parish: Greater Corsham
Church of England Diocese: Bristol
5/77 Melsome monument about 6m east-
south-east of Isaac monument at
north-east angle of churchyard of
Church of St. Bartholomew
Chest tomb, later C18, ashlar with south side oval plaque with
cherub heads in upper spandrels and ornate floral drop each side.
Fluted baluster corners. Plain fielded north plaque. Moulded base
and cornice with fluted frieze broken forward over centre.
Rosettes in angles of frieze. Inscription on south side to John
Melsome, died 1799.
Listing NGR: ST8745870616
This text is from the original listing, and may not necessarily reflect the current setting of the building.
Other nearby listed buildings


text:
The Rotary Club of West Chester awarded $32,000 in grants to 11 charities from funds raised at the annual Rotary Chili Cook Off in October held in downtown West Chester.
The Arc of Chester County will use its grant to provide educational, occupational and recreational opportunities to people with developmental and intellectual disabilities, preparing them with skills and support for living in the county. Chester County Children's Inc. funds will ;provide underprivileged children and families with basic living expenses needed to keep children in a family environment. Artistic and educational goals of students by devising units related to literature and literacy through music will be provided with funds to Chester County Family Academy. The grant to Community Volunteers in Medicine will provide coordinated, totally free, medical and dental health care to underserved and uninsured low income individuals and families. Funds to the Domestic
Violence Center will go to the Emergency Shelter program to provide safe refuge, food and other supplies to homeless victims and their dependent children. Friends Association funds will provide shelter for children of homeless or near homeless families. Acquiring and maintaining affordable housing for low income citizens, including disabled seniors needing safety modifications to their homes, will be provided by funds to the Housing Partnership of Chester County. Funds to Interfaith Housing Assistance Corp. will help prevent and end homelessness among working single parents with dependent children through financial assistance, social services and mentoring. Maternal and Child Health Consortium funds improve maternal and children's health by accessing health care and education. Funds to provide fresh and nonperishable healthy food to residents will be used by the West Chester Food Cupboard, and funds to the West Chester Public Library will provide education programs for youth through the Teen Summer Reading Camp.
Thirty-one requests for grants were received by the club's Community Philanthropic Committee, totaling more than $150,000. Funds for the grants are raised through the Rotary club's annual Chili Cook Off, held each year in downtown West Chester in October.


text:
Over 97 Pennsylvania residents tried to buy or transfer a gun each hour during the first three months of 2016.
The raw numbers come from the Pennsylvania State Police, whose Quarterly Firearms Purchase Denials report for the Pennsylvania Instant Check System (PICS) shows a total of 311,344 background checks performed during the months January, February, and March. Of these, Penn Live reports that "213,054 background checks [were] for people hoping to obtain a firearm." The other checks were performed on people applying for concealed carry permits, etc.
The figure of 213,054 PICS checks is a significant jump over the 180,938 performed during the same time in 2015; It indicates more than 97 Pennsylvania residents were trying to buy or transfer a gun every hour.
This state-based sample of background checks squares with what have been 11 consecutive months of record breaking background checks at the federal level. Breitbart News previously reported that May, 2015 was the highest May on record for federal background checks, June 2015 the highest June, July 2015 the highest July, etc. This also squares with a CNN Money report that federal background checks were up "36 percent" during the first quarter of 2016 compared to the first quarter of 2015.
AWR Hawkins is the Second Amendment columnist for Breitbart News and political analyst for Armed American Radio. Follow him on Twitter: @AWRHawkins. Reach him directly at firstname.lastname@example.com.


text:
Taking care of natural hair can be a bit of a pain, but it can also be an extremely rewarding process. Finding the right tools to help along your natural hair journey can make it a much less stressful process and give you great hair with very little effort. Many women and men swear by the use of a clarifying shampoo in their routing to make their natural hair much more manageable. But what is the actual role of this shampoo and what should you look for when you are trying to select this shampoo?
The role of this shampoo is to strip everything off of the shaft of the hair and give you a chance to start over. This means removing all of the dirt and buildup, and also getting rid of excess oil as well. This is not a shampoo that should be used with every wash, but if you find that your hair is feeling weighed down, sticky, coated, or even just lifeless once you have washed, it might be a good idea to give it a try. You should however remember that it will get rid of everything on the strand, so it will be harsh if you have dyed your hair before hand.
The shampoo works to get rid of various different things that weigh down the hair, which means you should be prepared for high amount of volume when you are done washing your hair. This is also usually a great time to fully brush or comb out your hair and make sure that you have cleaned your scalp to keep it in the best condition possible. For this reason, you will want to use it on a day or night when you have time to deal with a full hair care regimen and where you can ensure that you can baby your hair for a little while.
After you have used the shampoo you may want to oil your hair, and take extra care with the styles that you use for around 24 hours. This will ensure that the newly exposed hair is kept as healthy as possible. This is a great way to get rid of build-up and ensure that your hair is actually healthy underneath the different products that you are using when you do your hair on a day to day basis.
You should look for a shampoo that has mostly natural ingredients and will want to avoid any shampoos that contain sulfates as those will just promote more buildup on your hair.
If you want to incorporate one of these shampoos into your routine, taking the time to work with your hair afterwards to ensure that it remains healthy is one of the best things that you can do. Regularly clarifying your hair can ensure that you get better growth results and that you avoid hair that gets out of control. It is also a great way to get back your volume and the life of your hair.
Reference: SandraDownie.com


text:
In need of some party favor ideas? Want to know how to make party favors for a bridal shower, baby shower, or birthday party. Party favors are all the rage now. They come in all shapes, sizes, colours, themes and of course price range. You can make your own unique party favors and cut the costs.
Making your own unique party favors to compliment your own personal taste is a way to thank your guests for sharing your special day.
Before you begin, think about:
Your party theme.
A message you want to convey.
The season, spring, summer, autumn, winter and does it play a role in the party.
The mood of the party, casual, formal or just a get-together.
How much you would like to spend.
Once you have decided then think about the kind of favor you would like. Above all if you are making them yourself, the favor needs to be quite simple. Especially important for large numbers at a wedding.
Bridal Shower Favors
Bridal shower favor ideas including organza bags, bubbles and shower cookies.
Baby Shower Favors
Baby shower favor ideas including chocolate lollipops, candy wrappers and cookies.
Kids Party Favors
Ideas for kids party favors for princess, pirate, dog, racing car party themse and more.
Party Favor Ideas to Creating Invitations