text:
Thursday, August 14, 7:30
Book Launch for 'Muddy Treads'
Photography by PETER SUTHERLAND
Seems Books
Sutherland will conduct a slide show and show movie clips about the making of the book, as well as provide commentary and Q&A. Family will be giving away 100 signed limited posters by Sutherland.
Peter Sutherland has released several publications and films, most recently Buck Shots (powerHouse Books), Tierney Gearon: The Mother Project (Zeitgeist Films), and Game (Nieves), as well as contributing regularly to Vice, and i-D magazines. His work employs some of the techniques of traditional documentary photography to capture the hidden beauty of ordinary objects and everyday situations.
Sutherland has shown in group exhibitions at Rivington Arms/NY, Guild and Greyskull/NY, Circleculture Gallery/Berlin, V1 Gallery/Copenhagen and the travelling Tiny Vices show, currated by Tim Barber. His solo exhibitions have been on view at Someday Gallery/Melbourne, MU/Eindhoven and Gallery White Room/Tokyo.
There was a large chunk of land behind my junior high school known as "The Hills." It was an unclaimed no man's land, where you could do whatever you wanted. There were strange half built sheds, bags of lawn clippings, some illegally dumped furniture, and the occasional dead animal. Locals would go there to drink beer, burn stuff for fun, and drive four wheelers on the hills, some of which were steep and untracked. There were arched tracks left behind by motorcyclists on the hillsides where they had attempted to ride over the highest point (usually a stump). There was a muddy pond and twisted-up sage brush; all which was hidden from civilization. The edge of the land was the closest possible point to the high school where the kids could smoke. It was also the only place for them to go if they had skipped class and didn't own a car. One day I was back there after school riding my bike (I was 12) and I saw a group of about eight stoners from the high school. They had discovered an abandoned jeep! They pushed it up a massive dirt hill and were taking joy rides in it. It was bouncing over rocks at high speeds and kicking up dust without the sound of an engine. It was probably the most unsafe operation I had ever seen in my life but I could see the expressions of pure joy on their faces. It's one of my favorite memories from that time and somehow everyone survived. I like empty plots of land like that one. There is always something messed up about them that keeps them from being developed and there's a special kind of freedom that allows for stoners to go four wheeling in abandoned jeeps. The entire state of Alaska feels like a more pristine, grown-up version of one of those areas and everything about it is just a bit too rugged and crazy for the masses. Many of the photos in this book were taken in Alaska. The others are from California, Colorado, Utah, and Vermont. (2006-07)
Peter Sutherland,
http://www.seemsbooks.com/


text:
Not So Fast: California Judge Denies Proposed Settlement in Class Action over Massive Data Breach at Yahoo
By Lowry Yankwich - Edited by Vrushab Gowda
Reports Privacy
In re: Yahoo Inc Customer Data Security Breach Litigation, U.S. District Court, Northern District of California, No. 16-md-02752.
In a Monday night decision on January 28, the U.S. District Court for the Northern District of California denied plaintiffs' motion for preliminary approval of a class action settlement with Yahoo (now part of Verizon Communications Inc.) over data breaches that occurred at the company between 2013 and 2016. Presiding Judge Lucy Koh denied the motion on grounds that the she could not conclude that the settlement was "fundamentally fair, adequate and reasonable."
In 2013, Yahoo was the target of the largest data breach in history – a breach that affected all of its over 3 billion account holders. Further breaches occurred in 2014, and between 2015 and 2016. It was not until September 22, 2016, however, that Yahoo disclosed any of these breaches. In fact, just thirteen days before acknowledging the breaches in public, Yahoo had represented to the SEC that it knew of no incidents of unauthorized access of personal data. As part of its disclosures, Yahoo stated that it had learned of the 2014 data breach during a "recent investigation," but six months later, in March, 2017, admitted that it had had "contemporaneous knowledge" of the 2014 data breach.
The first federal actions against Yahoo were filed shortly after these disclosures. Plaintiffs subsequently filed a Consolidated Class Action Complaint ("CAC") in April, 2017. Plaintiffs sued on behalf of Yahoo users in the United States, Israel, Venezuela, Australia, and Spain, but the Court later dismissed the plaintiffs from Australia, Venezuela, and Spain. The plaintiffs alleged that Yahoo did not appropriately guard users' personal identification information ("PII"), and that members of its security team and legal department knew of the 2014 breach as it was occurring.
Parties agreed to engage in settlement negotiations, and to submit their class action settlement proposal to Judge Koh for approval. The proposal disclosed $50 million for the settlement fund, up to $35 million in attorneys' fees, and up to $2.5 million in attorneys' costs and expenses.
Judge Koh rejected the proposal for its lack of transparency, citing six primary flaws.
First, the Court found that the settlement inadequately disclosed the release of claims related to unauthorized access of data prior to 2013. While the proposed settlement notice explains the settlement only in reference to the 2013, 2014, and 2015-2016 data breaches, the settlement would have released all claims over unauthorized access of data in 2012. Judge Koh cautioned that the notice did not meet standards of due process established in the 9th Circuit, writing that "although providing relief is appropriate, it must be done correctly." Because the settlement would release 2012 claims despite such claims not being part of the litigation, there would be almost no information to allow class members to make an informed decision as to their participation in the settlement and the release of the 2012 claims. Moreover, the proposed notice acknowledged that the settlement class would be broader than previously proposed, but failed to specify how much larger it would be. The Court found that these inadequate disclosures prevented class members and the Court from evaluating the reasonableness of the settlement.
Second, Judge Koh found that the release of the 2012 claims was itself improper, because those claims had not been part of the litigation on which the settlement was based.
Third, the Court criticized the notice's failure to disclose the total size of the settlement fund, further mystifying the nature of the settlement and making it difficult for class members and the Court to assess its reasonableness.
Fourth, Judge Koh strongly criticized the proposed settlement for its attorneys' fee allowance, concluding based on two separate methods of calculation that the fee awards were likely unreasonably high. If fully awarded, attorneys' fees would be as high as 40% of the settlement fund. Judge Koh contrasted the proposed attorneys' fee amount with that in In re High-Tech, an anti-trust suit that resulted in a $415 million settlement but had a smaller attorney fee allowance. Underscoring its belief that the attorneys' fee figure was likely too large, the Court asserted that the plaintiffs' legal theories overlapped with other proceedings, and were "not particularly novel." Judge Koh's principal concern was that if attorneys' fees were unreasonably high, they would revert to the defendant, Yahoo, rather than to class members. This potential reverter would not be in class members' best interest as part of the settlement package, the Court found.
Fifth, the Court found that the proposed settlement did not adequately disclose the scope of non-monetary relief, such as changes in business practice or security measures that Yahoo would take as part of the settlement. Yahoo made only vague commitments to enhance its security, and did not propose any specific budgetary increases. The Court found that this lack of specificity left the Court without sufficient information to consider benefits offered to class members.
Finally, the Court denied the preliminary settlement proposal for presenting a misleading estimate as to the size of the settlement class. While Yahoo had previously and publicly advertised its large number of users – over 1 billion active users worldwide, and over 650 monthly users – it purported not to be able to estimate the number of active users for purposes of the settlement. Instead, it resorted to an estimate based on the size of the U.S. population, and the percentage of people with Yahoo accounts. Yahoo did provide an estimate of the number of active user accounts in the U.S. for the relevant period, but under seal. Comparing the publicly disclosed number to that under seal, the Court found that the disclosed number was likely inaccurate, and that the Court could thus not adequately assess the strength of the plaintiffs' case.
Judge Koh roundly chastised Yahoo for its "history of nondisclosure and lack of transparency," writing that the proposed settlement agreement only continued this pattern of opacity.
Following the Court's decision, Verizon, Yahoo's new owner, said: "While preliminary approval of the settlement was not granted, we're confident that we can achieve a viable path forward."

redpajama_set_name: RedPajamaCommonCrawl


text:
require('../../../support/spec_helper');

describe("Cucumber.Ast.Filter.ElementMatchingTagSpec", function () {
  var Cucumber = requireLib('cucumber');

  var spec, tagName;

  beforeEach(function () {
    tagName  = "tag";
    spec = Cucumber.Ast.Filter.ElementMatchingTagSpec(tagName);
  });

  describe("isMatching()", function () {
    var _ = require('underscore');

    var element, elementTags, matchingElement;

    beforeEach(function () {
      elementTags     = createSpy("element tags");
      element         = createSpyWithStubs("element", {getTags: elementTags});
      matchingElement = createSpy("whether the element is matching or not");
      spyOn(spec, 'isExpectingTag');
    });

    it("gets the element tags", function () {
      spec.isMatching(element);
      expect(element.getTags).toHaveBeenCalled();
    });

    it("checks whether the spec tag is expected or not", function () {
      spec.isMatching(element);
      expect(spec.isExpectingTag).toHaveBeenCalled();
    });

    describe("when the spec tag is expected on the element", function () {
      beforeEach(function () {
        spec.isExpectingTag.andReturn(true);
        spyOn(_, 'any').andReturn(matchingElement);
      });

      it("checks whether any of the element tags match the spec tag", function () {
        spec.isMatching(element);
        expect(_.any).toHaveBeenCalledWith(elementTags, spec.isTagSatisfying);
      });

      it("returns whether the element matched or not", function () {
        expect(spec.isMatching(element)).toBe(matchingElement);
      });
    });

    describe("when the spec tag is not expected on the element", function () {
      beforeEach(function () {
        spec.isExpectingTag.andReturn(false);
        spyOn(_, 'all').andReturn(matchingElement);
      });

      it("checks whether any of the element tags match the spec tag", function () {
        spec.isMatching(element);
        expect(_.all).toHaveBeenCalledWith(elementTags, spec.isTagSatisfying);
      });

      it("returns whether the element matched or not", function () {
        expect(spec.isMatching(element)).toBe(matchingElement);
      });
    });
  });

  describe("isTagSatisfying()", function () {
    var checkedTag;

    beforeEach(function () {
      checkedTag = createSpyWithStubs("element tag", {getName: null});
      spyOn(spec, 'isExpectingTag');
    });

    it("gets the name of the tag", function () {
      spec.isTagSatisfying(checkedTag);
      expect(checkedTag.getName).toHaveBeenCalled();
    });

    it("checks whether the spec tag is expected or not on the element", function () {
      spec.isTagSatisfying(checkedTag);
      expect(spec.isExpectingTag).toHaveBeenCalled();
    });

    describe("when the spec expects the tag to be present on the element", function () {
      beforeEach(function () {
        spec.isExpectingTag.andReturn(true);
      });

      describe("when the tag names are identical", function () {
        beforeEach(function () {
          checkedTag.getName.andReturn(tagName);
        });

        it("is truthy", function () {
          expect(spec.isTagSatisfying(checkedTag)).toBeTruthy();
        });
      });

      describe("when the tag names are different", function () {
        beforeEach(function () {
          checkedTag.getName.andReturn("@obscure_tag");
        });

        it("is falsy", function () {
          expect(spec.isTagSatisfying(checkedTag)).toBeFalsy();
        });
      });
    });

    describe("when the spec expects the tag to be absent on the element", function () {
      beforeEach(function () {
        tagName = "tag";
        spec    = Cucumber.Ast.Filter.ElementMatchingTagSpec("~" + tagName);
        spyOn(spec, 'isExpectingTag').andReturn(false);
      });

      describe("when the tag names are identical", function () {
        beforeEach(function () {
          checkedTag.getName.andReturn(tagName);
        });

        it("is truthy", function () {
          expect(spec.isTagSatisfying(checkedTag)).toBeFalsy();
        });
      });

      describe("when the tag names are different", function () {
        beforeEach(function () {
          checkedTag.getName.andReturn("@obscure_tag");
        });

        it("is falsy", function () {
          expect(spec.isTagSatisfying(checkedTag)).toBeTruthy();
        });
      });
    });
  });

  describe("isExpectingTag()", function () {
    it("is truthy when the tag does not start with a tilde (~)", function () {
      tagName  = "tag";
      spec = Cucumber.Ast.Filter.ElementMatchingTagSpec(tagName);
      expect(spec.isExpectingTag()).toBeTruthy();
    });

    it("is falsy when the tag starts with a tilde (~)", function () {
      tagName  = "~tag";
      spec = Cucumber.Ast.Filter.ElementMatchingTagSpec(tagName);
      expect(spec.isExpectingTag()).toBeFalsy();
    });
  });
});

