text:
<?php

namespace Graze\DataValidator\Test\Adapter;

use Graze\DataValidator\Adapter\RespectValidationAdapter;
use InvalidArgumentException;
use Mockery;
use PHPUnit_Framework_TestCase;
use Respect\Validation\Validatable as RespectValidatable;
use Respect\Validation\Validator;
use stdClass;
use Symfony\Component\Validator\Validator\ValidatorInterface as SymfonyValidatorInterface;
use Zend\Validator\ValidatorInterface as ZendValidatorInterface;

/**
 * @author Samuel Parkinson <sam@graze.com>
 */
class RespectValidationAdapterTest extends PHPUnit_Framework_TestCase
{
    public function testShouldInitalize()
    {
        $respectValidator = Mockery::mock(RespectValidatable::class);
        $respectValidator->shouldReceive('setName');

        $validator = new RespectValidationAdapter('respect_validator', $respectValidator);

        assertThat($validator, is(callableValue()));
    }

    /**
     * @dataProvider invalidNameProvider
     * @expectedException InvalidArgumentException
     * @param string $invalidName
     */
    public function testConstructorThrowsOnInvalidNameParameters($invalidName)
    {
        new RespectValidationAdapter($invalidName, Mockery::mock(RespectValidatable::class));
    }

    /**
     * @return array
     */
    public function invalidNameProvider()
    {
        return [[null], [1], [[]], [0.0], [true], [new stdClass()]];
    }

    /**
     * @dataProvider validNameProvider
     * @param string $validName
     */
    public function testConstructorAcceptsValidNameParameters($validName)
    {
        $respectValidator = Mockery::mock(RespectValidatable::class);
        $respectValidator->shouldReceive('setName');

        $validator = new RespectValidationAdapter($validName, $respectValidator);

        assertThat($validator, is(callableValue()));
    }

    /**
     * @return string[][]
     */
    public function validNameProvider()
    {
        return [[''], ['foo'], ['foo_bar'], ['foo bar']];
    }

    public function testShouldPassThroughValidatorName()
    {
        $name = 'foo';

        $respectValidator = Mockery::mock(RespectValidatable::class);
        $respectValidator->shouldReceive('setName')->once()->with($name);
        $respectValidator->shouldReceive('getName')->once()->andReturn($name);
        $respectValidator->shouldReceive('validate')->once()->andReturn(false);

        $validator = new RespectValidationAdapter($name, $respectValidator);

        assertThat(
            'The respect validation adapter should return the validator name on failed validations.',
            $validator([]),
            is($name)
        );
    }

    public function testShouldWorkWithZendValidators()
    {
        $zendValidator = Mockery::mock(ZendValidatorInterface::class);
        $zendValidator->shouldReceive('isValid')->once()->andReturn(false);

        $respectValidator = Validator::key('test', Validator::zend($zendValidator));

        $validator = new RespectValidationAdapter('failed_validator', $respectValidator);

        assertThat(
            'The respect validation adapter should work with Respects Zend validation rule.',
            $validator(['test' => 'foo']),
            is('failed_validator')
        );
    }

    public function testShouldWorkWithSymfonyValidators()
    {
        $respectValidator = Validator::key('test', Validator::sf('Time'));

        $validator = new RespectValidationAdapter('failed_validator', $respectValidator);

        assertThat(
            'The respect validation adapter should work with Respects Symfony validation rule.',
            $validator(['test' => 'Not a time.']),
            is('failed_validator')
        );
    }
}

redpajama_set_name: RedPajamaGithub


Product prices and availability are accurate as of 2019-04-15 00:36:55 UTC and are subject to change. Any price and availability information displayed on http://www.amazon.com/ at the time of purchase will apply to the purchase of this product.
Spy Digital Cameras are happy to offer the brilliant Hidden Camera Spy Camera Book Mini Cam HD 1080P Covert Nanny Camera 10000mAh Battery Night Vision Motion Detection Record Home Security (2018 Upgraded Version).
With so many available right now, it is wise to have a make you can trust. The Hidden Camera Spy Camera Book Mini Cam HD 1080P Covert Nanny Camera 10000mAh Battery Night Vision Motion Detection Record Home Security (2018 Upgraded Version) is certainly that and will be a excellent acquisition.
For this great price, the Hidden Camera Spy Camera Book Mini Cam HD 1080P Covert Nanny Camera 10000mAh Battery Night Vision Motion Detection Record Home Security (2018 Upgraded Version) is highly recommended and is a popular choice amongst lots of people. Facamword have added some great touches and this equals good value.
If you are seeking a covert electronic camera for house safety and security as well as workplace surveillance, this manual spy electronic camera is ideal option. This little webcam laptop reports HD 1080P video clips as well as may be movement triggered. When you open guide Spy Video camera you unveil concealed on the side are the managements, merely move the change to begin a recording.It's thus very easy to setup.
Measurements: 8.3 x 5.9 x 1.6" (21 x 15 x 4 cm).
Hidden Book Camera: This spy camera hidden in a book is a powerful 1080P camera that's perfect for setting up on a bookshelf or an entertainment center. It's suitable for home security, office monitoring, baby monitor. Easy to setup for anyone. Built-in 10000mAh Rechargeable Battery: This covert spy camera can continuous record 30 hours with no IR, or 9-10 hours with IR on.HD resolution: 1920 x 1080 with AVI format. Motion Detection & Looping Record: Only switch to "MD" button, this mini secret nanny cam will record videos once the motion is activated.It supports max 32GB Micro SD card which stores 15 hours of 1080P video.Mealtime,it also can support looping record. Night Vision Function: Built-in high-powered invisible infrared light which help see better in low light situations even if at darkness.Videos can be time and date stamped to help secure important evidence. WHAT YOU GET: Hidden Book Camera, Micro USB cable, Card Reader, Reset Pin, User Manual and 24/7 online customer service support; 1 Year Guarantee; Lifetime Technology Support.


Back in the good old days when schools believed cooking is actually a life skill, and we had classes called "Home Ec" we learned to make cookies called "Raggedy Robins." Miss Mosser was my Home Ec teacher and I owe her a lot, actually. She was a very petite young teacher with an older personality. She was fun, too. She instilled good kitchen habits, like cleaning the kitchen after the dishes were done, and making sure even the sink was dry. She also knew that the days when we made tasty treats there might be guys hanging around the door and she was a good sport about it.
These are exceedingly easy and a good call for a sweet treat when it's too hot to heat up the oven, since they are truly no-bake cookies. I recently got the notion that we could make a better version with just a few tweaks.
I have no idea about the origin of the name or the cookie recipe itself. If you Google the name Raggedy Robins you'll find an unlimited number of sites offering the same recipe with no attribution.
Here's an improved version. I decreased the sugar by 1/4 C, used dairy-free ingredients, added flax seed for minerals, fiber.
The idea here is improve on this super easy cookie by adding some nutrition to it, and upgrading the ingredients. This is my favorite vanilla, it's super rich and the company goes beyond "fair trade" to improve the economic opportunities for Madagascar.
Madécasse Vanilla - extracts are crafted using the "two-fold" extraction method resulting in a concentrated, deep vanilla. It comes from Madagascar where 85% of the plant and animal life on Madegascar exists no where else on earth and only 10% of the original forest still exists. Madécasse is working to bring delicious products to market while preserving the local economy and biodiversity.
In a heavy saucepan, over medium heat, melt soy milk, sugar, cocoa, and margarine. Bring mixture to a boil and stirring a few times to combine.
In a medium bowl, combine oats, crisp rice cereal, ground flax seed, coconut flakes, peanuts. Mix to combine.
When the cocoa-sugar mixture has boiled, pull the pot off the heat, dump in your peanut butter, salt, vanilla, golden syrup, and whisk it to smooth it out.
Pour mixture over dry ingredients and stir to combine.
Use a small ice cream/cookie scoop to drop balls onto parchment. Refrigerate for at least an hour.
Better ingredients and better technique made for better cookies. Thanks Miss Mosser!
Can't tell you how many this makes because they disappear as they're chilling in the fridge and so soon after, I've never rememberd to count the full batch. These are also good ones to make with kids, just be careful with the hot cocoa-sugar mixture. Otherwise pretty simple.


My newest Coffee Bean and Tea Leaf coffee mug is just perfect!
So jealous that you grew up on coffee bean and in and out burger!!
I am moving a year from now, I decided. Also, yesterday, I decided California is officially on the list of possible relocation spots!
a trip down memory lane... 1 year later!


[…] lately, success hasn't come easily for Vivid and its upmarket rivals. Three years ago, 80 percent of Vivid's income came from DVD sales. Today, Hirsch puts that number at about 30 percent, with the rest coming from a fragmented range of sources: subscriptions to Vivid.com, pay-per-view TV, internet video-on-demand, merchandising, and mobile-phone deals. Domestic DVD sales are down 35 percent this year alone. His revenue is flat, he says, but that's mainly because he's been cutting costs. Within five years, he claims, DVD sales will be close to zero.


text:
Ковале́нківка — село в Україні, у Кобеляцькій міській громаді Полтавського району Полтавської області. Населення становить 283 осіб.

Географія
Село Коваленківка знаходиться між селами Вібли та Пилипенки (Кременчуцький район) (1 км). Селом протікає пересихаючий струмок з загатою.

Посилання
 Погода в селі Коваленківка

Села Полтавської області
Населені пункти Полтавського району

redpajama_set_name: RedPajamaWikipedia


Do you want to continue your professional music training in an intensive, personalized environment?
The coeducational Master of Music in Performance at Converse College prepares men and women for doctoral study and successful musical careers.
Why Master of Music in Performance at Converse?
Our faculty are professional artists who have collectively performed in 48 states and in 47 countries.
Our reputation has attracted students from Ireland, Italy, Egypt, Sri Lanka, Panama, El Salvador, Ecuador, and beyond.
We are the first women's college in the world to be named an all-Steinway school.
Our graduates can be found on Broadway, in major symphony orchestras, opera houses, regional and municipal symphonies, jazz groups, chamber orchestras, colleges, universities and conservatories throughout the US and around the world.
All classes and private lessons are taught by Petrie faculty members. The low student/teacher ratio guarantees close connections and collaborations. The main focus is individual performance instruction, but the program also emphasizes music theory and history/literature, pedagogy and ensemble participation. Students attend weekly studio seminars conducted by their primary teachers and have the opportunity to perform in master classes offered by distinguished visiting artists.
Petrie school graduate students also have the opportunity to gain valuable teaching experience through Converse's Lawson Academy of the Arts, which offers lessons for students of all ages, from preschoolers to adults.
Visit the graduate catalog for current course requirements for this degree.
An apprentice program with the Spartanburg Philharmonic Orchestra affords further professional development for qualified students who pass an additional audition process.
The Petrie School of Music offers a number of graduate assistantships each year. Assistantships carry a waiver of College tuition and may also carry a stipend. Each assistantship carries specific duties and responsibilities. Learn more and apply.