redpajama_set_name: RedPajamaGithub


text:
MPs call for 'zero tolerance' approach to leaks after Sir Kim Darroch row
Row over leaked diplomatic memos
A "corrosive culture of leaking" at the heart of Whitehall should be tackled with a robust approach and tougher sanctions, MPs urged.
The damage caused by the unauthorised release of Sir Kim Darroch's diplomatic dispatches from his role as UK ambassador in Washington showed the "reckless and dangerous" behaviour of leakers, a report said.
The Commons Foreign Affairs Committee suggested a review of Foreign Office classification measures for sensitive messages and suggested that leakers could face being stripped of their pensions and be made to pay for the cost of investigations.
Sir Kim resigned as UK ambassador to the US after his candid assessments of Donald Trump's "inept" administration were made public.
The US president lashed out at "wacky" and "pompous" Sir Kim – and the UK Government – after his diplomatic telegrams were revealed.
…handled. I told @theresa_may how to do that deal, but she went her own foolish way-was unable to get it done. A disaster! I don't know the Ambassador but have been told he is a pompous fool. Tell him the USA now has the best Economy & Military anywhere in the World, by far…
— Donald J. Trump (@realDonaldTrump) July 9, 2019
The Foreign Affairs Committee said: "The unauthorised disclosure of material sent by Sir Kim Darroch makes one thing very clear: those who leak are reckless and dangerous.
"In this case they have caused the resignation of a dedicated and skilled public servant, undermined the influence of the United Kingdom around the world and, potentially, caused a damaging rift with our most important ally."
Foreign Affairs Committee chairman Tom Tugendhat (Niall Carson/PA)
Committee chairman Tom Tugendhat said: "The Foreign Affairs Committee condemns this leak completely. We greatly regret that it resulted in the resignation of Sir Kim Darroch after such a long and distinguished career."
The committee called for a "zero tolerance approach to leaks" and called for all unauthorised disclosures of information to be treated robustly and with an "absolute determination to identify and punish the source".
The MPs said: "Leaks are a canker in the civil service and if permitted at any level will corrode the heart of the institutions that deliver Government policy."
They said that when leaks appeared to be favourable to the Foreign Office "the Department's determination to find the source of the leak has not been sufficiently robust".
The MPs said the Government "must not pick and choose with leaks: if it sends out a message that some leaks can be tolerated it helps create a culture where those who are tempted to leak are emboldened to do so".
Mr Tugendhat said: "Confidentiality is at the heart of our diplomacy. The effective functioning of Government depends on it.
"Leaks are corrosive and undermine the work of the FCO, the civil service and the wider Government at home and abroad. They place civil servants in untenable situations and betray the trust placed in us to serve our nation.
"The FCO must commit to rooting out all sources of leaks; there must be consistency in approach, sending a clear signal that leaking will not be tolerated at any level."
Deeply saddened to hear of the resignation of Sir Kim Darroch. Standing up for Britain means standing up for the finest diplomats on the world. It should never have come to this.
— Jeremy Hunt (@Jeremy_Hunt) July 10, 2019
The MPs also called for Sir Kim's successor as ambassador to face a pre-appointment hearing from the committee.
There has been speculation that new prime minister Boris Johnson could fill the Washington vacancy with a political appointment for an ally rather than a career diplomat.
The committee said that "given the importance of the appointment" the MPs should be allowed to scrutinise – but not veto – the choice.
"At a time when the civil service is being thrust into the centre of the political debate, including an additional layer of scrutiny to the appointment process would provide extra protection against unfair and unfounded claims of political bias of civil servants that incidents such as leaks can generate," the MPs said.
A Foreign Office spokesman said: "We take the security of our diplomatic reporting extremely seriously and continue to review our processes.
"It is important our ambassadors and high commissioners around the world can provide ministers with an honest, unvarnished assessment of the politics in their country and we will respond to this report in due course."


text:
You are on the visitor edition of SanDiego.com. If you would like to view the local edition click the "local" tab above. Would you like to make this your default choice when visiting this site?
Yes, I am a visitor to San Diego
No, I am a local San Diegan
Visitor Site: A comprehensive visitors guide to everything in San Diego. Find activities, purchase discount park passes, book a hotel reservation online and more.
Local Site: San Diego's premier online source for locals to find out what's happening in and around their neighborhood.
Search San Diego
Follow @mysandiego
Forecast »
Traffic »
Best of San Diego
Beauty & Shopping
San Diego Weather
San Diego Area Airports
Visit Oceanside
Visit National City
Important Contact Information
Pet-Friendly San Diego
LGBT Community Guide
National City - A Great Place to Save in San Diego
It's time to take a second look at San Diego's second oldest city. Many people coming to visit may not think of National City as a possible hotel destination, but it's quickly becoming one of the best places to book a budget friendly hotel in San Diego. The National City we knew 20 years ago has been transformed and is now a SanDiego.com Editor's Choice with a beautiful marina, fun family-friendly events, an array of budget-friendly hotels and an ideal location just minutes from downtown San Diego and Baja California, Mexico.
National City is rich in San Diego history with it's own Brick Row on Heritage Square and Santa Fe Rail Depot which is now a museum open on the weekends. The museum dates back to 1882 and has been restored fully creating an interesting look of the old days in San Diego. The distinct architecture of the Brick Row is stunning amidst the streets of San Diego. The architect who designed this historical building, also designed the infamous Folsom Prison. It's a great excuse to turn on some Johnny Cash and check out the historic sites of National City.
Visitors looking to save big on lodging in San Diego, should seriously consider booking a National City hotel. It's close proximity to Downtown means the thriving Gaslamp Quarter, baseball action at PETCO Park, big events like Comic-Con International at the Convention Center and the world famous San Diego Zoo are all just 10 minutes away. Visitors can book a budget-friendly hotel in National City and enjoy the quaint quiet of a family focused neighborhood while also being a short drive from downtown and just 15 minutes from Baja California, Mexico.
Not only is National City convenient and close to some of the biggest attractions in San Diego, it's also home to many of it's own charming attractions. One of the prettiest places in National City is Pepper Park, comprised of 5.5 acres along the San Diego Bay. Pepper Park has a fishing pier, boat launch and plenty of picnic areas for visitors and families to enjoy the waterfront location. Another popular attraction is Kimball Park, home to an incredible skate park, baseball fields and tennis and basketball courts.
For guests who'd rather hit the mall then hit the field, National City has it's own huge shopping mall. The recently renovated Westfield Plaza Bonita Mall is a shopping Mecca for big brand and upscale shoppers. For the car lovers in your group, National City is also home to the renowned Mile of Cars with 21 car franchises including everything from Toyota to Volkswagen.
National City is the perfect destination for travelers looking to save some money on lodging while enjoying all San Diego has to offer. Visitors can enjoy National City with a round of golf at the National City Golf Course or a beautiful bike ride along the 24-mile Bayshore Bikeway, then take a short cab ride (or complimentary shuttle from some hotels) to the exciting and vibrant Gaslamp Quarter. A stay in National City saves visitors big bucks so they have more to spend on having a great time in San Diego!
Copyright © 1996 - SanDiego.com. All rights reserved. Content may not be reproduced without written consent.


The Indonesian Textile Association (API) was established in Jakarta by a number of textile entrepreneurs on June 17th 1974. API is a textile organization covering the whole textile industry sector ranging from mainstream to downstream industry (the making of fiber and filament, texturizing, spinning, weaving, knitting/embroidery, dyeing/printing/finishing, batik, garment, and other textile articles as well as trade of national textile products). API focuses on serving the needs and interests of members and other textile stakeholders.


For many people in East Africa, the current drought is the worst in living memory. Pastoralists have been hit particularly hard by this drought, which has left many of them without most or all of their livestock. In many of these cases resilience isn't necessarily the answer as people are not able to go back to the livelihoods they used to have.
The recurrent and worsening droughts are forcing changes to pastoralists' lives and livelihoods. Against this backdrop, research published in December 2017 by Tufts University, based in Massachusetts, United States, demonstrates growing inequality among herders as they struggle to respond to the droughts and weather unpredictability. In particular, it draws attention to five key 'pathways to resilience', or strategies to better cope with the conditions without falling into crisis.
There is a need to diversify income streams. As an alternative to sheep and goats, cows could be introduced in wetter areas and camels in drier areas. Livestock production is not about to disappear but more and better ways to benefit from animal products are needed – such as production of milk and yoghurt. It is also important to maximise value in country, rather than relying on the export market.
There is a need to improve access to markets. For example, through better price and demand information, better linkages between buyers and sellers, and clear product quality expectations. Ultimately, it is about livestock herders making higher and more consistent income from their animals as well as choosing and having the means to buy and sell according to price and climate forecasting. With increasingly frequent droughts this may mean buying more drought-tolerant breeds or selling animals while still healthy before they become weak from lack of pasture.
Increasing commercialisation is leading to more private control of pasture land and breakdown of communal environmental management. Strengthening institutions that govern communal and sustainable access to grazing land and water is a way to help smaller herders and the land they depend on. For example, encourage meetings between existing institutions' committees, local livestock herders and local government with responsibility for livestock and the environment. This allows them to hear each other's issues and decide what they want to do differently. A committee that is not really working can benefit from meeting another that is functioning well in the same country, to ask questions and learn. This has worked successfully with self-help groups in Somaliland.
Meeting allows them to hear each other's issues and decide what they want to do differently.
As mobile phone networks have increased coverage and the cost to own and use phones has come down, phones have become more important for herders. By using simple SMS (text messaging), key information is available about access to water and pasture land, as well as weather forecasts, the location and cost of veterinary services, and outbreaks of violence to avoid.
Better education and practical skills make getting a job or starting a business more likely. This enables the diversification of income streams mentioned above. General literacy and numeracy seem to be important – in helping to communicate clearly and understand opportunities as well as to underpin business skills. The type of vocational skills needed will depend on local demand and often on which jobs are seen as appropriate for men and women to carry out in a particular context.


Unfortunately, this accident can be used to highlight many truisms. Bereft of airbags, crumple zones, and steel enclosures to use as protection, riders are far more susceptible to serious traumatic injuries, and it is much more likely that complications from these injuries could lead to death. Additionally, as we stated above, it is not uncommon for these accidents to occur in broad daylight. As a bicyclist or driver, it is important to remember that your ability to clearly see another person doesn't necessarily mean that they can see you, or that they are looking for you. Practice defensive driving and riding when you are on the road, and always have the awareness to react when necessary. This may not guarantee that you will avoid an accident altogether, but it will certainly lessen its severity.
A 20% decrease in fatalities is a good start, but it is up to all of us to ensure that bicycle fatalities continue to wane. If you or someone you know has been the victim of a bicycle accident, or you think you might have another type of wrongful injury case, feel free to call us. Our lawyers are always available for a free consultation.


text:
Branná (in tedesco Goldenstein) è un comune della Repubblica Ceca facente parte del distretto di Šumperk, nella regione di Olomouc.

Altri progetti

Collegamenti esterni

Comuni del distretto di Šumperk

redpajama_set_name: RedPajamaWikipedia


1. How do mollusks exchange gasses?
2. Which means of fertilization do octopi and squid use?
4. What body symmetry do adult echinoderms have?
did Mugan make that last one up?
5. Why must arthropods molt?
6. Which chelicerates have four pairs of walking legs attached to their cephalothorax?
7. Animals that have both male and female reproductive organs are described as?
8. Which phylum contains the most species of animals?
10. A Marine Biologist finds a critter at the bottom of the sea. It was buried in the sand and has a hard outercovering. The animal is bilaterally symetrical. Upon returning to the surface, she finds that the organism has two shells connected by one hindge. What kind of animal is it?
Email Mr. Mugan | Updated April 26, 2005. | Strive to be happy.


Plan a New Hope, PA shopping trip around your next visit to The Inn at Barley Sheaf Farm. Explore Bucks County and its fantastic shops full of gifts, fashions, antiques and more. The shops at Peddler's Village is along Antiques Row, just 20 minutes from The Inn at Barley Sheaf Farm, provides for a great outdoor shopping experience where you'll find everything from local specialty chocolates to women's and men's fashions, toys, and even a full-service day spa.
For the classic East Coast antiquing experience, New Hope and Bucks County, Pennsylvania is perfect. Take a drive along Route 202 where you'll find endless places to pull over and get lost finding that perfect piece.
Downtown New Hope and right across the bridge in Lambertvile provides for a fun afternoon strolling the streets for antiques, apparel, art and more before grabbing a bite to eat at one of the local restaurants.
Find more information on local shopping at visitbuckscounty.com.


text:
After the Film's Venice Premiere, Critics Are Raving Over Lady Gaga in 'A Star Is Born'
Written by Matt Keeley on September 04, 2018
This post is also available in: ไทย
We've been excited for A Star Is Born since it was first announced. Though it's been a long wait, it's finally here — or at least it is if you're currently at the Venice Film Festival. The A Star Is Born premiere was met with great acclaim, even with a shocking incident that interrupted the screening.
A Star Is Born stars Bradley Cooper and Lady Gaga, and the film is Cooper's directorial debut. The film stars Lady Gaga as Ally, a small-town girl hoping to make it big as a singer. She's discovered by Cooper, who plays an alcoholic has-been who launches her career.
Following the A Star Is Born premiere, it's looking like a critical smash hit. Variety's Owen Gleiberman says it's "a transcendent Hollywood movie," The Wrap's Alonso Duralde says "Cooper and Lady Gaga are dynamite together" and The Hollywood Reporter's David Rooney calls the film "heartfelt and gutsy."
But much of the praise goes to its star, Lady Gaga. Time's Stephanie Zacharek says, "The big question that's been hovering in the air for months is, Can Lady Gaga act? It's a ridiculous question. Singers often make fabulous actors. They're primed for it: All singing is acting. But what's surprising about Gaga is how charismatic she is without her usual extreme stage makeup, outlandish wigs and inventive costumes … it's like discovering a new country."
RELATED | Gaga's 'Star Is Born' Track Listing Is Here, Accompanied by Some Odd Nude Photos
Zacharek's not alone. Gleiberman was even more enthusiastic: "Gaga, in an ebullient and winningly direct performance, never lets her own star quality get in the way of the character. Or, rather, she lets us see that star quality is something that lives inside Ally but is still waiting to come out."
And, as befitting Lady Gaga, the A Star Is Born premiere was not without incident. Not only did Gaga make a spectacular entrance on a water taxi (pictured above), but a lightning bolt hit the theater. The strike caused the projector to blow its bulb, stopping the film for about 20 minutes.
Watch the A Star Is Born trailer below:
Are you excited for A Star Is Born?
Italy Lady Gaga musicals


text:
MusicArts & Culture / Entertainment
The Gathering at Chaffee's Reviewed
Easy to love, hard to leave... a lot like a family.
by Ryan Smith
View ProfileTwitterRSS Feed
Ryan Smith
I was just making my way to the main stage at this year's Gathering at Chaffee's when I heard the first strains of "Play That Funky Music," instantly recognizable, carrying over the cool summer-night air.
For a moment there, I almost scoffed. Kinda predictable, that old horse is, I thought.
But flash-forward about six minutes or so: The band is in deep, bending and working that old funk-rock staple out in ways I hadn't figured possible, giving it a whole new (and way better than I'd ever heard before) kind of pulse.
I look around, and see this crowd is really gettin' down now – and, man, I am too.
The tentacles of the mighty Funktapuss – extending their reach over a usually-quiet section of northwestern Pennsylvania countryside – had pulled a crowd of hundreds into their grasps, and I didn't see a soul trying to get away. Just the opposite, in fact: Everyone caught in the moment – myself included – was exactly where they wanted to be.
It seemed the players who make up the Funktapuss' appendages felt the same.
"This is a beautiful, beautiful crowd. I'm lovin' it," frontman Latez Crawley, all smiles and all smooth, told the audience before going back into the grooves. "We've been havin' fun all day" at the Gathering, he said. "I love it."
The Gathering at Chaffee's – to my first, too-short experience there late last month – was indeed easy to love, and hard to leave. A lot like family.
And those who bring the big, little fest about – founder Doug Chaffee, promoters Tracy Evans and Ryan Bartosek, other organizers, volunteers, and the bands – say that's what it is, and they're happy to have their family growing.
It's "really great to be a part of something that so many people look forward to each summer," Bartosek said. "I was on cloud nine all weekend knowing that both the artists and the audience were having a blast."
Evans (who's also Funktapuss' general manager) said the Gathering is about hundreds – and what's looking to grow in coming years to be thousands – "of like-minded people coming together to enjoy time with old friends ... making new ones, and joining forces to jam the day and night away to some pretty amazing music. Nothing compares to the feeling of walking up to and waking up to the sounds of people forgetting their problems for a weekend," and from both sides of the stage, "it's nothing short of amazing," she said.
As far as the music goes, the whole weekend – two days full of sets by plenty of local favorites, new-to-here acts like Funktapuss and main-headliners Aqueous and Cope – was "a gigantic eargasm," Evans said.
I was only there for a Friday-night quickie myself – long enough to catch the Funktapuss and Aqueous sets – but I can't say I left the Gathering feeling at all unfulfilled.
That rendition of "Play That Funky Music," easily the best I've ever heard, was worth the trip in and of itself. And Aqueous – amazing, prog-jam wizards, those fellas – treated my ears (hell, my whole body and being) to what was, again, easily a best-I've-ever-heard with their rendition of Supertramp's "The Logical Song."
And those are just a couple of examples of the many ways in which minds were blown.
"I'm losing myself in my space," a guy beside me who was dancing – a truly into-it, beyond-thinking groove – kept repeating. "The music – I keep losing myself in it, losing myself in my space."
"Well that," I told him, "is never a bad space to be in, my friend."
He smiled. So did I.
And everyone danced some more.
Ryan Smith can be contacted at rSmith@ErieReader.com.
the gathering at chaffeesfunktapussryan bartoseklatez crawleytracy evans


text:
package me.amanj.splittimer.model;

/**
 * Created by Amanj Sherwany on 8/4/16.
 */

import android.app.Activity;
import android.content.Context;
import android.content.res.Resources;
import android.graphics.Color;
import android.os.Bundle;
import android.os.ResultReceiver;
import android.util.Log;
import android.util.TypedValue;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.view.LayoutInflater;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import android.os.Handler;

import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.PopupMenu;
import androidx.core.util.Pair;
import androidx.recyclerview.widget.RecyclerView;

import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;