This is the view from our upper porch as the Autumn progressed of some deciduous trees as they dropped their leaves.
Blooms of Hosta, Coneflower, Wild Sunflower, Common Day lily and Japanese lanterns along with the seedheads of the spring blooming Columbine.
Tansy, Wild Sunflower, Day lily and something I bought as a background because the Holly Hocks were weeded out this Spring.
Japanese Lanterns and Wild Sunflowers.
Cassie, Kristine and Aunt Mary head down the street before the parade.
What would a 4th of July parade be without cub scouts and crumb snatchers collecting candy in the streets tossed by parade participants? It is always enough to keep a sugar buzz going into the next week.
Here is our contribution to the parade route. We fielded 20 feet of viewers.
My favorite part of the parade was the Race Rockettes. They are a senior precision drill team with none their equal.
The sky color is off because the float was in the shadows. Somehow Brian was talked into being part of this cruise ship advertisement. I don't think it took much, as he is civic minded.
The local lumber companies drove their logging trucks in the parade.


A troubled man enters a dusky park before sunset. A young woman follows, hidden in shadow. Both have returned to the park to take back something the past has stolen from them, to make right six long years of suffering, and to find justice or perhaps redemption—or maybe they'll settle for some old-fashioned revenge.
Jason Parent's They Feed has been on my radar for quite some time. A few months ago I snagged a galley of it. Things got in the way, but I finally found the time to sit down and straight up devour this title.
Set in Galveston National Park in Kansas, They Feed is the terrifying story of a what goes bump in the night. When a few groups, for completely different reasons, end up stranded in the dark, they quickly find themselves pitted against an unknown enemy that seems almost invincible, and every bit vicious. Can they survive until sunrise?
Plotwise, the book is pretty straightforward. It does switch perspectives, but thankfully it doesn't alternate between past and present. This made the story flow really well, alongside perfect pacing on Parent's part. There were also times I found my heart racing as I hoped for certain outcomes, and having that edge-of-your-seat thrill is one of my favorite feelings.
This is the first book I've read by Jason Parent, but it definitely won't be the last. Let me put it this way: I'm even less likely to go camping now than I would have been last week. I'd like to thank NetGalley and Sinister Grin Press for providing me with a copy of this book in exchange for an honest review.


text:
Q: How do I background correct an Illumina eset without using lumiB? I'm doing some work with publicly available microarray data sets that I've downloaded from GEO. I'm having some trouble using the lumi package to process Illumina BeadArray data.
Normally when using the lumi package you would use lumiR to convert your data to a lumiBatch object, which you could then use lumiB on to background correct. lumiR requires bead standard errors in order to create a lumiBatch object, in their absence it creates an expression set. Most of lumi's functions will work on expression sets, but not lumiB. The data sets that I've downloaded only have mean intensity values and in some cases an associated P-value. Therefore I can't turn my data into lumiBatch object and thus can't background correct with lumiB.
I would really appreciate any suggestions on how to background correct the expression sets. Apologies if I've phrased this unhelpfully or left out important information, I'm very new to both R and asking questions on a forum like this.
Thanks,
Emma
This is how I've been using lumiR and how I would use lumiB if it was a lumiBatch object:
    #Import data and convert to lumiBatch/eset object
    GSEXXX.lumi <- lumiR("GSEXXX_Raw_Data.txt",lib.mapping="lumiHumanIDMapping")

    #Using lumiB to background correct a lumiBatch object
    GSEXXX.bgcorrected <- lumiB(GSEXXX.lumi,method=c('bgAdjust','forcePositive'))

redpajama_set_name: RedPajamaStackExchange


I don't know about you but my children love small collectable toys. Perhaps it's their size, or the fact they can buy them with their pocket money, but my 4 year old was delighted to hear that Num Noms Series 2 have arrived! Earlier this year we were sent some Num Noms Series 1 which she loves, so we were excited to hear that they are back with even more tasty flavours!
We received 2 x Num Noms Mystery Blinds Packs (SRP £2.99) as well as a Num Noms Deluxe Pack. Each Mystery Blinds Pack includes a Num and a surprised flavoured lip-gloss or stamps, in a super cool yoghurt styled mystery pot. Blind bags are always really popular with my children and we finally got a stamper! The Num Noms Deluxe Packs (SRP £14.99) includes six Nums, two motorised Noms plus a food container, accessory, and collector's menu. In addition there's a mystery Num in each pack!
Uniquely scented, each Num and Nom character is full of surprises. Nums are the outer, soft squishy, hollow characters that nestle on top of Noms, which are either fun scented stamps, motorized, lovely lip glosses or a funky eraser. With over 5,000 mix and match combinations, children can play chef and create wacky combos. How about a blueberry, banana, pancake – yum! Or some Wasabi ice cream – yuck! Take a look at this little video we put together.


text:
Carl Pavano Autographed Card
It was essentially a no-win for Carl Pavano, one of three players who were sent to the Montréal Expos (with Tony Amas Jr.) in the trade that sent Pedro Martinez to the Boston Red Sox to break the Curse Of The Bambino.
Pavano even took on Martinez' #45 uniform, which makes him the third to wear that number in my Expos Numbers Project with card #481 from Topps' 2001 Series 1 (50th Anniversary) set:
It shows him wearing the Expos' grey (away) uniform, and he signed it in liquid-ink pen on one of the last Expos games at the Stade Olympique in September 2004, while he was with the Florida Marlins.
Pavano stood at 6'5" and weighed 230 pounds, which gave him a good sinker-ball and fast sliders. He had an up-and-down career that saw him as the lead starter of some pitching rotations (good for some 200 innings per summer) but also had some down years following injuries, and his salary history reads like a bad dot-com shares value chart from the late 90s, hovering back and forth between $3M per year to 5 to 1.9 to 8.5...
And it wasn't just "regular pitching injuries" like the elbow tendinitis in his rookie season in Montréal, or the bone fragments in his elbow in his sophomore campaign, tendinitis in a rotator cuff, back problems, a humerus fracture, Tommy John surgery, more bone chips in his elbow...
No, there was also the bruised buttocks, the Porsche crash, and the snow-shoveling accident that ruptured his spleen and nearly killed him.
That doesn't mean we should forget his 2003 World Series win with the Marlins (against the New York Yankees), nor his 2004 All-Star Game nod, nor the time he led the American League while playing for the Minnesota Twins in both complete games (7) and shutouts (2).
It's just that he didn't meet the expectations that had been set upon him. Unfairly.
Labels: 2001, Autograph, Baseball, Card, Carl Pavano, In Person, MLB, Montréal Expos, National League, Series 1, Topps
Jordan Eberle & Devan Dubnyk Jersey Card
Justin Schultz Jersey Card
René Corbet Autographed Card
Shane Doan Autographed Card
David Perron Jersey Card
Griffin Reinhart Jersey Card
Olaf Kolzig Autographed Card
Phil Housley: Two Autographed Cards
Ed Westfall Autographed Card
Simon Després Jersey Card
Henry Mateo Autographed Card
Steve Bernier: Two Autographed Cards
Luke Glendening Jersey Card
Brian Barnes: Two Autographed Cards
Matt D'Agostini Autographed Card
P.K. Subban Dual Jersey Card
2016 World Cup Figurines Review

redpajama_set_name: RedPajamaCommonCrawl


Hello all, and welcome to the 2018 edition of the allspark exercise thread. Where the community meets to share it's goals, intents and methods for living a healthier, longer life.
Now, for those whom have been paying attention: we did not meet out community goal last year. We came close, but didn't hit it. However, we DID add aspects to the rote so I kinda feel it balances out. With that in mind, a normal exercise routine would build upon what we've accomplished and add more. But we have to hit the goal before we can exceed it. So this is year is once again 5000 all round. I know we can do better this year, and I hope more allsparkers will choose to join us.
Fero: YOU CAN DO IT! The real trick is portion control, being aware of what you are eating and how much of it.
Is the 5000 reps for the upper body / core?
Where do leg day reps fit in? Core?
Edit: also the company I work for is doing a fit for 2018 series I produced. It has a Christian slant since I work for a ministry but if anyone would like a link to it just let me know. Were releasing one segment each Monday this month.
Edit 2: okay sorry I realized that I dont understand how core works to hit the 5000. I held a plank the other day for 2 minutes straight. Does that count towards the number?
Also feeling guilty since Ive been doing a daily workout routine since mid September and didnt take part in this.
Edited by Kup, 01 January 2018 - 10:33 AM.
You should feel guilty. We could have used your help to get to 5000 miles last year. MORE TO THE POINT: if you aren't here we can't cheer you on and support you.
Core and upper body are generally counted by reps regardless of the exercise. So while 2 minutes planking is impressive (and dude, it is.) it's still just one rep. Yes, 5000 for everything right now, and depending on if/when we hit goals, we move the goalposts. By all means: share exercise videos! One of the worst things amateurs and enthusiasts can do is hurt themselves trying because there is no one and nothing there to correct bad form and posture.
Speaking of: Hey DARTH! Think you can post those exercise pages again like you did last year? You know, the batman, the lannister, those if you still got them?
Also its not likely my miles would have made much of a difference. I didn't run as much last year, spending Jan to June and Sept to Dec on lots of strength training.
Just so I make sure I'm doing this right: 225 is 25 reps x 9 sets of chest press.
Edited by Kup, 01 January 2018 - 11:40 AM.
My goal is just to stay more active. Personal goals, 1000 miles biking (887 for 2017) and 125 miles running (107 2017).
You are not only doing it absolutely right, that's hugging inspiring right there.
So this is my 2016 vs 2017 miles, steps, etc. I lost my Garmin watch for a bit and I dont always use Garmin when on my cycle ops using Zwift or treadmills. Strava said the 800 some miles for cycling.
Well to be clear, what I've been doing all year has been high rep, low weight. Initially, I felt like I was cheating, but I can say this: I'm far, far trimmer and look better with my shirt off than I ever have before. If I wasn't so self conscious about my physique still and publishing a shirtless photo on a public forum, I'd show how I looked on 1/2014 compared to today. So if anyone is struggling, I'd recommend you give serious consideration to high rep, low weight routines. I do everything at home.
I've used 2-20 pound dumbbells for most chest press/bicep, shoulder press sets. Usually, I try to get in 25-30 reps per set, every so often (if its a chest press only day) I'll do one set of 50 to start and work my way down (maybe my next set is 40, then 35, etc).
For other exercises, like shoulder cuff stuff, butterfly, back, I've used 2-5 pound dumbbells. The exception is some specific moves I do with a 15 pound kettlebell.
Between each set, I walk for 200 steps (95% of the time, sometimes, if its a full upper body day and I'm needing to get the last few exercises in quickly I'll do only 50 steps).
A really beneficial thing I've found is to calculate the total weight I've lifted that day. While I don't always do it, on days where I'm aiming to push myself a bit more I will. I just take the total number of reps x whatever the weights I used were. My record was 13,000 pound day on Dec 13. I can really only set records on chest press days, so doing the math that was probably 325 reps x 40 pounds (2-20 pound dumb bells).
Went for run. 39 but feels like 50. My knees and hands agree with the 39 degree part. Lol. Took a walk for a cool down when done. I find as the older I get the more and more helpful the cooldown walks get. I wanted to go mountain bike today but obviously that didnt happen. I had this crazy idea though: Run a mile everyday.
Alright, its go time again! Gonna be in a wedding party July 20th.
I must use this vain and trivial event. Harness the power of superficiality... and actually use my treadmill!
This is what i attempt to do on strength days. If I don't do this, 3 sets of 10. If you look up "Body For Life" it's a great system. They set up theirs as sets of 12, 10, 8, 6, 12 then next exercise.
Hahaha....and hope the skinny cheerleader is now fat divorced and smokes?
This is more for myself to look back on. Current weight: 243lbs.
Oh dont get me wrong, its the same for me. But thats not exactly been a great motivator for me the past year.
The toddler doesnt help, though!
I have a 4 month old...Its hard to get away sometimes.
Took a long walk for supplies in very cold weather.
I wasn't really sure last year and I'm not sure this year what all those count for. Lol.
Also, here is my new goal for 2018: 2018km between running, biking, hiking. Comes out to 1253.927 miles.


Mikhail Lennikov is a Russian who speaks Japanese.
Jun. 15, 2009 7:00 p.m.
He was recruited by the KGB in 1982 to do translation for the powerful Russian secret police.
He quit in 1988, three years before the dissolution of the Soviet Union.
Twelve years ago, he came to Canada with his wife and son on a student visa and has been living in Burnaby British Columbia ever since.
His son recently graduated from a Burnaby high school.
Section 34 (1) of the Immigration and Refugee Protection Act makes former enemy spies "inadmissible" to Canada. The next line however empowers the minister of public safety to cancel that "inadmissibility" if the person is no threat to Canada.
Lennikov is no threat to Canada.
"Public opinion is very clearly in favour of the Lennikovs," said Peter Julian, the NDP MP for Burnaby-New Westminster.
Nevertheless, Lennikov has been ordered deported and a Federal Court has rejected pleas from his lawyers to suspend the deportation.
Fearful that Canada Border Services Agency officials might detain him in advance of his June 3 deportation date, Lennikov accepted an offer of sanctuary at First Lutheran Church in East Vancouver where he and his family have been members of the congregation.
All he wants is for the threat of deportation to be removed.
"I cannot ask for permanent residency because there are issues that need to be addressed." But he needs time to pursue whatever other legal options he may have and is prepared to be in sanctuary, unable to leave the church building, for years if necessary.
The pastor of the church, Richard Hergesheimer, said that the church council has been planning this for months and have built a room for Lennikov to live in and are ready for the long haul. Lennikov feels that the voluntary prison is still a better option than being forcibly removed to Russia, likely never able to leave that country again and his wife, Irina, and son, Dmitri, unable to visit him for fear of not being able to return to Canada.
There is a long tradition of sanctuary in Canada. There is also a long tradition of government fearing that churches will create a back door through which the unwanted can sneak into Canada. That is not going to happen. A little common sense is in order.
Churches are not hiding places. Authorities know where those claiming shelter are staying and can detain them if they step off church grounds. Taking sanctuary is akin to house arrest so where is the danger to national security?
The ancient practice of granting asylum-seekers refuge was recognized by English law from the 4th to the 17th century.
Although authorities today continue to respect the ancient tradition, right of sanctuary is not a legal right in Canada.
Only tradition prohibits officials from entering a church to arrest people.
So why would any church consider risking civil disobedience?
Because they have a moral responsibility, in certain cases involving those facing deportation, to provoke sober second thought from immigration officials.
No church is going to allow their property to shield those who are trying to avoid their penalty for heinous crimes. The church, however, may have reason to believe that errors have occurred. Systems can be flawed.
When Christians believe that justice is at risk because of a flawed system, a fair resolution is all that is asked.
Since 1989, the United Church of Canada has offered safe haven to 13 individuals, of which 12 cases were resolved without controversy.
Congregations attempting to uphold the traditions of justice and compassion, hallmarks of Canadian governance, through the venerable custom of sanctuary, pose no threat to national security.
To suggest otherwise is to dismantle a moral counterweight to the injustices that even the best bureaucracy can occasionally perpetrate.
Bob Ripley is a United Church minister in London, Ont.


Show them you are the #1 Kansas City Chiefs fan with this tri-blend V-neck tee 5th & Ocean by New Era! This fashionable shirt features an eye-catching printed logo, tri-blend fabric, and side slits at the hem so you can cheer on your team in style. This tee makes an ideal pairing for your favorite Kansas City Chiefs fashion accessories. NFL Shop is your source for officially licensed Kansas City Chiefs gear.


text:
Jessica Wallace, MA, ATC, LAT
Health and Movement Science Major Program Director Faculty
Jessica Wallace, MA, ATC, LAT, is a Health and Movement Science Major Program Director faculty with the Health and Movement Science Division at Graceland University. She teaches primarily in the health and physical education concentrations. Jessica began her employment at the University in 2010 as an instructor and assistant athletic trainer. Her educational background includes a Bachelor of Science in Physical Education and Health from Northwest Missouri State University and a Master of Arts in Health, Physical Education and Recreation with an emphasis in Athletic Training from University of Nebraska - Omaha. Jessica is a candidate to complete her Doctorate in Health Education from A.T. Still University in December 2018. She is a first generation college student in her family.
Jessica and her husband, Derek are both Missouri natives (Jessica from small town NWMO and Derek from a suburb of St. Louis) and moved to Lamoni, Iowa, in 2010. They keep very busy with their three young children; son, Nolan, and twin daughters, Sylvia and Tennessee. Hobbies include family bike rides and playing outdoors, cooking, and growing her Tupperware business.
Jessica's favorite thing about teaching at Graceland is getting to know her students and watching them grow into the future professionals they become through their college years. Celebrating in the students' accomplishments is a proud moment, and she feels fortunate to have the opportunity to witness and be a part of their success.