import java.text.DateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import me.amanj.splittimer.R;
import me.amanj.splittimer.messages.Message;
import me.amanj.splittimer.messages.MessageTag;
import me.amanj.splittimer.messages.Send;
import me.amanj.splittimer.ui.SaveDialog;
import me.amanj.splittimer.util.CSVSupport;
import me.amanj.splittimer.util.Configurations;
import me.amanj.splittimer.util.TimeInformation;

public class SplitTimerListAdapter extends RecyclerView.Adapter<SplitTimerListAdapter.ViewHolder> {

    private static EventBus bus = EventBus.getDefault();
    private final List<TimeInformation> mItems = new ArrayList<>();
    private final List<TimeInformation> itemsPendingRemoval = new ArrayList<>();
    private static final int PENDING_REMOVAL_TIMEOUT = 5000; // 3sec
    private Handler handler = new Handler(); // hanlder for running delayed runnables
    // map of items to pending runnables, so we can cancel a removal if need be
    private Map<TimeInformation, Runnable> pendingRunnables = new HashMap<>();
    private int lastOpened = -1;

    public int getLastOpened() { return lastOpened; }
    public void setLastOpened(int lastOpened) { this.lastOpened = lastOpened; }

    private final Context mContext;
    private final static String TAG = SplitTimerListAdapter.class.getCanonicalName();

    public SplitTimerListAdapter(Context context) {
        bus.register(this);
        mContext = context;
    }

    public void addAll(List<TimeInformation> mItems) {
        this.mItems.addAll(mItems);
        redrawAll();
    }

    public void add(TimeInformation item) {
        mItems.add(item);
        redrawAll();
    }

    public void clear() {
        mItems.clear();
        redrawAll();
    }

    public void redrawAll () {
        notifyDataSetChanged();
    }

    public void remove(int index) {
        TimeInformation item = mItems.get(index);
        if (itemsPendingRemoval.contains(item)) {
            itemsPendingRemoval.remove(item);
        }
        if (mItems.contains(item)) {
            mItems.remove(index);
            redrawAll();
        }
    }

    public void updateShowFragment(final int index, final MessageTag tag){
        bus.post(new Send<Integer>() {
            @Override
            public Integer receive() {
               return index;
            }

            @Override
            public MessageTag tag() {
                return tag;
            }
        });
    }

    public void pendingRemoval(final int position) {
        final TimeInformation item = mItems.get(position);
        if (!itemsPendingRemoval.contains(item)) {
            itemsPendingRemoval.add(item);
            // this will redraw row in "undo" state
            notifyItemChanged(position);
            // let's create, store and post a runnable to remove the item
            Runnable pendingRemovalRunnable = new Runnable() {
                @Override
                public void run() {
                    int index = mItems.indexOf(item);
                    remove(index);
                }
            };
            handler.postDelayed(pendingRemovalRunnable, PENDING_REMOVAL_TIMEOUT);
            pendingRunnables.put(item, pendingRemovalRunnable);
        }
    }

    public boolean isPendingRemoval(int position) {
        if(position < 0 || position >= mItems.size()) return false;
        TimeInformation item = mItems.get(position);
        return itemsPendingRemoval.contains(item);
    }

    // Usually involves inflating a layout from XML and returning the holder
    @Override
    public SplitTimerListAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        Context context = parent.getContext();
        LayoutInflater inflater = LayoutInflater.from(context);

        // Inflate the custom layout
        View contactView = inflater.inflate(R.layout.stored_splittimer_list_item, parent, false);

        // Return a new holder instance
        ViewHolder viewHolder = new ViewHolder(contactView, this);
        return viewHolder;
    }

    // Involves populating data into the item through holder
    @Override
    public void onBindViewHolder(SplitTimerListAdapter.ViewHolder holder, final int position) {

        final TimeInformation tinfo = (TimeInformation) getItem(position);

        final TextView nameView = holder.getTitleView();
        final TextView timeView = holder.getTimeView();
        final Button undoButton = holder.getUndoButton();
        final ImageView overflow = holder.getOverflowIcon();

        if (itemsPendingRemoval.contains(tinfo)) {
            // we need to show the "undo" state of the row
            holder.itemView.setBackgroundColor(Color.GRAY);
            nameView.setVisibility(View.INVISIBLE);
            timeView.setVisibility(View.INVISIBLE);
            overflow.setVisibility(View.GONE);
            undoButton.setVisibility(View.VISIBLE);
            undoButton.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    // user wants to undo the removal, let's cancel the pending task
                    Runnable pendingRemovalRunnable = pendingRunnables.get(tinfo);
                    pendingRunnables.remove(tinfo);
                    if (pendingRemovalRunnable != null)
                        handler.removeCallbacks(pendingRemovalRunnable);
                    itemsPendingRemoval.remove(tinfo);
                    // this will rebind the row in "normal" state
                    notifyItemChanged(mItems.indexOf(tinfo));
                }
            });
        } else {

            // we need to show the "normal" state
            if(lastOpened == position) {
                holder.itemView.setBackgroundColor(mContext.getResources().getColor(R.color.colorPrimaryLight));
            } else{
                holder.itemView.setBackgroundColor(Color.rgb(250, 250, 250));
            }
            nameView.setVisibility(View.VISIBLE);
            timeView.setVisibility(View.VISIBLE);
            overflow.setVisibility(View.VISIBLE);
            undoButton.setVisibility(View.GONE);
            undoButton.setOnClickListener(null);

            if(tinfo != null) {
                nameView.setText(tinfo.getName());
                Date date = new Date(tinfo.getStoringTime());
                String formattedDate = DateFormat.getInstance().format(date);
                timeView.setText(formattedDate);
            }

            holder.itemView.setLongClickable(true);

            holder.itemView.setOnClickListener(new ListView.OnClickListener() {
                @Override
                public void onClick(View view) {
                    // Notify the hosting Activity that a selection has been made.
                    Log.i(TAG, "List item clicked at: " + position);
                    bus.post(new Send<TimeInformation>() {
                        public MessageTag tag() {
                            return MessageTag.OPEN;
                        }
                        public TimeInformation receive() {
                            final TimeInformation tinfo = (TimeInformation) getItem(position);
                            SplitTimerListAdapter.this.lastOpened = position;
                            return tinfo;
                        }
                    });
                    redrawAll();
                }
            });
        }
    }

    public String dump() {
        StringBuilder builder = new StringBuilder();
        boolean isFirst = true;
        for(TimeInformation tinfo: mItems) {
            Log.d(TAG, " TINFO " + tinfo);
            if(!isFirst) {
                builder.append("\n");
            } else {
                isFirst = false;
            }
            builder.append(CSVSupport.toCSV(tinfo));
        }
        return builder.toString();
    }

    @Override
    public int getItemCount() {
        return mItems.size();
    }

    public Object getItem(int pos) {
        return mItems.get(pos);
    }

    @Override
    public long getItemId(int pos) {
        return pos;
    }

    static public class ViewHolder extends RecyclerView.ViewHolder
            implements PopupMenu.OnMenuItemClickListener {
        private TextView titleView, timeView;
        private ImageView overflow;
        private Button undoButton;
        private final View row;
        private SplitTimerListAdapter outer;

        public ViewHolder(View row, SplitTimerListAdapter outer) {
            super(row);
            this.row = row;
            this.outer = outer;
        }

        public ImageView getOverflowIcon() {
            if (overflow == null) {
                overflow = (ImageView) row.findViewById(R.id.stored_list_item_icon_overflow);
                overflow.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View view) {
                        PopupMenu popup = new PopupMenu(view.getContext(), view);
                        popup.inflate(R.menu.context_menu_entries);
                        popup.setOnMenuItemClickListener(ViewHolder.this);
                        popup.show();
                    }
                });
            }
            return overflow;
        }
        public Button getUndoButton() {
            if (undoButton == null) {
                undoButton = (Button) row.findViewById(R.id.undo_button);
            }
            return undoButton;
        }

        public TextView getTitleView() {
            if (titleView == null) {
                titleView = (TextView) row.findViewById(R.id.saved_item_name);
            }
            return titleView;
        }

        public TextView getTimeView() {
            if (timeView == null) {
                timeView = (TextView) row.findViewById(R.id.saved_item_time);
            }
            return timeView;
        }

        @Override
        public boolean onMenuItemClick(MenuItem item) {
            final int index = getLayoutPosition();
            switch (item.getItemId()) {
                case R.id.context_menu_delete_entry:
                    outer.remove(index);
                    if(outer.lastOpened == index)
                        outer.updateShowFragment(index, MessageTag.DELETED);
                    return true;
                case R.id.context_menu_rename_entry:
                    String name = ((TimeInformation) outer.getItem(index)).getName();
                    SaveDialog newDialog = SaveDialog.newInstance(name, new ResultReceiver(null) {
                        @Override
                        protected void onReceiveResult(int resultCode, Bundle resultData) {
                            final String result = resultData.getString("name");
                            Log.d(TAG, "Rename result received as: " + result);
                            if (resultCode == Activity.RESULT_OK) {
                                Log.d(TAG, "OK is received for rename");
                                bus.post(new Send<Pair<Integer, String>>() {
                                    @Override
                                    public Pair<Integer, String> receive() {
                                        return new Pair<>(index, result);
                                    }

                                    @Override
                                    public MessageTag tag() {
                                        return MessageTag.RENAME;
                                    }
                                });

                            }
                        }
                    });
                    newDialog.getDialog();
                    newDialog.show(((AppCompatActivity) outer.mContext).getSupportFragmentManager(),
                            SaveDialog.TAG);
                    return true;
                default:
                    return false;
            }
        }
    }

    @Subscribe
    public void onEvent(Message message) {
        if(message.tag() == MessageTag.RENAME) {
            Pair<Integer, String> sent = ((Send<Pair<Integer, String>>) message).receive();
            final Integer index = sent.first;
            final String result = sent.second;
            Log.d(TAG, "ItemCount: " + getItemCount());
            ((TimeInformation)getItem(index)).setName(result);
            redrawAll();
            //notifyItemChanged(position);
            if (lastOpened == index) {
                bus.post(new Send<String>() {
                    @Override
                    public String receive() {
                        return result;
                    }

                    @Override
                    public MessageTag tag() {
                        return MessageTag.RENAMED;
                    }
                });
            }
        }
    }
}