text:
You are currently browsing the tag archive for the 'Court' tag.
April 26, 2009 in Court | Tags: Black Money, Corruption, Court, india, Law | by Aditya | 20 comments
With close to 70 lakh crores ( 70,000,00,00,00,000 ) of unaccounted public money stashed by politicians, bureaucrats and the rich in swiss banks and the like abroad, how does one get hold of that money ? The answer probably could be the latest writ petition in the Supreme Court wherein the petitioners have asked the Court to interfere in compelling the government to take actions to get the money back to India. While it is a noble cause, I opine that the Supreme Court interfering in this may not work.
To understand, let's take the case of Germany and LGT Bank of Liechtenstein. In January 2006, the German Government offered 5 million Euros to a bank officer of LGT bank asking him to give out confidential data of the clients and accounts of LGT bank. After a successful transaction in this regard, the German Government then went on to catch of the tax evasionists responsible and started prosecuting them. The amount of fraud is said to have exceeded 5 billion Euros now.
In its aftermath, the bank officer has been offered asylum in Germany and the German Government is now putting pressure over the European Union and the OECD to take measures into compelling these banks to be more transparent. In times of recession, this may be fruitful, but nevertheless, none of these banks can be compelled to give up the money that they own. (See timeline and EU Actions here)
Coming back to India, if we are to create a parallel to the German situation, the following issues would arise;
– Can the Indian Government pay somebody to do an illegal act in another country ?
– Going further, can the Court issue a writ of Mandamus to ask the Government to do such an illegal act?
– Even if the above can take place, there is no way of recovering the money but only to use the data to prosecute those for tax evasion. Neither the executive or the judiciary can do otherwise.
While one possible solution could be that while prosecuting these tax evasionists/ those holding up the money in these accounts, we offer them an immunity as an incentive if they get back the money; this could possibly lead to litigation and a replay of the Bearer Bonds case (RK Garg v. Union of India , 1979 SC). In the sense that, Indians charged for evasion in India would allege that this is arbitrary, unfair and against the mandate of Article 14 and is creating a difference between those stashing money abroad and evading income tax and those being prosecuting for evading income tax in India.
This is a complicated issue and I don't think the Court's can and should interfere. In the debates conducted, the speakers did come together on the fact that the Constitution does authorize the Court to interfere and 'make law' but they still agreed that it must keep out of policy matters and things it expressly cannot do and implement. It would then be interesting to see the way the Court handles this PIL.
On Encounter Deaths
March 24, 2009 in Civil liberties, Constitution, Court, Human Rights, Killings | Tags: Court, Encounter, Human Rights, india, Law, Naxalite | by Aditya | 2 comments
"In a rule of law society operating under a constitutional order, either deterrent or preemptive executive action against prohibited human conduct including terrorist acts must be pursued only within the matrix of legislatively spelt out substantive and procedural rules of engagement and sanction. The executive, whether political or the professional has no legitimate authority to act in derogation, independent of or beyond the sanction of law. This is the price civil society and all institutions of government willingly pay for a constitutional way of life."
Perhaps one of the most interesting and profound judgments off late has been that of Andhra Pradesh Civil Liberties Committee v. Govt. of AP, where the Andhra Pradesh High Court was deciding whether it is obligatory to file a First Information Report against the police officers who may have committed 'crimes' while taking part in an encounter. The judgment has come at a time when the country is grappling under terrorism, naxal 'disorder' and acts allegedly threatening the sovereignty of the state.
To elucidate the issue; when the police forces take part in an encounter that lead to the killing of persons, it was not possible to lodge or move ahead on filing an FIR by the victim. The apparent reason being because such acts were committed in exercise of the right of private defense and the executive then, in its discretion had the authority to dismiss the complaint. Furthermore, the state claimed immunity from disclosing the name of the police officers involved in the encounter operation thus making it difficult for an investigation to move ahead. These were the issues that the five judge bench of the Andhra Pradesh High Court was called upon to decide.
"In this case, the Court [was] called upon to identify the balance between the right to life of presumptive serious offenders of law and order and of the equilibrium of civil society; and the sovereign obligation of the State to maintain such law and order equilibrium, within the context of constitutional injunctions and legislative authority."
In its ruling the Court held that it is obligatory on the police officer in charge of a police station to record an FIR under Section 154 even if it be committed against a police officer. In recording the FIR, the police officer cannot exercise any discretion in terms of the whether the offence had been committed or the complaint has any merit. This shall be the job of the judiciary and the existence of the claim of self defense is an extremely legal question that has to be determined only by a judicial process.
The judgment also delves upon certain essential principles of criminal law theory that would be useful for any law student.
In effect then, the Court negated an idea of immunity that could have been given to police officers that may have committed crimes in the guise of encounter deaths. Fake encounter killings are not inane to the Indian situation. Places like Kashmir, Gujarat, Punjab, Maharashtra and Andhra Pradesh was witnessed numerous instances where such encounters have occurred and this judgment of the Court re-iterates on the preservation of the rule of law and not giving a free hand to the police to kill.
This landmark judgment then came as a blow to the state government and the Centre who wanted some powers to check actions threatening the sovereignty of the state. When the case was appealed to the Supreme Court, the Court ordered a stay on the operation of the judgment and has scheduled a hearing soon.
Lord Cooke of Thorndon stated that his admiration for the Indian Courts (mainly the Supreme Court) in its ordinary work, particularly in the field of human rights, is no whit abated. He cited the judgment of Anand J. in DK Basu v. State of West Bengal to justify his statement. It takes a lot of courage for a Court of law to rule against a state policy and stand up for the protection of human rights. Though at times I have expressed by disgust for the way our judicial system works, these are solitary times when I wish I could retract my statement. Landmark decisions indeed !
Readers may also read Law and Other Things on the case and developments therein.
Age Bar at Law School
March 13, 2009 in Law School | Tags: Court, Law School | by Aditya | 6 comments
The age- bar at law schools.
A PIL has been filed in the Bombay High Court challenging the Bar Council of India Rule (Rule 28) that states that no person shall be admitted to a 5 year LLB course if he or she is above the age of 20 and to a 3 year LLB course if above the age of 30.
Yasmin Tavaria, the petitioner who enrolled for a 3 year LLB course at the age of 42 and was denied admission states,
"commitment to the profession and age can never be inversely related to each other and that the age of a person has no bearing on the degree of commitment with which he or she would pursue a profession."
IIM's and other professional institutions are doing away with the age bar; perhaps it is time that law schools do away with them too.
Pay the Judges
February 13, 2009 in Court, Law | Tags: Court, india, Law | by Aditya | Leave a comment
About a month ago, the Centre decided to increase the salaries of High Court and Supreme Court judges. A High Court judge now gets 80,000 Rs, the Chief Justice of the High Court 90,000 Rs. and Supreme Court Judges getting 90, 000 Rs and teh CJI a salary of Rs 1 Lakh.
Amidst this the All India Judges Association has now filerda petition in the Supreme Court asking that their salaries be revised too. This is based on certain committee reports.
I would be a little harsh in my words now but the judiciary does not have any right in the policy decisions of the Government and cannot interefer and ask it to do something in that area. We have ratios to the point stating that the judiciary has no control over the purse of the Government and cannot make any decision to that effect ( Asif v. State of J & K ).
It is then surprising that the Supreme Court allowed this petition to stand and asked the Centre to submit a detailed response as to why it hasnt affected the same for other judges.
News Clip here.


text:
Q: Zygote unable to obtain gradient: Mutating arrays is not supported By looking at some Flux examples, I cobbled together this logistic predictor. However, when evaluating the gradients, I get an error, Mutating arrays is not supported. I've tried to make loss and predict much more concise, even tried to make loss and predict into a single line.
How can I get the gradient for this predictor?
Error:
Mutating arrays is not supported

Stacktrace:
 [1] error(::String) at ./error.jl:33
 [2] (::Zygote.var"#459#460")(::Nothing) at /Users/john/.julia/packages/Zygote/pmW1K/src/lib/array.jl:67
 [3] (::Zygote.var"#1009#back#461"{Zygote.var"#459#460"})(::Nothing) at /Users/john/.julia/packages/ZygoteRules/OjfTt/src/adjoint.jl:59
 [4] _typed_hcat at ./abstractarray.jl:1335 [inlined]
 [5] (::typeof(∂(_typed_hcat)))(::Array{Float64,2}) at /Users/john/.julia/packages/Zygote/pmW1K/src/compiler/interface2.jl:0
 [6] reduce at ./abstractarray.jl:1377 [inlined]
 [7] (::typeof(∂(reduce)))(::Array{Float64,2}) at /Users/john/.julia/packages/Zygote/pmW1K/src/compiler/interface2.jl:0
 [8] predict at ./In[9]:2 [inlined]
 [9] (::typeof(∂(predict)))(::LinearAlgebra.Adjoint{Float64,Array{Float64,2}}) at /Users/john/.julia/packages/Zygote/pmW1K/src/compiler/interface2.jl:0
 [10] loss at ./In[10]:2 [inlined]
 [11] (::typeof(∂(loss)))(::Float64) at /Users/john/.julia/packages/Zygote/pmW1K/src/compiler/interface2.jl:0
 [12] #9 at ./In[11]:1 [inlined]
 [13] (::typeof(∂(#9)))(::Float64) at /Users/john/.julia/packages/Zygote/pmW1K/src/compiler/interface2.jl:0
 [14] (::Zygote.var"#50#51"{Zygote.Params,Zygote.Context,typeof(∂(#9))})(::Float64) at /Users/john/.julia/packages/Zygote/pmW1K/src/compiler/interface.jl:177
 [15] gradient(::Function, ::Zygote.Params) at /Users/john/.julia/packages/Zygote/pmW1K/src/compiler/interface.jl:54
 [16] top-level scope at In[11]:1

Code:
import Flux
import Flux.NNlib
import Zygote
import Parameters

nsamples = 4
nfeats = 5
nlabels = 3
X = rand(nsamples,nfeats)
Y = rand(nsamples,nlabels)
W = rand(nlabels,nfeats)
b = rand(nlabels)

function predict(x)
    return NNlib.σ.( reduce(hcat,(map(i -> (x[i,:]'*W')' + b,1:nsamples))) )
end

function loss(x,y)
    yhat = predict(x)'
    return sum((y - yhat).^2)
end
gs = Flux.gradient(() -> loss(X,Y), Flux.params(W,b))

Shorter loss function (gets the same error):
function lossShort(x,y)
    return sum((y - NNlib.σ.( reduce(hcat,(map(i -> (x[i,:]'*W')' + b,1:nsamples))) )' ).^2)
end
gs = Flux.gradient(() -> lossShort(X,Y), Flux.params(W,b))

A: This error usually comes up if you have an array that can be changed using a parameter, or that is a return from a function inside the gradient code. Note that when I encountered these errors I was still using Julia 1.5.3
I'm not sure which version of Flux/Zygote do you have, but your code runs fine for me on 1.6
(@v1.6) pkg> status Zygote
      Status `~\.julia\environments\v1.6\Project.toml`
  [e88e6eb3] Zygote v0.6.10

(@v1.6) pkg> status Flux
      Status `~\.julia\environments\v1.6\Project.toml`
  [587475ba] Flux v0.12.2


text:
Diddy's REVOLT Summit Is Bringing Back It's Audience
Sean "Diddy" Combs is bringing his REVOLT Summit back to Atlanta "to celebrate black excellence and importance of hip hop."
The three-day event, which runs from November 11 to November 13, is designed to educate and empower the Black leaders of the future.
"We're excited to bring the REVOLT Summit back to Atlanta and celebrate the impact of Hip Hop globally," Combs says in a statement. "My goal has always been to inspire the next generation of leaders and create a platform that provides them with real access and opportunity to learn from the best in the world."
Offset from Migos, and Killer Mike are assisting Diddy in curating the event. The Summit will offer performances, educational panels, mentoring sessions, interactive workshops and more.
New components will include the Return on Culture Competition. The top 10 entrepreneurs will be matched with experts during a boot camp. Then, five entrepreneurs will be selected to present their business pitches to celebrity judges for prizes. Applications are now being accepted through October 15 at RevoltSummitPitch.com.
The "Be Heard" talent search will kick off on October 16 with a special HBCU Open Call for current students of Historically Black Colleges and Universities in Atlanta. Two winners will compete at the finals on November 11 at the Summit for a chance to win $10,000, plus an appearance on REVOLT's Off Top show featuring Big Tigger and Rapsody.
Tickets for the summit are now on sale on the REVOLT website.


text:
Recreational marijuana sales set to begin in just a week
STL Cardinals
Albert an All-Star? The commissioner could reportedly make it happen
Could Albert Pujols claim a spot on the National League All-Star team in his final season? It seems to be a legitimate possibility.
Author: Corey Miller
Published: 7:52 PM CDT July 6, 2022
Updated: 7:52 PM CDT July 6, 2022
ST. LOUIS — While his season statistics may not be close to what's typically considered "All-Star" worthy, it sounds like there's a chance we could see Albert Pujols at the 2022 All-Star Game anyway.
According to The Athletic's Ken Rosenthal, the new collective bargaining agreement has a special clause for MLB Commissioner Rob Manfred to add a player to each league's roster based on career achievements.
"In addition to the 32 players elected and selected to the All-Star Game, the Commissioner may choose to add one player that he selects to each League's roster, in recognition of each player's career achievements," Rosenthal reported the clause stated per a source. "If special circumstances warrant, the Commissioner may select more than one player to each league's roster."
Albert Pujols an All-Star? Clause in new CBA allows commissioner to add legends to rosters. Story: https://t.co/z3KYEhqwBt
— Ken Rosenthal (@Ken_Rosenthal) July 5, 2022
Pujols got some decent support in the NL All-Star vote at designated hitter this season but was not a finalist.
Coming into Wednesday, Pujols was hitting .189 with four home runs and 17 RBIs for the Cardinals.
Pujols signed back with his original team in the offseason, saying 2022 will be his final season in the majors before retiring.
In his 22-year career, Pujols has 683 home runs (fifth all-time), 2,167 RBIs (third all-time), 676 doubles (fifth all-time) and a career OPS of .915. Pujols is a three-time MVP in St. Louis, and a 10-time All-Star for his career.
Pujols was most recently an All-Star back in 2015 with the Los Angeles Angels.
All-Star starters are elected via a fan vote, with reserves and pitchers added based on the players' ballot and input from the commissioner's office. The Cardinals' Paul Goldschmidt and Nolan Arenado are still in the running to start at their respective positions for the National League.
RELATED: Cardinals' Goldschmidt, Arenado up for final vote to be All-Star Game starters
The 2022 All-Star Game will be held on July 19 at Dodger Stadium in Los Angeles.
5 On Your Side's Corey Miller and Ahmad Hicks recently debated Pujols' possible All-Star bid on "Cardinals Plus". You can watch the episode by clicking here, or checking the player below.
More Cardinals Coverage


text:
Taylor Swift Not Doing Well following Calvin Harris Separation
Felicia Hawke June 3, 2016 1:13 am January 1, 2017 0 1101
Calvin Harris and Taylor Swift ended their romance and it seems that things have not been simple for the young singer. In fact, some rumors actually indicated that Taylor Swift was really "devastated" because of the separation from Calvin Harris. Furthermore, insiders said that Taylor just wanted Calvin back.
So, even though Calvin and Taylor have not confirmed this, multiple sources have claimed that the two stars ended their 15-month relationship. Now, an insider allegedly close to Taylor said that the singer was not doing well at all. The source said that she was really heartbroken and devastated and that Taylor wanted Calvin to change his mind and get back together.
"She is devastated over it all and really wishes he would change his mind," the insider claimed according to Hollywood Life. However, the insider gave no further details. Still, it has emerged that Taylor has lately spent some time with her family, in Nashville, where she got support from her family and her childhood bestie.
The reason of the separation has not been revealed at this point, so why Taylor and Calvin ended things remains a mystery. Still, some insiders said that Calvin was the one who put an end to the romance, just because things stopped working between him and Taylor. Well, now, some sources claimed that the real reason why Taylor and Calvin ended their relationship is given by the fact that the singer wanted to get married and the DJ was not ready to settle down.
"Taylor was starting to pressure Calvin into walking down the aisle and he just felt that he wasn't ready yet," a source said. "He's still, and always will be, career-focused and doesn't want to settle down just yet." If these rumors will be confirmed or not is something yet to be found out.
However, meanwhile it seems that Taylor and Calvin's fans are not happy at all with the news. Many fans took to social media to express their frustration and claim that they were really sad because they believed that Calvin and Taylor were meant to be together.
Previous ArticleTaylor Swift and Calvin Harris Separate after 15 Months TogetherNext ArticleAmber Heard Sues Doug Stanhope for Comments on Johnny Depp Separation
Felicia Hawke
Felicia Hawke is one of the first authors to join our team and we are very proud to have her on board.She currently covers the celebrity and beauty fields.Felicia is addicted to good looks and a great beauty advisor.Contact her at Felicia.Hawke@dailygossip.org


IPL 2019: Kohli achieved this feat in the seventh match of the 12th edition of IPL against Mumbai Indians. Kohli is the second player in the world to do this.
IPL 2019: Indian cricket team and Royal Challengers Bangalore captain Virat Kohli completed their 5,000 runs in the Indian Premier League (IPL). Kohli achieved this feat in the seventh match of the 12th edition of the IPL against Mumbai Indians. Kohli is the second player in the world to do this. Before that, Chennai Super Kings cricketer Suresh Raina has done this name in his name. Raina had touched this record in the first match of the season played against RCB.
In the match against Mumbai on Thursday, Virat batted superbly and scored 46 runs in 32 balls with the help of 6 fours. However, Kohli could not win the RCB match. Kohli has so far made 5000 runs in 157 innings of 165 matches played in the IPL. Meanwhile, he has so far scored four centuries and 34 half-centuries. Kohli has become the second batsman to score most runs in IPL. The record of making the highest runs in IPL is now Suresh Raina's name. Raina has so far made 5034 runs in 174 innings of 178 matches, including one century and 35 half-centuries. Mumbai Indians captain Rohit Sharma is third in this case. Rohit has scored 4555 runs in 170 innings of 175 matches, including one century and 34 half-centuries.
With the help of Jaspreet Bumrah's superb bowling, Mumbai Indians defeated Royal Challengers Bangalore by six runs in the exciting encounter of AB de Villiers on the half century. This is the first win in three matches of Mumbai's championship, while Bangalore have to face a second defeat in a row. Jasprit Bumrah hit a magnificent bowling attack with three for 20 in four overs. At the same time, the highest run by the RCB players De Villiers scored an unbeaten 70. In this match, Mumbai first scored 187 runs for eight wickets in 20 overs. With the help of the explosive innings of hearty Pandya, Mumbai scored 40 runs in the last three overs. In reply, RCB could score 181 runs in five overs in 20 overs and lost the match.


From a humble beginning as a son of employees in white settlers' farms in the central Rift Valley, Dr Francis K. Sang overcame many odds to rise through the ranks of the Kenya Police and become the 4th Kenyan Director of the Criminal Investigation Department. He served in this position for 4 years before he was transferred to the Ministry of Foreign Affairs after the changeover of government in Kenya at the end of 2002. He was tasked with the establishment of the Nairobi Secretariat to coordinate issues to do with small arms in the region. This he did and later helped transform the secretariat into the Regional Centre for Small Arms (RECSA), a regional inter-governmental body that coordinates activities aimed at controlling and reducing the proliferation of small arms and light weapons in the Eastern Africa, Great Lakes and Horn of Africa region and bordering states. In this autobiography, he relates his experiences, from the difficult circumstances surrounding his birth and childhood, his struggles to get an education in spite of the many obstacles that he faced and his experiences in the police force, particularly in the Criminal Investigation Department (CID) during the tenure of the 2nd President of Kenya, Daniel arap Moi. He also relates his experiences after the NARC Government took over in 2002 and sent most senior security offi cers in the former government packing, either on retirement or on transfer to other less prestigious positions. He further relates how, through determination, he has been able to achieve his academic dreams which had been deferred earlier in his life owing to financial constraints, culminating in the acquisition of a PhD late in life. He also speaks about the role his family has played in enabling him to achieve all he has in his life. Reflecting on his long journey that has brought him to the place where he is today, the author also gives a number of insights on his work and life. This autobiography should serve as interesting reading to the general public as well as to persons serving in the disciplined forces, considering that it is the first from amongst persons that have served in the police force and risen through the ranks to the very top.


The first new print for fall is now complete. Continuing in the two-color tradition of "Untitled (Double O)," rough-edged artwork is hand printed in tasty mocha and mint.
Minty fresh and ready to go from the shop.
The workshop is cleaned out, cleaned up and ready to go. Artwork has been selected, paper's in, color choices are becoming clear, and a schedule is in place. That last one is a first. I usually have so many ideas and then tend to get seduced by the latest sketch (which then sends me off course), that I thought I'd try implementing a schedule. Buckling down and charting a course that includes a select number of favorite ideas might lead to some interesting results. Or maybe just more results. That's the thinking, of course.
Conversely, I'm trying to loosen up a bit more in terms of working method. I was a little too rigid in the spring and therefore was unable to get as many prints out as I would have liked. I'm going with more forgiving artwork and compositions than in seasons past and will adopt a more go-with-the-flow attitude—even it it requires some reminding now and again. Embracing the process and embracing more of the mistakes this time out.
I have one edition under my belt so far and the process seems to be working well. I'm very much looking forward to more. Here's hoping you are too.


text:
Homefitter Realty, LLC
91 Main St, Plaistow, NH 03865
978-448-3400 | david@homefitter.com
Select a page Home Search Homes Featured Homes Blog Seminar Schools/Community Market Analysis Mortgage Calculator Buying/Selling Tips Contact
Plaistow, NH Town Information
Single Family homes for sale in Plaistow, NH
Multi Family homes for sale in Plaistow, NH
Condos for sale Plaistow, NH
Rentals for sale in Plaistow, NH
Land for sale in Plaistow, NH
Commercial Properties for sale in Plaistow, NH
Foreclosures for sale in Plaistow, NH
Open Houses in Plaistow, NH
Plaistow, NH Community Info
Plaistow is a town in Rockingham County, New Hampshire, United States. The population was 7,609 at the 2010 census. The traditional pronunciation of the town name is plas-toh, but the pronunciation plas-tow is more common today.
Plaistow's economy is centered along New Hampshire Route 125, a north-south road that connects the town with Haverhill, Massachusetts to the south and Kingston, Epping, and Rochester to the north. Local businesses and numerous large chain stores are located along Route 125, which has become known for problems with heavy traffic during weekday commuting and weekend shopping hours.
Route 125 intersects with Interstate 495 in Massachusetts two miles south of Plaistow. Commuters to Massachusetts are able to use a New Hampshire park and ride facility located on Westville Road, just east of Route 125. Pan Am Railways (formerly the Boston and Maine Railroad) operates the main railroad line from Boston to Portland, which is utilized by Amtrak and by freight trains, running through Plaistow. Passenger stations for the Amtrak Downeaster are available in Haverhill to the south and Exeter to the north. A proposal has been made to extend existing MBTA commuter rail service from Boston through Haverhill, Massachusetts into Plaistow, and is being studied.
Image: "Plaistow town hall". Via Wikipedia.
David Tellier - Broker/Owner
91 Main St • Plaistow, NH 03865
Direct: 978-448-3400 • Fax: 603-389-6220
david@homefitter.com


Earlier this year, the world was introduced to Matom, a collaborative project from Thomas Gandey and Radio Slave (a.k.a. Matt Edwards). The pair started its run in grand fashion, issuing an LP, 'Love Mistakes,' via Carl Craig's Planet E label. (Originally released on vinyl over the summer, the record was given a wider release on CD and digital formats last month.) Clearly created by veteran artists who know their way around the studio, 'Love Mistakes' is packed with lengthy explorations that often only lightly reference house while incorporating elements of jazz, new age, and a myriad of smoothly introspective sounds. Given that so much knowledge went into the record, we figured its creators might be willing to share a bit of it with the XLR8R audience, and enlisted Gandey to spell out a few of the artistic and production philosophies that he and Edwards have relied upon over the years.
They say 10,000 hours can make you an expert... and Matt and I have definitely each put that time in. The other day, Matt shared a photo of his 'time in the air' whilst on tour over the last few years, which [totaled] some two months alone on one airline. Matt is a label boss, artist, designer, producer, DJ, and leader in the electronic scene. I don't fawn over people, but there are few who have earned their stripes in such a majestic way. I also multitask and wear many hats. (You have to be insanely driven in this business to keep going and [stay] at the top of the game.) My skills as a professional musician, producer, DJ, and vocalist have seen me working with people like David Byrne and Jeff Wayne along the way. I enjoy working with other people as much as I enjoy working alone in my studio, but you have to be personable and willing to meet in the middle to collaborate. It's a lesson in being gracious. Working with Matt is always refreshing, as we think differently but understand each other. We have a mutual admiration for each other's talents and we've worked to enhance and support each other's skills. Since we first met in Brighton and hung out in my studio a few hundred years ago, we have always worked together in one way or another and we finally got the chance to create our first album under the name Matom. We have started something with longevity where egos are left at the door.
We both write ideas fast, and I always capture my first take, as it's often 'the one.' I tend to work totally live on the arrangement page. It's like painting a canvas, and I find it saves time and creates something unique in the moment; [moreover ,] it's committed to the cut. Matt can create a groove so quickly that I have to stop him before it morphs seamlessly into another track that's equally as good; likewise, Matt doesn't want to sit there for 30 minutes whilst I noodle away on keyboards channeling Chick Corea. If an idea is not working, we scrap it and move on without letting that interrupt the flow. Time is precious, but we still managed to sketch some 40 ideas to get down to the last 10 tracks that made the album. There's always a new groove to be born and something else that needs to be finished.
A lot of people ask me about finishing tracks (as they have trouble finishing), so I offer this advice. Make the arrangement as early as you can with a defined end and draw a line under the track when it sounds great. Matt has his tips and tricks and secrets and I have mine, but everybody needs a trick in this world. Creating music is a learned craft that gets better until you get lazy with it. How many bands turn into shadows of themselves when they give up and seem to become a cover band of themselves? I see it happen everywhere. You need the spark to inspire you. Matt says to me, 'You have to be in it to win it.' It's something that rings true. If you don't love it, you won't succeed long term. We have both been full-time musicians for well over a decade.
There is certainly a science to producing, but when you start to [realize] that the boundaries are limitless, you can get lost in your own mire. We don't spend much time mixing and engineering, as we have the experience and ears from making hundreds of records and hearing them on various quality club systems to know what sounds right. So we mix as we go on the fly, with a little bit of engineering on the back end of a session and a modicum of plug-ins. You have to know your speakers inside out to do this. We both work quietly to give our ears the best chance for something to sound great outside of the studio, briefly stopping to turn it up and check that everything is there. We don't enter any loudness wars, as dynamics are as important as a track itself. Too much music is so saturated and overcompressed; it sounds like garbage and should be treated as such. Make something beautiful and timeless, something that you will be proud of in 10 years. We are artists, not a factory line, so be proud of your artistry and don't follow the pack.
When we made Love Mistakes, Matt played me a lot of new age music, Vangelis, Manuel Gottsching, Klaus Schulze, Wally Badarou, movie soundtracks like Babel and Bladerunner, and we took these as inspiration for the sessions. The incredible music from all over the world is within our grasp; the talent is exceptional and the performers are exquisite. Every day, I am humbled by the skill set of a master musician or virtuoso when I see them perform or stumble across something on the internet. Matt has a phenomenal music collection and every time I am in Berlin, we spend a lot of our time just listening to music, with the 'listen to' pile growing ever taller. Most cities Matt goes to, he will find a record store on some corner and search its dusty racks for treasure; when he finds it, he brings it back to Berlin. On my last trip to Buenos Aires, I found a record store that had the most incredible selection of Argentinian psychedelia. I didn't even know that existed. The other day, Matt sent me a video of Cory Henry playing gospel organ that I can't stop watching. Danny from Psychemagik sent me some Serbian sleaze-funk on Monday, my girlfriend sends me amazing indie electronica music all the time that I pinch for certain DJ sets, and likewise I send my finds to those I love. I will never find enough music and most of it was already written well before the 1980s reared its colorful head.
We both captured a lot of field recordings during the making of Love Mistakes: a waterfall in Shibuya, ripened corn fields rustling in France, cicadas in Ibiza at sunset, the U-Bahn in Berlin pulling into the station with that funny phasing noise it does, people enjoying an afternoon in a park during the summer. These ambiences create soundscapes that add so much to a recording. We also used a lot of hardware; to feel and touch something that responds with no latency and gets creative in your hands is key to me. I like the element of chance to create a new sound. It takes me a day to set up my studio to get to the point where I can record a song live in one take, but [after it's done,] I have simultaneously written and produced something that's finished and I could go out tomorrow and play live. For Matom, [we used] the Moog voyager, an 808, Nord Leads, hand drums, Fender Rhodes, and a collection of world percussion I've amassed from my tours, including a bean pod, seed cases picked up from the the ground, and temple bells and claves from Asia. You can also buy all sorts of amazing rack hardware gear now for very little money. Sound quality hasn't gotten better in the last 30 years. It's diminished with digital in-the-box and soon, rack gear will be like analog synths—super collector items that are out of reach for most budgets. I remember buying my Roland SH-101 for £75 and a TB-303 for £200, which I thought was expensive at the time.
Also, I like to use other musicians; for the Matom album, I got a talented guitarist, Paul Sandrone, to play on the sessions. He added so much in a four-hour session and made the tracks sparkle.
Matom is a passion for us. We've worked at this for three years, taking our time, both of us juggling busy schedules, but always coming together. In Bordeaux, we would sit down at my place in in the Southwest of France, eat well, and get into a studio session in our own time. In Berlin, we would go to a concert or an exhibition and afterwards, inspired, we would venture into the studio to sketch some ideas. We have also played various live shows as Matom, [including performances at] the Kantine at Berghain, the Miami Winter Music Conference, and Hansa Studios in Berlin. Live shows take extra focus and a steady nerve to hold it all together; for our next show in Stockholm with the Radiophonic Workshop, we are going a night early to prepare and we'll be putting in a week of rehearsals beforehand.
Our passion for the experimental comes with maturity in the scene. Before we started this album, we had worked together on some downtempo projects, like when I played keyboards for Matt's Quiet Village project with Joel Martin. Downtempo and ambient invokes a spiritual lightness of touch when you create it. Like minimal, it gives your head space to think about the space between the notes and the absence of heavy formulaic drums taking up all the frequencies.
I know that tomorrow I will find a new piece of music and be inspired by it. I have tour dates in a new territory next weekend, and Matt's flying from Australia to Santiago as I write this. However, when we stop traveling, we are [just as happy] in our studios with a blank canvas open. What shall I create today? Shall we start the next Matom Album?


text:
33 things I learned from my PGA Tour caddie debut
By Dylan Dethier
When I got the ridiculous opportunity to go inside the ropes last week as Martin Trainer's caddie at the Valspar Championship, I relished the chance to bring you, dear readers, along with me. There are plenty of sights and sounds in the five-part series I wrote as the week went along, but as I look back on the week I wanted to empty the notebook.
With that in mind, here are 33 observations, stories, moments or feelings from the week that was. If you tuned in day by day, some of these will be redundant—but you can relive them along with me. Thanks for following along, and if you've got more caddie opportunities that need tending to, you'll know where to find me.
You can read "Caddie Chronicles" entries from Monday, Tuesday, Wednesday, Thursday and Friday.
Feeling clinical: Martin has now achieved a confusing amount of professional status; he's a relative unknown with only one top-25 finish on the PGA Tour, but he's also a PGA Tour winner. The latter is probably how he ended up at a "long game" clinic at TPC Sawgrass the day after the Players ended. When he walked onto the range, he found this glittery group waiting for him: Dustin Johnson, Brooks Koepka, Justin Rose, Justin Thomas, Gary Woodland.
"I mean, that's the best clinic of all time," he told me later that day, after a private jet dropped him in Tampa, where he headed to the Whole Foods hot bar, a proper juxtaposition for this Tour rookie. "The best ever! It's gotta be, right? They definitely thought I was just some guy who had shown up."
Martin Trainer has found himself in increasingly impressive company.
Why the Valspar? Why was Trainer, a guy who had played four consecutive events and was wearing down, mentally and physically, showing up in Tampa to play yet again? "My whole life I would have done anything to be in these events," he said. "Now that I'm here, and I'm allowed into every event, I kinda want to keep playing…"
That directly informed his approach to the week. He kept his schedule light on Tuesday and Wednesday, went into the week fresh, if not dialed in, and hoped to catch fire.
Hotel, Motel… Despite winning nearly $700k thus far this season, Trainer and I were splitting a room at the Holiday Inn. He only had one goal for Tuesday morning: sleep in as long as he could. He made it to about to 9 a.m. What a life, where sleeping to nine is considered productive.
On the Menu: Locker room breakfast: A delicious buffet. Bacon, sausage, eggs, home fries, waffles, oatmeal, yogurt and more. Lunch: Even more impressive. A stocked salad bar, every topping you could think of, plus entrees spanning chicken, fish, barbecue, even dim sum. Sweet tooth? Plenty of ice cream available to finish off.
Family-style: The Valspar locker room is a relatively small, intimate space. Even if guys don't want to talk to each other, they inevitably have to. Tuesday midday, rain kept us inside and ushered a slew of other pros through, too: Paul Casey, Peter Uihlein, Chez Reavie, Sergio Garcia, Dustin Johnson, plenty more. They grabbed lunch and sat down at the communal tables to eat together, cafeteria-style.
Overheard in the caddie lounge: I overheard a lot of things in the caddie room, a sampling included here for your entertainment.
Rumors: "I heard he's intentionally gonna stay on the Web tour so he can smoke weed during the rounds, 'cause they don't test as much there."
Complaints: "I officially hate my guy. Hate him. Cannot wait to get another bag."
Opportunism: "Just a heads up — I heard Trainer does have a caddie, even though he hasn't checked in. Some buddy of his. The f—– buddy system."
The f----- buddy system.
Caddie sharks: Trainer told me about caddie sharks who swim around, looking for a bag to pounce on: "When I won in Puerto Rico, I got 200-something texts congratulating me," he said. He'd won that week with a stand-in looper on his bag. "But I also heard from probably 20-30 caddies who I've never even met. That's just kind of the way it goes."
Free gear: When I was finally credentialed and deemed official, I was given five things.
1. A choice of Valspar hats, either electric blue, deep purple or pale yellow. I went yellow.
2. A yardage book
3. A page with last year's pin positions (where they were likely to be again)
4. A voucher for a free can of paint — tint of my choosing!
5. Two tickets for each day of the week to give away (sadly, I somehow lost these almost immediately).
FYI, at Valspar registration caddies get a free can of paint, custom tinted, absolutely sick pic.twitter.com/4PLla0fYPE
— Dylan Dethier (@dylan_dethier) March 19, 2019
Double duty: On Tuesday, as Steve Stricker hit his tee shot off No. 14 during a practice round, he noticed the group we were traveling with — Trainer, Cody Gribble, Sangmoon Bae and Jim Herman — and popped over to join up. He shook hands with Trainer, who he'd played with at Bay Hill. They chatted strategy, like what to hit off No. 16 tee, and Stricker took his usual earnest tone. I'd interviewed Stricker the week before for a story on Bryson DeChambeau, and when I went to shake his hand this time he did a double take, like he recognized me but couldn't place it. I got a few of these throughout the week, but avoided any vitriol. If these guys hate the press, they did a good job hiding it from me.
Caddie Chronicles: What's a missed cut really like inside the ropes?
Pro-Am Prince: Want to get in good with tournament organizers? Show up for the pro-am party. There's some sort of system where guys are required to make a certain number of appearances at these things. Guys who aren't required don't go. But Trainer, intrigued by free food and conversation, rolled in and became the belle of the ball, chatting up everyone from sponsors and the tournament committee to Ronde Barber and Miss Florida. We got some seriously fantastic food in the process.
The Mayor: Kenny Perry, who's soon turning 59, was posted up in the locker room for several hours on Wednesday, holding court. Martin and I joined him for a while, to talk scheduling, energy, distance and plenty more. Perry says he can fly the ball 280 yards now and can swing it 113 mph. He averages 291.3 off the tee (and 72% of his fairways!), good for fifth on the PGA Tour Champions. In 1989, at age 28, he was the fourth-longest hitter on the PGA Tour, averaging 276.9. Times have changed.
And in contrast to the carefully managed schedules of Tour players now, Perry remembers his tournament prep: Travel Monday, play 18 Tuesday, play the 18-hole pro-am Wednesday, play 72 holes, then do it again. Wash, rinse, repeat. "I once played 13 events in a row," Perry said, "and I hadn't won a thing until I won the 13th. That's why it's so hard to know when to take a week off."
Martin Trainer putting under the floodlights just after 7 a.m.
Dylan Dethier
Early birds: On the PGA Tour, mornings begin in the dark. Martin Trainer's 8:24 a.m. Thursday time meant waking up at 5:20, heading to the course, hitting the gym (the player, not the caddie) eating breakfast, putting under the floodlights, chipping, hitting the range and scampering up to the first tee at 8:21, just in time to join Kevin Kisner, Luke Donald and their caddies, with his rookie caddie in tow.
WD. On our way down to the range on Thursday morning pre-round, Martin and I walked past Kevin Na, who was headed the opposite direction.
"Play well, Kevin," Martin said.
"Thanks," Na replied. "But I'm out of here."
The exchange was quick enough that it was hard to be sure what he'd even said. But sure enough, just minutes later first alternate Curtis Luck strode onto the range with his caddie. Just like that, Na was out, Luck was in, and boy, did he take advantage. His T13 finish was, by world ranking points, the third-best of his young career.
Black, not red: When you get to the range, the tent has little bags of balls specifically tailored to each player in the field. Trainer plays a Srixon golf ball (the blacks, not the reds) that's currently not used by any other pro.
Power trippin': Martin hit driver into several interesting places that allowed me to get my Steve Williams on, box out some spectators, rip some ropes stakes out of the ground, toss lawn chairs aside, hold my arms up and yell "Hold still, please!" The power is addicting, believe me. A couple more rounds and I'll be snatching iPhones from fans' hands and heaving them into lakes.
The best caddie advice… I got came courtesy Matt Kuchar's caddie, John Wood:
"Don't be afraid to go off topic during a round. Get a feel for whether he wants to chat in between shots about other things: family, interests, restaurants, books, movies or sports. No one can fully concentrate on golf for five hours. These can be used to relax your guy, especially if something bad has just happened during the round. It kind of reminds them that the eight-iron they hit in the bunker on the previous hole isn't actually the biggest issue in the world. It's not."
The highest-pressure moment of the week…was my first bunker raking. I'd dodged the sand all Thursday until Trainer fired one over the back pin on 18, where I suddenly realized I'd make my debut in front of the day's largest crowd. Afterward, Luke Donald's coach Patrick Goss described the job as "well done, albeit world-record slow." Golf Channel writer Will Gray was looking on, too: "It truly was a thing of beauty. You could feel each grain being re-positioned with great purpose," he wrote later on Twitter. That's good enough for me.
Better than Shipnuck: Bones Mackay, legendary longtime caddie to Phil Mickelson, met us in the fairway at No. 12 on Friday as we waited for the green to clear. "Congratulations on the win in Puerto Rico," he told Martin, before turning to me. "Heard what you're up to this week," he said. "How's it going?" Great, I told him, though I was worried I hadn't brought Martin much luck. "Well, that's all right. It's not like he'd be better off with Shipnuck," he said with a smile.
Rookie moves: As we made our way up the seventh fairway Friday, I asked Bones if he had any memorable rookie caddie tales. His eyes lit up.
One year at a particularly soggy edition of the Pebble Beach Pro-Am, he said, Mickelson's partner and his caddie introduced themselves to Bones. The caddie asked – did he have any advice? "Honestly, if you can make it the entire week without slipping and falling on your butt, that's a big win," Bones recalled. The caddie shook his head; he'd been hoping for something more substantive. "I'm serious," Bones said.
The groups teed off and started off the first tee box – where the caddie hit a wet spot, slipped and took a full tumble down the slope, sending mud and clubs flying, while Bones could only laugh.
Hanging with Bones was an incredible, unexpected bonus from Friday at the Valspar.
Old habits die hard: Every time a player hit his ball into a bunker on Friday, Bones was the first one on the scene. He'd walk ahead, snag a rake and hand it to the appropriate caddie. Once a caddie, always a caddie I guess.
Feeling it: Luke Donald, somehow the No. 919-ranked player in the world, took 22 putts Thursday and came out crazy-hot Friday, too. He canned a 28-footer for birdie on 14 and a 35-footer for birdie on 15 to get to six-under and a tie for the tournament lead. He raised his arms in triumph, fetched the ball from the hole and came over to join his caddie, as close to giddy as he ever seems to get. "Alistair, just put me anywhere on the green. Anywhere!"
The loudest roar: On Friday, we sat at seven over par, hopes of a made cut had all but vanished as Martin hit an absolutely perfect pitching wedge into the 16th green, which skipped to a stop two feet from the hole. When it was Martin's turn to putt, the crowd began buzzing; the filled bleachers had been waiting for some excitement.
"Give us a birdie, kid!" one person yelled. Martin firmed it off the center of the back of the cup, and you'd have thought from the eruption in the crowd that he'd won the tournament. He raised one arm in sheepish celebration, then thrust both into the sky. No matter his position relative to par, this was worth celebrating.
Caddie callout: As we got to the 7th tee, where Martin had hit driver into a fairway bunker Thursday (but hit 3-wood Friday), Kisner threw a playful (I think?) jab my way. "What, you didn't want to give him driver again today?" he said sardonically. "I think there's at least, like, four yards of fairway he could squeeze that thing into."
They're not guessing: You know how the TV guys always seem to know which clubs guys are hitting, especially on par-3s? That's because the caddies signal to them. From watching the others, I quickly learned you sign with one hand: three fingers for a three-iron, four for a four-iron, five for a five-iron, one for a six-iron, two for a seven-iron, three for an eight-iron, four for a nine-iron, closed fist for a pitching wedge.
The "flag handoff": There's a simple rule: If your guy is going to putt out last, you should be the one to replace the flag. It streamlines things for the two guys who have already finished out; they can go prep for the next hole. So when someone putts it close and then marks, indicating they'll likely finish last, this caddie-to-caddie flag handoff goes down. Great chance to build goodwill.
Bunker etiquette: An even more important chance for caddie-to-caddie goodwill comes if your guy is in a bunker, then hits it somewhere and will still be the next one to play. This happened, unfortunately, three times to Martin over the course of the week, and Duane and Alistair were there each time to pick me up, doing me a favor as well as keeping up the pace of play. While that's happening, the third caddie up ahead can take care of cleaning off golf balls, etc., for whichever players happen to be on the green. Plenty of collaboration to be had.
These guys are good: From home, it's easy to picture last place as a player who had everything go completely, devastatingly wrong that week. But consider that Austin Connelly shot 79-77 on a very, very difficult golf course and finished last by two. Martin was only four shots clear of him, and I thought about all the good shots it took – managing touchy up-and-downs, delicate iron shots and tight, threatening tee shots – just to post 10-over. Last place is easy.
The Calf King: You've never seen calves quite like those belonging to Kevin Kisner's caddie, Duane Bock. "These babies are built for power, not speed," he said a few holes in, when Martin inquired. Duane was friendly, though mostly quiet, but those calves did the talking for him.
@BocksCalves live and activated @PGAChampionship @K_Kisner @duanebock pic.twitter.com/hbtJVjUmlK
— Darrell Bock (@dbockpga) August 12, 2015
It was an unforgettable PGA Tour caddie debut.
Too cold: What is our obsession with ice-cold water? If it's not roasting-hot, there is no need to bury water bottles in vats of icewater. It was in the 50s and 60s for much of our time on course at the Valspar, which is far too cold for that frozen plunge. Time to change the conversation.
Addicted to giving: It's an amazing feeling. When Martin would wear one ball out, he'd give it away or instruct me to. And kids' eyes absolutely light up when they're handed a little piece of the action, even if it's a skidded-up Srixon struck by a rookie Tour player and delivered by a first-time caddie. This was absolutely the most rewarding part of the week.
Sometimes, don't ask: After signing for his final score on Friday, Martin and I cleared out his locker, loaded up the Valspar-stickered Lexus and readied for departure. We walked out to the parking lot with Keegan Bradley. Last I'd seen Bradley's name, he was holding the first-round lead on Thursday afternoon. I thought about asking how his Friday had gone, but something in his walk told me to hold off. Once I checked my PGA Tour app, I was glad I did: Bradley was well inside the cut line until he tripled 16 and bogeyed 18 to finish at three-over and miss the cut, too. Yikes. It served as a reminder: When players vanish off your leaderboards, they still continue to exist in real life.
Pin in? Or out? It feels like this debate has already started to die down. But on Tour it remains a vexing question and a gray-area decision for most players and caddies. Martin was certain he wanted the pin in from distance, and he was certain he wanted it out from close. In between? He could go either way. He never putted with the pin in from close range, so it never felt super relevant, but it is a bit strange that tending the pin is now just a thing of the past.
Shouldering the weight: Carrying the staff bag around is a commitment. We luckily didn't pack much in the way of rain gear, but between water, snacks, clubs and the general bulk of the bag itself, I felt like I had a significant load to bear. I'm surprised they haven't come up with a slightly more efficient means of carrying the sticks, but there's no denying one thing: when you set it down on a tee, it looks just about perfect.
Self-care: Martin stressed this one above all. "I know people just assume life is good all the time on Tour. But if you let it, and if you don't take care of yourself, this game will make you miserable. Seriously, you see it everywhere."
His best remedy? Sleep enough. Exercise. Eat well. Don't drink. Turn your phone off when you go to sleep. And best of all, don't internalize your golf scores. All are easier said than done, but he's committed to living as happy a lifestyle on Tour as he can. I think having the awareness to pursue that particular goal may be his most impressive accomplishment yet.
Memoirs of a rookie: What's playing on the PGA Tour REALLY like?
The most important lessons I've learned about golf — and life — have come from my Gramps
The wild tale of a $10 flea-market putter and my monthslong quest to find its owner
Let's be Frank: The inside story behind Tiger Woods' famous headcover
These five golf hole designs are templates that will never go out of style


text:
package de.tor.tribes.ui.wiz.dep;

import de.tor.tribes.io.DataHolder;
import de.tor.tribes.io.TroopAmountFixed;
import de.tor.tribes.types.SOSRequest;
import de.tor.tribes.types.TargetInformation;
import de.tor.tribes.types.ext.Village;
import de.tor.tribes.util.GlobalOptions;
import de.tor.tribes.util.generator.ui.SOSGenerator;
import de.tor.tribes.util.translation.TranslationManager;
import de.tor.tribes.util.translation.Translator;
import java.awt.BorderLayout;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.Date;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import javax.swing.JComponent;
import javax.swing.JFrame;
import org.apache.commons.lang3.time.DateUtils;
import org.netbeans.api.wizard.WizardDisplayer;
import org.netbeans.api.wizard.WizardResultReceiver;
import org.netbeans.spi.wizard.Wizard;
import org.netbeans.spi.wizard.WizardController;
import org.netbeans.spi.wizard.WizardPanelProvider;

/**
 *
 * @author Torridity
 */
public class DefensePlanerWizard extends WizardPanelProvider {

    private static Translator trans = TranslationManager.getTranslator("ui.wiz.dep.DefensePlanerWizard");

    private static final String ID_WELCOME = "welcome-id";
    private static final String ID_ANALYSE = "analyse-id";
    private static final String ID_VILLAGES = "villages-id";
    private static final String ID_FILTER = "filter-id";
    private static final String ID_CALCULATION = "calculation-id";
    private static final String ID_FINISH = "finish-id";
    private static JFrame parent = null;

    public DefensePlanerWizard() {
        super(trans.get("DSVerteidigungsplaner"),
                new String[]{ID_WELCOME, ID_ANALYSE, ID_VILLAGES, ID_FILTER, ID_CALCULATION, ID_FINISH},
                new String[]{
                    trans.get("Willkommen"),
                    trans.get("Angriffeanalysieren"),
                    trans.get("UnterstuetzungDoerfer"),
                    trans.get("Filter"),
                    trans.get("Berechnung"),
                    trans.get("Fertigstellung")});
    }

    @Override
    protected JComponent createPanel(WizardController wc, String string, Map map) {
        if (string.equals(ID_WELCOME)) {
            return WelcomePanel.getSingleton();
        } /*else if (string.equals(ID_ANALYSE)) {
            DefenseAnalysePanel.getSingleton().setController(wc);
            return DefenseAnalysePanel.getSingleton();
        } else if (string.equals(ID_VILLAGES)) {
            DefenseSourcePanel.getSingleton().setController(wc);
            return DefenseSourcePanel.getSingleton();
        } else if (string.equals(ID_FILTER)) {
            DefenseFilterPanel.getSingleton().setController(wc);
            return DefenseFilterPanel.getSingleton();
        } else if (string.equals(ID_CALCULATION)) {
            DefenseCalculationSettingsPanel.getSingleton().setController(wc);
            return DefenseCalculationSettingsPanel.getSingleton();
        } else if (string.equals(ID_FINISH)) {
            return DefenseFinishPanel.getSingleton();
        }*/
        return null;
    }

    private static List<SOSRequest> createSampleRequests() {
        int wallLevel = 20;
        int supportCount = 100;
        int maxAttackCount = 50;
        int maxFakeCount = 0;

        List<SOSRequest> result = new LinkedList<>();
        Village[] villages = GlobalOptions.getSelectedProfile().getTribe().getVillageList();
        Village[] attackerVillages = DataHolder.getSingleton().getTribeByName("Alexander25").getVillageList();

        for (int i = 0; i < supportCount; i++) {
            int id = (int) Math.rint(Math.random() * (villages.length - 1));
            Village target = villages[id];
            SOSRequest r = new SOSRequest(target.getTribe());
            r.addTarget(target);
            TargetInformation info = r.getTargetInformation(target);
            info.setWallLevel(wallLevel);

            TroopAmountFixed troops = new TroopAmountFixed();
            troops.setAmountForUnit("spear", (int) Math.rint(Math.random() * 14000));
            troops.setAmountForUnit("sword", (int) Math.rint(Math.random() * 14000));
            troops.setAmountForUnit("heavy", (int) Math.rint(Math.random() * 5000));
            info.setTroops(troops);

            int cnt = (int) Math.rint(maxAttackCount * Math.random());
            for (int j = 0; j < cnt; j++) {
                int idx = (int) Math.rint(Math.random() * (attackerVillages.length - 2));
                Village v = attackerVillages[idx];
                info.addAttack(v, new Date(System.currentTimeMillis() + Math.round(DateUtils.MILLIS_PER_DAY * 7 * Math.random())));
                for (int k = 0; k < (int) Math.rint(maxFakeCount * Math.random()); k++) {
                    idx = (int) Math.rint(Math.random() * (attackerVillages.length - 2));
                    v = attackerVillages[idx];
                    info.addAttack(v, new Date(System.currentTimeMillis() + Math.round(3600 * Math.random())));
                }
            }
            result.add(r);
        }

        return result;
    }

    public static void show() {
        if (parent != null) {
            parent.toFront();
            return;
        }

        parent = new JFrame();
        parent.setTitle(trans.get("Verteidigungsplaner"));
        WizardPanelProvider provider = new DefensePlanerWizard();
        Wizard wizard = provider.createWizard();
        parent.getContentPane().setLayout(new BorderLayout());
        WizardDisplayer.installInContainer(parent, BorderLayout.CENTER, wizard, null, null, new WizardResultReceiver() {

            @Override
            public void finished(Object o) {
                parent.dispose();
                parent = null;
            }

            @Override
            public void cancelled(Map map) {
                parent.dispose();
                parent = null;
            }
        });
        parent.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        parent.addWindowListener(new WindowAdapter() {

            @Override
            public void windowClosing(WindowEvent e) {
                super.windowClosing(e);
                parent = null;
            }
        });
        parent.pack();
        parent.setVisible(true);
        new SOSGenerator().setVisible(true);
    }
}


text:
Who are we:
The Millhouse Art Society operates the Millhouse Art Gallery at the Courtyard Studios in Milton.
We hold four exhibitions each year, changing all artworks at the beginning of each season.
Millhouse Art Society members are artists who appreciate the companionship of like minded people who enjoy sharing their painting skills with other members. We meet as a group during the week in the Little Gallery (adjacent to the Main Gallery) and here we also conduct painting workshops.
Artists also showcase their work at the Ulladulla Civic Centre (opposite Ulladulla Harbour) at Christmas and Easter. These two exhibitions are an opportunity to display members' original artworks to locals and the many visitors to the area.
The Millhouse Art Society raffles a beautiful painting at each of the Civic Centre exhibitions. The artwork has been donated by one of our local artists. The Society is delighted to be able to donate all money raised from the raffle to local charities.
Meetings are held at the Millhouse Art Gallery
on the third Monday of each month at 1 pm, followed by an afternoon cuppa and chat.
New members are most welcome to come along. Application forms are available at the gallery.
The Millhouse Art Society came to life in April 1974, when 19 interested students met at the home of Jean Hill, a talented and well known art teacher. From there, they moved to the 'Millhouse', (opposite Ulladulla Harbour, site of the present Civic Centre). Then, after 7 years, they moved to Kendall Cottage, Ulladulla. As membership grew, the committee approached Council for a suitable space to rent.
In 1995 the TAFE building in Milton closed its doors. The Society was delighted to be able to acquire rental of two rooms which they set up as a gallery to exhibit their works and conduct workshops.
The Millhouse Art Society has been running a successful gallery there with four exhibitions per year, which change at the beginning of each season.