Browse our mini mart listings to find the Letona 7-Eleven phone numbers and hours. Information about 24 hour coffee and diesel fuel.
Information about lowest gas price, cheapest gas station and the top-rated mini mart near Letona.


BBRG is co-hosting The 2nd Annual Road Rally and Car Show at NKU! This Sunday, April 22nd.
WHO: The car show & rally is open to street legal vehicles and drivers 18 and up with a valid license. Up to 100 family vehicles and street machines for the road rally. Up to 300 car show entries welcome. Meet area non-profit agencies and the Black 'n' Bluegrass Rollergirls.
SHOW CLASSES: Including but not limited to street rods, street machines, antiques, motorcycles, retro muscle cars, sports cars, exotics, foreign makes, pickups, custom compacts, and a hybrid class. 30 Judge's choice, Top 10 of show trophies.
RALLY COURSE: Approximately 50 miles long. Will take approximately 2 hours (it's not a race – it's a cruise) across quality, street machine and family friendly, back roads throughout scenic Campbell County.
ENTRY FEE: Show entries: $20.00; Rally pre-registration $50 by April 14th. Dual event registration is: $60 by April 14th. Day of rally registration $60 – dual event $70. RSVPs appreciated!


The 40-page document, based on information collected from government and union sources, notes that 52 salmon industry workers have died in Chile since 2005. Norway, by contrast, has not registered a single industry death since 2000.
Twelve of those deaths involved divers, thousands of which work for the industry maintaining net systems or retrieving dead fish from the bottom of pens. In fact, around the island of Chiloé (Region X), three divers have perished in just the past three months.
Diving is a particularly dangerous job as the divers can easily get caught up in netting and end drowning. They also risk developing Acute Decompression Illness, also known as "the bends," a potentially fatal condition that occurs when divers ascend too rapidly and/frequently. Some divers have even been attacked by sea lions, which tend to collect around salmon farms.
According to Cristián Soto, president of the Puerto Montt-based Professional Divers Union (SIBUP), the salmon industry offers little in the way of protection. Divers, for example, are routinely expected to descend beyond regulation depths: 36 meters for qualified "intermediate" divers.
"For those of us who work on installing and maintaining the nets, this is something that happens to us every day. Every day we go down further than we're supposed to. Why do we do it? Because if we don't, we'll be out of work," the SIPUB president told the Patagonia Times in a recent interview.


In Chapter 13, you learned how to extract text from PDF and Word documents. These files were in a binary format, which required special Python modules to access their data. CSV and JSON files, on the other hand, are just plaintext files. You can view them in a text editor, such as IDLE's file editor. But Python also comes with the special csv and json modules, each providing functions to help you work with these file formats.
CSV stands for "comma-separated values," and CSV files are simplified spreadsheets stored as plaintext files. Python's csv module makes it easy to parse CSV files.


(From Left) Holly, Thuja and Portuguese Laurel.
There are a number of different hollies suitable for hedging. The native holly is very popular with its glossy, sharp, spiky leaves and dependant on whether you have male or female plants, you will get a great display of red berries. Berries are an important food source for the bird population and hedge cuttings can be handy for Christmas decorations. The big advantage holly has over others is its shade-loving properties. It will thrive where others require full sun and remain valuable in any planting scheme. However, holly is relatively slow growing and is often discounted for that reason. Here is our comprehensive guide to Holly trees.
Western red cedar comes in several varieties and is valuable as a slower growing conifer hedge. Less well known than other conifer hedges, Thuja will survive on clay soils and can provide a completely compact hedge when regularly trimmed. Also provides a valuable habitat for nesting birds. Plant at 1m intervals.
Has a much smaller bluish leaf than English laurel and has a slower growth rate. However, there are few hedges that can match the majestic sight of a mature Portuguese laurel. Also valued as a very compact hedge which can be located in tighter situations. Does not require a great deal of maintenance once established although slightly more expensive than others. Click here to view our range of Portuguese laurel, Prunus lusitanica.
Cupressocyparis leylandii – Leyland Cypress trees.
Despite its bad press, Leylandii remains one of the top sellers in the UK, primarily for its rapid growth rate and instant screening. Stories of monster size structures only surface where a lack of maintenance is apparent. Kept trimmed twice yearly leylandii will not provide any issues. Another hedge that is often overlooked for its nesting habitat and due to mass production is very reasonably priced. Click here to view our range of Leylandii hedging avaialable at our Tree Nursery based in Essex.
There are a couple of different privet which are often used as a boundary hedge. They have the advantage of being available as bareroot plants making them very much cheaper than rootballed or containerised specimens. Planted in a double row privet will thicken nicely into a solid evergreen boundary. Shiny green, smallish leaf.


text:
DIY remodeling yields rewards, vexations
Marcie Geffner
March 4, 2013 in Real Estate
By day, John Melton, 42, is a human resources manager at a construction company in Phoenix.
By night, weekend and vacation, he's the quintessential do-it-yourself home remodeler, equipped with a workshop, tools, materials and the know-how to get such jobs done.
John Melton wiring for lighting
His latest DIY home remodeling project, a family room makeover, took longer than he'd expected, but his budget, about $3,500, was pretty close to the final cost, and the results were well worth the time and money, he says.
His chief objective was to replace a water-stained drop ceiling that made the room feel small and included a ceiling fan with a decorative spike that put anyone of above-average height, including Melton himself at 5 feet 10 inches tall, in danger of head injuries.
The DIY remodeling project was supposed to take less than a week, but instead it consumed 24 days over a three-month period due to two construction-related surprises — a two-inch variance across the room in framework above the drop ceiling and a piece of header board that stuck out into the room — and a family emergency that took Melton out of state for a time.
About a third of Melton's budget, $1,300, was used to buy a ceiling-plank system that he cut to size and then installed in the family room. Other purchases for the DIY home remodeling project included wood, drywall, Sheetrock compound, nails, screws, insulation, can lights, electrical wire, some tools he expects to use again in the future and a new ceiling fan.
Learning how
Melton wasn't born a home remodeling wiz. He says he started out as a young man with small projects, buying tools and gathering knowledge over time.
"I did minor things in my late 20s and slowly, slowly took on more and became more confident," he says. "I do a lot of research on methods and tools and whatnot before I tackle something, and it just sort of built over time. I built my tools over time and built my knowledge over time, not taking on too much too early."
Planning is crucial to DIY home remodeling. Melton says he makes sketches on graph paper and lists of materials, tools and tasks, laying out each step before he begins.
Melton's wife is an auditor at a county community college system, giving her the skills to help with what Melton calls "the money side" of his projects. The Meltons have two children: one in kindergarten, the other in middle school. The couple financed the family room remodeling project with an income tax refund, six-month interest-free financing from a home improvement store and current paychecks while the project was under way.
"We didn't want to put the whole thing on a credit card and pay it off over a year. We wanted to knock it out," Melton says.
Melton says being a do-it-yourselfer saves money, gives him greater control over his projects and provides enjoyment in the process and results. He also chronicles his efforts in a personal blog at www.AZDIYGuy.com.
DIY remodeling tips
Do-it-yourselfers don't always save money, says Katie Hamilton, co-author, with her husband Gene Hamilton, of "Home Improvement for Dummies" and other home remodeling books. In fact, she says, do-it-yourselfers can be a home improvement contractor's best customers.
"Do-it-yourselfers actually make money for the contractor because they mess up the work, and then they have to hire a contractor to redo it," she says.
John Melton installing ceiling planks
Botching a DIY home remodeling project can prove costly, especially if pricey materials, such as $55-a-roll wallpaper, are ruined, Katie Hamilton warns.
Still, she says homeowners who are inclined to do their own remodeling should go for it, while being mindful of their own degrees of enthusiasm, skill and willingness to learn over time. She also says some projects, like removing wallpaper, are grunt work that anyone can perform at odd hours, while other projects, such as Melton's family room makeover, take more time and skill. Still other projects, such as refinishing a wooden floor, can be divided into smaller jobs — some handled by a pro, others taken on by the homeowner.
It's crucial to plan carefully and build up slowly to bigger projects, as Katie Hamilton says and Melton's experience demonstrates.
"A person who is more organized definitely has the advantage. The more you think through and make your lists and do your homework, the better the result is going to be," Katie Hamilton says.
Another consideration is space, which can be a challenge in a small home or condominium.
"It's not fun when your house is a work zone, and you don't have the space to put the new cabinets that are arriving," Katie Hamilton says.
Two solutions are to convert an attached garage into a work and storage space, or if the home is vacant, designate an interior room for these purposes. Homeowners who are very cramped space-wise might be happier hiring a pro.
Who has to fix neighbor's retaining wall?
What it takes to finance a home remodel
Step wisely when you add a 2nd story
Flag flap means no nap
Old house, young buyers
More On Home Remodeling:
Remodel or move? How to decide
Kitchen remodeling entails patience, prep
Bathroom remodeling requires a plan
What's the life span of a house?


- For amplifier shipping prices, contact us.
We sincerely hope you enjoy anything that you receive from us, but we also realize in many cases that you might never have tried these products prior.
- New products may be returned (in "as new" condition) for a full refund within 7 days of receiving a product. Please contact us prior for a return authorization number.
- Buyer pays return shipping unless there is an issue with the product due to shipping damage (in which case you would notify us within 48 hours of receiving).
- In the event that you would need to return an item, everything that came with your product including literature, packing materials, plastic bags etc must be returned or there will be a 15% restocking fee.
- We will refund your purchase price less our actual shipping costs to you (this applies even if there was free shipping) once we receive the item back.
- Used items have a 72-hour return policy and buyer pays to ship both ways again unless there is an issue or damage to an item that occurred in transit. Please contact us with any questions.


text:
Q: Circular Pane in Java I've been working on a project that needs a Pane displaying nodes in a circle using JavaFX.
This is a university's work so I must not use extern libraries as JFxtras.
Doing a little research I found this class in stackoverflow.
public class CircularPane extends Pane {
    private long degreese = 0;
    private long increment;
    @Override
    protected void layoutChildren() {
        final int radius = 250;
        final double increment = 360 / getChildren().size();
        double degreese = 0;
        for (Node node : getChildren()) {
            double x = radius * Math.cos(Math.toRadians(degreese)) + getWidth() / 2;
            double y = radius * Math.sin(Math.toRadians(degreese)) + getHeight() / 2;
            layoutInArea(node, x - node.getBoundsInLocal().getWidth() / 2, y - node.getBoundsInLocal().getHeight() / 2, getWidth(), getHeight(), 0.0, HPos.LEFT, VPos.TOP);
            degreese += increment;
        }
    }
}

At the beginning I thought it work fine, but later I noticed this.
When I add 40 nodes to the pane it shows this:

But when I try to display 41 nodes, this is what happened:

I didn't really know what was happening until I figured out that white space only appears when I try to show n nodes in the pane and 360 in not divisible by n.
Does anyone have an idea how can I fix it?
Beforehand, thank you very much.

A: You're dividing two ints to calculate the angle. This will truncate the result to an integral value. Assuming you want to place n nodes the result could be wrong by a value less than n-1 (the error is smaller than 1 for each "step").
Just make sure to use a floating point division instead. This way the results should be much more accurate:
final double increment = 360d / getChildren().size();
//                          ^ modification here

Since the first dividend is a double the int returned by size() is automatically promoted to double and the floating point division happens. If you don't add the d suffix, both operands are ints resulting in the problematic division described above.

redpajama_set_name: RedPajamaStackExchange


Enjoy contemporary mainline diesel railroading in the Ouachita Mountains of Oklahoma and Arkansas as KCS trains lug over Rich Mountain. Photographed between Heavener, Ok and Mena, AR; coal trains, grain trains, and general merchandise. List price $29.95, 85 minutes. SKU: KCSOMDVD. Posted 12-8-09.


Please fill out the form below for any requests about our services.
focus in Florida and the Tampa Bay area.
Pressure cleaning and painting company based in Bradenton, FL.
Pool cage painting and pressure washing specialist.
spiral stairs, gates, railings, fences and custom work.
Pressure cleaning and pool service in Sarasota & Manatee counties.
Information about super screen (10-year warranty).


5793 labyrinths found. Showing 4281-4300. Sorted by country, state, city, then zip/postal code.
Two and a half blocks South of Washington Square Park in Greenwich Village.
7-circuit Rainbow-Chakra Labyrinth is available after school hours during the week from 2:30 PM. Best for small people.
e-mail contact for summer hours.
Designer conceived to assist persons and communities bridge divisions within the self, communities, societies and the world.
DeWitt Clinton Park is a 5.8 acre New York City public park between West 52nd Street and 54th Street (Manhattan) and Eleventh Avenue (Manhattan) and the West Side Highway in Manhattan. Two labyrinths exist in this park, one in the children's playground and one on the path surrounding the park at it's north west corner.
This is a rainbow serpent labyrinth painted on canvas with acrylic paint and a blue wash background, designed by Crow Mitchell. it has three circuits and seven chakra colors as well as the milky way Jupiter, Saturn, stars and Mars along with ancient symbols. It is a powerful and dynamic meditation/walk, available for use in indoor or outdoor space by appointment.
Vera DeCicco is the owner and is working with various locations throughout New York City and Brooklyn, indoors and outdoors in public parks.
A rainbow serpent designed with the seven colors of the chakras repeated three times once for each circuit. It is vibrant and alive with a movement all it's own.
I visited this school to give a presentation for the teachers. To my delight, I was invited to walk the labyrinth in the basement. Aromatherapy and candlelight enhanced the soothing and centering experience. A wonderful surprise!
Find The Labyrinth for Contemplation just north of Castle Clinton in Battery Park at the tip of Manhattan. This was commissioned for the first anniversary of September 11th.
The Labyrinth for Contemplation is a seven circuit labyrinth with a circular center. The paths are 3 feet wide.
Installed in 2005 as the floor on the main level of the columbarium under the main church bell tower. While you are welcome to view this labyrinth, it is too small to actually walk.
access to the labyrinth is available most days and for all church events. Call the church office to verify 212-288-4100 or visit website www.stjames.org.
Each season we create a new natural outdoor art labyrinth.
Littletree Orchards is a U-pick orchard open to the public. More information can be found on our website.
The public is welcome to visit when the orchards are open: daily July 1 to Nov 15, from 10 am - 6 pm. Please contact us ahead of time to make arrangements if you wish to visit at other times or for a private booking.
This labyrinth is open to the public during business hours.
This labyrinth is located on the grounds of St. Francis - formerly St. Mark's - Episcopal Church. If you park in the church's lot just off Bellmore Avenue, walk back into the grounds away from the road, passing our organic vegetable garden (proceeds given to the LI Council of Churches Food Pantry in Freeport), and find the labyrinth at the furthest extent of our property. Please come any time you like.
This pretty sand-and-stone labyrinth is on the top of the ski mountain, accessible by a gondola ride up. While walking it one is treated to a sweeping view of the Adirondack Mountains.
The labyrinth is covered over by snow during ski season.
The labyrinth is on Gore Mountain, which is owned by New York state (http://www.gorechamber.com).
In the style of the Medieval Labyrinth (also known as Chartres, cathedral or eleven-path/circuit) first developed during the ninth and tenth centuries CE.
As you face the main building, turn to the right & you will find signs pointing you to the labyrinth. It is not necessarily visible after a snowfall.
It is owned by the Powell House conference and retreat center, run by the Religious Society of Friends (Quaker). They are fairly welcoming, but do sometimes have conferences using the facility, so calling in advance would be a good idea.


text:
20 Years Later: The Pop Stars, The Boy Bands, And The Best Of MTV's TRL Era
June 28, 2017 By The Federalist Staff
Mary Katharine Ham and Kristen Soltis Anderson are on the Federalist Radio Hour to bring back the boy bands, the pop princesses, Carson Daly, and the MTV music videos of the late '90s. Looking back after 20 years, they debate who were the winners, the losers, and what are the younger millennials missing out on.
They focus on the era of MTV's "Total Request Live" program. "It was an 'American Bandstand' for the '90s where all of the teenagers in America gathered to find out what was cool," Ham said. "It was really an arbiter for music, for fashion and for celebrity gossip."
Anderson gives her reasons for ranking Britney over Christina, and NSYNC over Backstreet. "Brittany is an entertainer in a way that I don't think any of the other ones were."
Listen here:
90s Backstreet Boys Brittany Spears Mary Katharine Ham MTV music music videos NSYNC Podcast pop music The Federalist
One Student's First-Person Account Of The Rally That Turned Into A Riot
Georgetown University student Jaron Pensinger joins Emily Jashinsky to discuss how his role as a peaceful protester in D.C. was misconstrued by his peers and the press.
A Second Trump Impeachment Ensures The GOP Will Never Be The Same
Senior Editor Chris Bedford and Culture Editor Emily Jashinsky discuss the Senate's upcoming impeachment trial and what it means for the future of the GOP.
Why Millennials Love To Hate Boomers And Whether Boomers Deserve It
Helen Andrews joins Joy Pullmann to discuss her book "Boomers: The Men and Women Who Promised Freedom and Delivered Disaster."
'Mandalorian' Star Gina Carano Takes Us Behind The Scenes, Explains Her Politics
Gina Carano joins Ben Domenech to discuss her role in the Star Wars series and explain how she approaches ideological diversity and wokeness in Hollywood.
America's Institutional Decline Looks More Like Mexico Than Europe
"If you want to understand the future of the United States, you shouldn't look to Europe, you should look to Mexico," Federalist Political Editor John Daniel Davidson said.


Planning a trip to London? Treat yourself to a luxury experience filled with fine dining at Nobu Hotel Shoreditch. Encompassing Nobu's signature "east-meets-west" philosophy, as well as the artistic and industrial vibe of Shoreditch, the hotel boasts 141 guest rooms, seven suites, and London's newest Nobu restaurant.
With a distinct design and modern façade, Nobu Hotel Shoreditch is the result of the collective efforts of Ben Adams Architects, Ron Arad Architects, and interior designers, Studio Mica. Overhanging floor slabs and cantilevered steel beams form a frayed edge to the east, and a beautifully manicured garden is terraced to provide the restaurant space with natural light. Keeping its locals in mind, the hotel will also be opening its pocket garden to create a public space, offering East Londoners an oasis amid the bustling city.
Guests staying at Nobu Hotel Shoreditch will find their rooms to be a refined haven of relaxed sophistication, blending classic design with contemporary functionality. Immaculate white bathrooms feature a walk-in rain shower and glistening custom gold washbasins. Several unique suites are available as well, with private balconies overlooking the courtyard and pocket garden. And if you want the ultimate luxury experience, inquire about the Nobu Suite – the largest in the hotel with two private balconies, a dining area, lounge, bathtub, and incredible views of London's iconic skyline.
While in-room dining is available, the Nobu Shoreditch restaurant offers a chic environment for relaxing, entertaining, and indulging in Nobu's world-famous dishes. Pioneered by Chef Nobu Matsuhisa and inspired by his travels, the restaurant was built upon an innovative interpretation of Japanese, Peruvian, and other South American cuisines. Dine on classic black cod miso; order up some yellowtail sashimi with jalapeno; or try some new signature specialties created especially for this Shoreditch location.
Aside from date nights and business dinners, Nobu's 80-person terrace is perfect for private functions like rehearsal dinners or an intimate wedding. A semi-private dining space overlooking the open kitchen can also host up to 18 people for events such as bachelorette parties, bridal showers, and birthdays – all, while taking in the "theatre" of Nobu's kitchen.
Visit nobuhotelshoreditch.com for more information.


text:
PR & Social Media Back Talk
Insights and attitude about PR, journalism and traditional and social media.
Are Your Friends' Tweets for Real or Advertising?
Next month, new FTC rules will go into affect that mandate increased transparency among payments to bloggers in exchange for mentions -- because the FTC feels gifts and payments to bloggers is basically a new form of advertising.
Of course, companies can provide gifts and payments to bloggers but still can't control the actual content, tone, timing, etc.
Meanwhile, the New York Times ran an interesting article about sponsored tweets, "A Friend's Tweet Could Be an Ad." Startups like Ad.ly, Like.com, Izea and Peer2 offer ways for celebrities and regular people can insert sponsored statements and get paid for doing so.
From a Tweeter's perspective, I certainly understand the desire to monetize one's following. And from a marketer's perspective, I certainly understand the desire to tap the credibility of people so as to conduct a word-of-mouth initiative.
But it raises some key questions.
For example, some services ensure that any sponsored tweet includes either #ad or #sponsor. But it's not clear that every service does that.
Credibility is important, but it's not clear, yet, what the impact of including sponsored tweets will have on followers. Even without sponsored tweets, there's been some controversy, including around Guy Kawasaki and certain mainstream celebrities, who uses tweets prepared by others including personal assistants.
And the impact on marketers is also unclear. Will people resent those companies that are using Twitter in this obvious, harder sell way? The Times quotes Peer2 co-founderJoey Caroni, who said, "We don't want to create an army of spammers, and we are not trying to turn Facebook and Twitter into one giant spam network. All we are trying to do is get consumers to become marketers for us."
I understand that goal, but that is asking a lot...to get consumers to become marketers for them.
If those services don't require some designation that a tweet is sponsored, I would expect the FTC to start requiring disclosure here.
But I also think this approach, while it generates a way to make money from having a strong followers, is more of an old-style, offline, one-way sell because it does not truly engage followers. From that perspective, I think sponsored tweets is really a Web 1.0 approach.
Posted by Norman Birnbach at 9:05 AM
Labels: accountability, Ad.ly, FTC, Izea, Like.com, Peer2, transparency
Adelaide said...
I agree with your statement "I think sponsored tweets is really a Web 1.0 approach." What good is using followers or friends list if they are not engaged. It's the equivalent to a commercial that people can just tune out. Sure, consumers really do make the best marketers but consumers don't want to feel like marketers.
Norman Birnbach said...
I think you're right -- consumers don't want to feel like their marketers. I know some people who like to provide advice on technology or some other topic. But they don't do it to help a company, they do it to help a friend and to feel knowledgeable. But I guess some people might be willing to serve as a marketer if they were to get paid. That raises credibility issues, which I think is an important Web 2.0 topic.
The difference between Forbes & Fortune
Each magazine works hard to develop its own personality, to provide information and perspective differently from its competitors. While For...
Is the Register Citizen Setting the New Standard for Hybrid Print-Online Newspapers?
Interesting article from the New York Times, " Walk In, Grab a Muffin and Watch a Newspaper Reinvent Itself " about the Torrington...
Bloomberg BusinessWeek Validates Post-PC Prediction
For the second consecutive week, Bloomberg BusinessWeek validates one of our predictions for 2012. Last week's cover story validated our...
Six Reasons PR is Not Dead...Yet
There are a lot of people who like to predict the death of things. Long after TV was supposed to kill off radio (as depicted in " Vide...
How Many 10 Commandments of Social Media Do You Need?
Recently Carrie Yatman , a PR specialist in San Francisco, asked an interesting question on LinkedIn: "Would any of these be in yo...
Unfunny Comic: Mallard Fillmore
When the Boston Globe has made changes to the comics it publishes, the editors get lots of irate emails. Seems people are passionate about ...
The Most Popular Radio Format? It wasn't what you thought
At least, it wasn't what I thought it would be. I've lived in the Northeast, and always knew there were some country music stations...
Wall St. Journal Nominates "Innovation" as Most Overused Word in 2012
Each year, we make predictions as to what may be the most overused phrase in 2012 . In April, we nominated the word " pivot ," use...
Has Print Advertising Started to Recover? And what does that mean for PR?
According to the Wall St. Journal, " Ad Influx Brightens Hopes For Newspapers, Magazines ," some print magazines are posting ...
Will the backlash against social networks - because there will be one when the media tires of the topic - result in anti-social networks?
There will be, if there's a way to monetize it. We need a filter to block all the invites from friends at other social networks. Somet...
Subscribe To PR Back Talk
What's going on with Wikipedia?
Three Rules of Success, According to Accenture's C...
Supreme Court Rules 5-4 Against New England School...
Walt Mossberg, David Pogue & the State of Consumer...
We All Live in a Genre World -- It's a Matter of C...
Are Shelter Books Dead -- Or merely the new bridal...
Bloggers and Journalists Need to Improve Transpare...
Do You Have the Infotention Skills to Survive Onli...
Wired's 10 Best Things We'll Say to Our Grandkids
Lessons to be Learned When Politicians Attack the ...
In Detroit, Separation Between Church and State --...
NYT's David Carr May Be Right That Business Media ...
Getting Internet Buys for Top-Tier Sites For Cheap...
Is NYT's David Carr Right? Has Business Media Chan...
The Recession & The Newsroom
Norman Birnbach
All Things D
Ben Worthen's Biz Tech for WSJ
Flacks Revenge
Jeff Jarvis' BuzzMachine
Jeremy Wagstaff's LooseWireBlog
On The Media: NPR's program analyzing the media
Poynter.com's News
Reynolds Center Business Journalism
Romensko at Poynter Online
Stanley Bing's Blog (No Longer Updated)
Talking Biz News
The Social Media Marketing Blog
When Growth Stalls
EvanCarmichael.com
Copyright 2007-2020 Birnbach Communications Inc. Simple theme. Powered by Blogger.


Summer Fare: Let's light up the globe!
One of the key moments in my spiritual life occurred during a firework display for a 4th of July celebration. I imagined what it would be like if all Christians on the globe successfully reflected God's divine nature, Christ's perfect character, and the fruit of the Holy Spirit. I imagined God launching each of us at the perfect time and selecting the exact location for our light to shine against the backdrop of a dark work for the maximum beauty of His show.
That particular year my heart gained two new understandings. 1) God controls the show. He selects our birth dates and our exact location on the globe (Acts 17:26, 27). 2) If I try to direct the type of light I want to be for Him, I will dim the beauty of His show because only God can see the show in its entirety and know the best spot and type of light for me.
This week I read an article about firework displays to see if the spiritual analogies I have been using for years alongside the design of fireworks displays are credible. I still believe such analogous reasoning is sound. What follows are four principles identified in the article and supported by a quote, then I offer a link to spiritual perspective.
Creating a firework show requires great skill.
If a skilled person can produce the fireworks beauty we are accustomed to, how much better is the perfect God of the universe qualified to orchestrate the light show of His followers on the earth throughout history?
Each firework is purposefully selected and launched.
A firework is essentially a missile designed to explode in a very controlled way with bangs and bursts of brightly colored light.
How wonderful to think that we were designed to explode in a very controlled way for the show. The Bible says God determined the times set for each of us and the exact places where we should live. (Acts 17:26). Why? He did this so that people would seek Him and perhaps reach out for Him and find Him (Acts 17:27).
We are to be lights for Him from wherever we reside on the globe!
Fireworks receive their colors from heat.
Fireworks get their color from metal compounds (also known as metal salts) packed inside. You probably know that if you burn metals in a hot flame (such as a Bunsen burner in a school laboratory), they glow with very intense colors— that's exactly what's happening in fireworks.
I Peter 1:6-7 talks about the relationship between living in the heat of the battle (suffering) and being a light.
We do not shine most brightly when life is going great and we exude joy and firm faith. Everybody is happy when circumstances are pleasant. No, we shine most brightly when in our suffering we still love him, believe in him and remain filled with inexpressible joy for our salvation (I Peter 1:8-9).
Surprise and variety are the key to any good firework display: if all the fireworks were exactly the same, people would quickly get bored. Although all fireworks essentially work the same way—combining the power of a missile with the glory of burning metallic compounds—there are lots of different types.
No two snowflakes are the same. No two fingerprints are the same. No two people are the same.
Our creative God is the reason these statements true. Therefore, it is not a blind leap of faith to consider that each of us reflect the glory of God in a way that cannot be duplicated by another other person in history either. If we try to copy someone else, we not only diminish our own uniqueness but also dim the overall beauty of God's light show.
As we celebrate our country's birthday today, consider the spiritual applications as well. Allow God to stir your heart for the grandeur and glory of what He wants to in and through Christ followers…including you.
Let's light up the globe!
Blog Readers: What are you praying for our country?
Since reading your book, "Living ABOVE the Chaos," I never see fireworks without thinking of your analogy. Thank you for the picture and thank God that, at least once a year, on July 4th, we are reminded that God has a plan and purpose for this thing called 'life.' And our participation in His plan has the potential for breathtaking beauty and brilliance. Love you!
"And our participation in His plan has the potential for breathtaking beauty and brilliance." I love that our hearts beat the same and your heart grabbed fireworks the way my heart did. I love you much.


Company True North Wellness Center is located in the city of Boca Raton. The legal address of the company is 22 SE 6th Street. Other interesting information can be found on working days by phone (561) 400-2123. The scheme of travel to the company True North Wellness Center can be viewed on the interactive map.


text:
The Stress Hormone That's Messing With Your Diet
Health	by Kristen Domonell on 9/29/2015
We've all had those weeks where crazy amounts of stress leave us soothing our woes with late-night ice cream binges. But before your shame-spiral over your lack of self-control, weak willpower isn't the only thing at blame in these scenarios.
Meet the stress hormone cortisol, which is responsible for your body's "fight or flight" mechanism (more on that later). It's been called public health enemy number one for its link to heart disease, diabetes, high blood pressure, memory loss and more. And it might be responsible for weight gain and throwing your eating habits off the rails, too. Here's how cortisol might be messing with your body — and what you can do about it.
RELATED: How to Get Good at Stress
Fight or Flight: What Is Cortisol?
Imagine this: You're driving along in your car and you almost get into an accident. As your tires screech, your body activates its fight or flight response, preparing to protect yourself from harm. The hypothalamus region of the brain, responsible for triggering this response, sends messages to the adrenal glands telling them to release cortisol and adrenaline. This causes the liver to release sugar into the bloodstream and increase blood flow to the heart, increasing heart rate, explains Jen Landa, MD, chief medical officer of BodyLogicMD, a group of physicians specializing in bioidentical hormone therapy.
"Your body sees a skipped meal and low blood sugar as a mini emergency."
"When you get in a car accident, you need a high amount of sugar in your bloodstream in case you need to lift a car off your companion," says Landa. "But the problem is that many are living at 80 percent 'car accident' [mode] all the time, and having a stress response going on chronically becomes dysfunctional." This response is helpful for dealing with short-term crises, but in today's culture where many people feel stressed out all-day-every-day, this constant fight or flight response can spell trouble.
RELATED: Is Chronic Stress Wrecking Your Workouts?
Cortisol vs. Your Waistline
It's not just obvious daily stressors — like your boss nagging you all day — that elevate your levels. Lack of sleep, caffeine, alcohol and even skipping a meal can all raise cortisol, Landa says. "Your body sees a skipped meal and low blood sugar as a mini emergency," she says.
Research shows that high cortisol levels may be to blame for stress eating, with one study finding that women ate more on days they were stressed out than on days they weren't (especially sweets). That's because the sugar-release triggered by elevated cortisol doesn't enter the cells for energy, but instead stays in the bloodstream, says Academy of Nutrition and Dietetics spokesperson Jennifer McDaniel, RD, who specializes in weight management. "This disrupted system increases hunger signals to the brain, leading to an increased appetite for high-calorie foods," she says.
RELATED: How Bad Is Your Food From 1 to 10? Try This Food Calculator
Stress eating is just one way this hormone messes with your weight. Elevated cortisol levels also cause fat to be de deposited deep in the abdomen, which can lead to obesity or weight gain, says McDaniel. This visceral fat, or fat stored around the organs, produces more cortisol compared to other types of fat tissue, she says, which could help explain why it's so easy to gain weight, but so hard to lose it.
6 Ways to Fight Back Against Stress Eating
Stress and cortisol don't have to wreck your diet. These simple tricks can help keep your levels in check — and help you feel better all over.
1. Eat anti-inflammatory foods.
McDaniel encourages her clients to consume a variety of nine servings of fruits and vegetables and two to three servings of fatty fish per week, plus fiber-rich foods like beans and nuts (Here's what 200 calories of nuts looks like). "What we avoid is important as well," she says. Reduce or skip pro-inflammatory foods like trans fats, alcohol, refined or processed grains and sugar-rich foods.
RELATED: Is Inflammation Hurting Your Health?
2. When cravings hit, do something different.
Most cravings are part of a habit cycle, says Landa. Luckily, habits can be changed if you alter your response to stimuli. "When you're stressed out, instead of reaching for a candy bar, reach for a cup of relaxing herbal tea, which will help [calm] you and keep your mouth and hands busy to avoid unnecessary snacking," she says.
3. Meditate.
There are many reasons to get your 'om on. But researchers in Thailand found that medical students who participated in mindfulness meditation, a practice of focusing on the present moment, had significantly lower cortisol levels after just four days of the program. If you're new to the practice, here are some easy tricks to help you meditate (even if you're really impatient).
4. Put a barrier between food and an emotion.
If you usually eat when you're stressed, try grabbing a glass of water, calling a friend, getting out of the house or making some tea instead. "A 15-minute distractor is usually able to reroute an emotional food binge," says McDaniel.
5. Get outside.
Access to green space can significantly lower self-reported stress and cortisol levels, according to Scottish researchers. Just another reason to unplug and spend some time outdoors.
6. Create space for yourself.
If you're constantly putting the needs of something else (work, friends, family, you name it) in front of your own, you won't have enough resources left to handle your own stress. Instead, carve out some time that's just yours. "One of the techniques I personally use is powering down while eating and just eating," says McDaniel. "When I do this, I often find my mind goes to a place of gratitude for my food, or mind-centering places. This pause rejuvenates a working mother of two toddlers with one on the way."
←Previous: Meet the Inspiring H.S. Football Player Battling Leukemia
Next: 7 Moves to Help Prevent Runner's Knee Before It Strikes→


text:
package coretypes

import (
	"testing"

	"github.com/stretchr/testify/assert"

	"github.com/tendermint/tendermint/p2p"
)

func TestStatusIndexer(t *testing.T) {
	var status *ResultStatus
	assert.False(t, status.TxIndexEnabled())

	status = &ResultStatus{}
	assert.False(t, status.TxIndexEnabled())

	status.NodeInfo = p2p.DefaultNodeInfo{}
	assert.False(t, status.TxIndexEnabled())

	cases := []struct {
		expected bool
		other    p2p.DefaultNodeInfoOther
	}{
		{false, p2p.DefaultNodeInfoOther{}},
		{false, p2p.DefaultNodeInfoOther{TxIndex: "aa"}},
		{false, p2p.DefaultNodeInfoOther{TxIndex: "off"}},
		{true, p2p.DefaultNodeInfoOther{TxIndex: "on"}},
	}

	for _, tc := range cases {
		status.NodeInfo.Other = tc.other
		assert.Equal(t, tc.expected, status.TxIndexEnabled())
	}
}


Once you have established that your business is ready for Social CRM, it's time to start bringing together the tools that you need to implement a successful strategy. In most cases, this will be a combination of traditional CRM tools such as Sales Force Automation and Marketing Automation with new social-specific tools such as Predictive Analytics and Big Data Management. Here, we are going to look at the various tools that you might want or need as part of your Social CRM strategy, and the roles that you can expect them to fulfil for you.
While many of the common tools for CRM have been around for a while now, they have all developed rapidly to adapt to the emergence of social media as a mainstream method of communication. Traditional CRM tools such as these can still have an important role to play alongside newer, more social-specific technologies.
Sales Force Automation: This covers a wide variety of processes that could include opportunity management, pipeline management, sales dashboards, quoting systems, and account management.
Marketing Automation: A range of tools for managing campaigns across multiple channels, including lead scoring, email marketing, data cleansing, and lead nurturing.
Customer Service: Several common customer service functions can be streamlined using tools such as speech recognition, knowledge management, online self-service features, interactive voice response, case management, and call centre automation.
Social Media Monitoring: Listening to what your prospects are saying about you online is a crucial part of any customer relationship management strategy that involves social channels. Popular choices for this include Sysomos, Oracle Social Relationship Management, Salesforce.com, and Radian6 – all of which have the ability to tap into at least 200 million sources of unstructured information.
Community Platforms: For companies looking to engage with potential and existing customers online, community platforms are currently one of the go-to social channels. Here, they have a powerful platform for engaging, educating, and informing their customers online. In many cases, these groups can grow organically and independently on external social channels such as Facebook and LinkedIn, and these can be some of the most effective resources for engaging in social CRM activities. However, many companies are finding that it can be advantageous to build their own online communities where they can have more say in the way that this communication is structured and presented. At present, the big players in this market are the consumer-focused Lithium and the more B2B-focused Jive.
Collaboration Tools: It's important for your employees to be able to communicate with customers, and collaboration tools provide an avenue for this. These might compose of tools that give you some insight into what your customers are saying, as well as giving your employees a method for responding. Some of the more commonly-used activity-stream-focused tools for this purpose include Salesforce Chatter, Microsoft Yammer, and Pivotal Social CRM, which provides users with the ability to open a case and communicate with a customer straight from a Tweet or a Facebook post.
Big Data Management: Thanks to the emergence of technologies such as social, mobile, and cloud storage, the amount of data that is being put onto the web is increasing at a phenomenal rate. In fact over 90% of all the data in the world was created in the last two years, and we are currently creating more than 2.5 exobytes of data every day. If you have a need to process lots of data, or anticipate that you will do in future, then you need to find a tool that can handle what will most likely be a rapidly-increasing workload.
Currently, the open-source tool Hadoop is the most widely-used tool for big-data management among vendors and end users, although there are several alternatives including Storm, HPCC, and BashReduce. Whichever system you are using, it's important to make sure that any solution you consider can be easily scaled up when your data needs (inevitably) increase.
Predictive Analytics: It's all very well having lots of data to hand, but unless you find something useful to do with it, it won't justify the investment. Predictive analytics is in many ways the 'killer app' for big data in enterprise at the moment. It covers a range of tools including sentiment and text analysis, across giant data ranges, to deliver actionable insights into the preferences of their customers and prospects.


text:
Q: Timer doesn't stop. Trying to do clicks for n steps I want to do a timer that executes the method mouseRelease for 15 times every 300 ms. For this purpose I have written something like this:
import java.awt.*;
import java.awt.event.*;
import java.awt.SystemColor;
import java.io.*;
import java.lang.*;
import java.util.StringTokenizer;
import javax.swing.Timer;
import java.awt.Robot;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;

public class myapp extends PlugInFrame implements ActionListener, ItemListener, MouseListener {
     [...]
     int total = 0;
     public void mouseReleased(MouseEvent m) {
            [...]
            if (total == 0){
                timer.setRepeats(true);
                timer.setCoalesce(true);
                timer.start();
            }else if (total==14){
                timer.stop;
                total =0;
            }
        }

    Timer timer = new Timer(300, new ActionListener() {
        public void actionPerformed(ActionEvent evt) {
             try {
                if (total < 15){
                    total++;
                    Robot r = new Robot();
                    r.mouseRelease(InputEvent.BUTTON1_MASK);
                }
            } catch(AWTException e) {
                throw new RuntimeException("Failed to create java.awt.Robot for Robo instance", e);
            }
        }
    });
}

My problem is that although it does well its work, at the end it doesn't stop the timer so until I end completely the program it doesn't stop to do clicks. What's wrong with it?
I wish I could print the var total to see if it increases but this code is for a plugin in ImageJ and I don't know how to print and later see the log.

A: The mouseReleased() code is executed only once, when you release the mouse. It is not executed 15 times. When the Timer is started the ActionListener code takes over and is executed every 300ms.
It is easier to stop the Timer in the ActionListener code itself, since this is where the value of the total variable is incremented.
Maybe something like:
public void actionPerformed(ActionEvent e)
{
    if (total == 15)
    {
        Timer timer = (Timer)e.getSource();
        timer.stop();
    }
    else
    {
        // invoke your current code
    }
}

Must admit I don't really understand your logic so I can't make any better suggestion. That is I don't understand why you are attempting to generate 15 mouseReleased() events in succession.
Edit:
A simple example:
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.*;
import javax.swing.Timer;

public class TimerTime extends JPanel implements ActionListener
{
    private JLabel timeLabel;
    private int count = 0;

    public TimerTime()
    {
        timeLabel = new JLabel( new Date().toString() );
        add( timeLabel );

        Timer timer = new Timer(1000, this);
        timer.setInitialDelay(1);
        timer.start();
    }

    @Override
    public void actionPerformed(ActionEvent e)
    {
        timeLabel.setText( new Date().toString() );
        count++;
        System.out.println(count);

        if (count == 10)
        {
            Timer timer = (Timer)e.getSource();
            timer.stop();
        }
    }

    private static void createAndShowUI()
    {
        JFrame frame = new JFrame("TimerTime");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.add( new TimerTime() );
        frame.setLocationByPlatform( true );
        frame.pack();
        frame.setVisible( true );
    }

    public static void main(String[] args)
    {
        EventQueue.invokeLater(new Runnable()
        {
            public void run()
            {
                createAndShowUI();
            }
        });
    }
}