Court Affirms The Right To Leave A Bad Yelp Review

A Texas judge has dismissed a lawsuit against a couple accused of violating their contract with a pet sitting business by leaving a 1-star review on Yelp.

A Texas judge has dismissed a lawsuit against a couple accused of violating their contract with a pet sitting business by leaving a 1-star review on Yelp.

Carrington Coleman Law Firm/Monica Latin

Robert and Michelle Duchouquette from Plano, Texas were sued by Prestigious Pets in Dallas after they wrote the one-star review. The company said the review violated a clause in its contracts which prohibits customers from publicly criticizing the business.

The Yelp review complained of poor communication from the company and a lack of clarity about prices — along with lackluster maintenance of the couple&;s fish bowl. “The one star is for potentially harming my fish,” Michelle Duchouquette wrote in its conclusion. “Otherwise it would be have been two stars.”

Prestigious Pets sought $200,000 to $1 million in damages in the suit, claiming the couple defamed it and violated a non-disparagement clause in its contract with them.

In response to the judge&039;s dismissal of the case, a Prestigious Pets spokesperson told BuzzFeed News the company is considering appealing the ruling, and is “confident that Texas law supports enforcing their contract, including the non-disparagement clause.”

The company said its claim is particularly strong “given the proof presented that Prestigious Pets never agreed to care for the fish, was not paid or hired to care for the fish, and the fish was never harmed.”

The business has said in court documents that the Duchouquettes&039; “media campaign” around the lawsuit led to a “dramatic decrease in new business and the loss of current clients that has left Prestigious Pets a shell of its former success.”

The couple asked the court to dismiss the case in June, arguing their review was an exercise of their right to free speech.

The couple asked the court to dismiss the case in June, arguing their review was an exercise of their right to free speech.

Yelp / Via yelp.com

“The burden is on the plaintiffs to establish, by clear and specific evidence, each essential element of each of their claims,” the couple said in a court document. “They cannot do so.”

The judge apparently agreed. District Court Judge Jim Jordan dismissed the allegations against the Duchouquettes and ordered Prestigious Pets to cover their attorneys’ fees.

The judge also said the couple was entitled to “recover sanctions against the plaintiffs sufficient to deter them from bringing similar actions” under the state&039;s free speech codes.

In May, Yelp placed an alert on its page for Prestigious Pets, warning users the company may be issuing “questionable legal threats” against reviews. The consumer alert was the first of its kind issued by Yelp.

Paul Levy, an attorney with Public Citizen, who represented the Duchouquettes, told BuzzFeed News that the order is a useful step in efforts to protect consumers from being slapped with similar so-called gag clauses.

“The very fact that a non-disparagement clause was held unenforceable shows other consumers that they can stand for their rights,” he said. “What consumer wants to hire a company that sues its customers and has a non-disparagement clause in its contract?”

Michelle Duchouquette said in a statement to BuzzFeed News that the couple is “thankful to have a ruling that supports our right to free speech.”

Michelle Duchouquette said in a statement to BuzzFeed News that the couple is "thankful to have a ruling that supports our right to free speech."

“We are so grateful for the attorneys who have supported us through the case,” she said. “It took lots of hours and many smart minds spending too much time talking about Gordy the betta fish. Thank goodness they did not lose sight of the real issue: the threats posed by non-disparagement clauses to our right to free speech.”

LINK: A Pet Sitting Business Sued These Customers For Posting A Negative Yelp Review

LINK: Yelp’s Warning: This Dentist Might Sue You For Posting A Negative Review

Quelle: <a href="Court Affirms The Right To Leave A Bad Yelp Review“>BuzzFeed

This Gadget Helps You Find Your Wallet When It's Lost

The Tile Slim is an ultra-thin tracker that can fit anywhere a credit card can.

Jenny Chang / BuzzFeed

I was an hour late to a dentist appointment, when I realized I had spent too many damn lifetime minutes looking for my keys.

I was an hour late to a dentist appointment, when I realized I had spent too many damn lifetime minutes looking for my keys.

Which jacket was I wearing yesterday? Are they in that one purse? How about the backpack? Did I leave them in my pants that are now IN THE DRYER? Noooo.
– Me, every morning.

There are a lot of useless gadgets on the market – Dash buttons for binders, $700 juicers, internet-connected laser pointers for cats, and the like – but Tile isn&;t one of them. It can find your stuff when memory fails you.

Bluetooth trackers, like Tile, are a pretty elegant tech solution for an everyday problem. They&039;re small, typically no larger than a tin of lip balm. Almost every tracker has the same features (including Trackr, Chipolo, and, of course, Tile): the ability to ring the item from your phone, display the item&039;s last known or current location on an app, reverse find a phone by pressing on the tracker itself, and tap into a network of the device&039;s users to crowdsource your search when the tracker goes out of Bluetooth range.

I bought my Tile more than a year ago. Of the three trackers I considered, Tile had the most Facebook likes and therefore, perhaps, the most users (“millions,” according to the company)?? Yeah. Idk. Those users, I figured, could come in handy when I lose them for good. ¯_(&;)_/¯

But even on my own, Tile has come in handy more times than I&039;d prefer to admit. My boyfriend has been driven INSANE by the 90-decibel Tile chirp I activate every morning to find my door key.

Nicole Nguyen / BuzzFeed

Tile Slim, a thin, wallet-friendly tracker, is the company’s newest product.

Tile Slim, a thin, wallet-friendly tracker, is the company's newest product.

The company sent a review unit over, on loan, and I&039;ve been playing with it, and trying to lose my stuff ever since.

It&039;s fundamentally the same product as the original Tile, but much slimmer and minus a key ring. There&039;s an integrated button you can double tap to locate your phone, and it will also appear in the app with a map of its current or last known location. It has the same IP5 splash-proof rating and 100-foot Bluetooth LE range.

Tile

It’s lighter (9.3 g), thinner (2.4 mm, or about two credit cards stacked), but has a larger surface area (about 1.5 times larger than the original Tile, diagonally).

It's lighter (9.3 g), thinner (2.4 mm, or about two credit cards stacked), but has a larger surface area (about 1.5 times larger than the original Tile, diagonally).

Nicole Nguyen / BuzzFeed


View Entire List ›

Quelle: <a href="This Gadget Helps You Find Your Wallet When It&039;s Lost“>BuzzFeed

Twitter Says Wishing Rape On A Woman Doesn't Count As Harassment

Kelly Ellis is an software engineer at Medium. She&;s verified on Twitter and has roughly 11,000 followers. And for the past week or so, Ellis has been the subject of relentless targeted abusive tweets from @fredcarson915. Among the barrage of 70 tweets (all of which were posted to Medium by Ellis), @fredcarson9151 tells Ellis he wishes she would be raped and calls her a “psychotic man hating &039;feminist&039;.”

When Ellis reported the abuse, Twitter replied that its investigation found the alleged violent and abusive tweets did not violate Twitter&039;s rules, which prohibit tweets involving violent threats, harassment, and hateful conduct. Twitter&039;s rules explicitly state that one may not “threaten other people on the basis of race, ethnicity, national origin, sexual orientation, gender, gender identity, religious affiliation, age, disability, or disease.”

Anyhow, here are some tweets that Twitter does not believe rise to the level of violent, abusive, or hateful:

When Ellis responded to her harasser&039;s tweets, @fredcarson9151 blocked her, but continued to respond to her tweets, rendering Ellis unable to report new instances of harassment.

In response to Twitter&039;s inaction (she alleges in her tweets she has been in contact with some Twitter employees), Ellis said she&039;ll be leaving the network.

As of this writing, @fredcarson9151 is still tweeting.

As of this writing, @fredcarson9151 is still tweeting.

Twitter did not immediately respond to a request for comment.

Quelle: <a href="Twitter Says Wishing Rape On A Woman Doesn&039;t Count As Harassment“>BuzzFeed

Building scalable web prototypes using the Google Cloud Platform stack

Posted by Jason Mayes, Google Web Engineer

As a web engineer at Google, I’ve been creating scaled systems for internal teams and customers for the past five years. Often these include a web front and back-end component. I would like to share with you a story about creating a bespoke machine learning (ML) system using the Google Cloud Platform stack — and hopefully inspire you to build some really cool web apps of your own.

The story starts with my curiosity for computer vision. I’ve been fascinated with this area for a long time. Some of you may have even seen my public posts from my personal experiments, where I strive to find the most simple solution to achieve a desired result. I’m a big fan of simplicity, especially as the complexity of my projects has increased over the years. A good friend once said to me, “Simplicity is a complex art,” and after ten years in the industry, I can say that this is most certainly true.

Some of my early experiments in computer vision attempting to isolate movement

My background is as a web engineer and computer scientist, getting my start back in 2004 on popular stacks of the day like LAMP. Then, in 2011 I joined Google and was introduced to the Google Cloud stack, namely Google App Engine. I found that having a system that dealt with scaling and distribution was a massive time saver, and have been hooked on App Engine ever since.

But things have come a long way since 2011. Recently, I was involved in a project to create a web-based machine learning system using TensorFlow. Let’s look at some of the newer Google Cloud technologies that I used to create it.

Problem: how to guarantee job execution for both long running and shorter time critical tasks

Using TensorFlow to recognize custom objects via Google Compute Engine

Earlier in the year I was learning how to use TensorFlow — an open source software library for machine intelligence developed by Google (which is well worth checking out by the way). Once I figured out how to get TensorFlow working on Google Compute Engine, I soon realized this thing was not going to scale on its own — several components needed to be split out into their own servers to distribute the load.

Initial design and problem
In my application, retraining parts of a deep neural network was taking about 30 minutes per job on average. Given the potential for long running jobs, I wanted to provide status updates in real-time to the user to keep them informed of progress.

I also needed to analyze images using classifiers that had already been trained, which typically takes less than 100ms per job. I could not have these shorter jobs blocked by the longer running 30-minute ones.

An initial implementation looked something like this:

There are a number of problems here:

The Google Compute Engine server is massively overloaded, handling several types of jobs.
It was possible to create a Compute Engine auto-scaling pool of up to 10 instances depending on demand, but if 10 long-running training tasks were requested, then there wouldn’t be any instances available for classification or file upload tasks.
Due to budget constraints for the project, I couldn’t fire up more than 10 instances at a time.

Database options
In addition to having to support many different kinds of workloads, this application required being able to store persistent data. There are a number of databases that support this, the most obvious of which is Google Cloud SQL. However, I had a number of issues with this approach:

Time investment. Using Cloud SQL would have meant writing all that DB code to integrate with a SQL database myself, and I needed to provide a working prototype ASAP.
Security. Cloud SQL integration would have required the Google Compute Engine instances to have direct access to the core database, which I did not want to expose.
Heterogeneous jobs. It’s 2016 and surely there’s something that solves this issue already that could work with different job types?

My solution was to use Firebase, Google’s backend as a service offering for creating mobile and web applications. Firebase allowed me to use their existing API to persist data using JSON objects (perfect for my Node.js based server), which allowed the client to listen to changes to DB (perfect for communicating status updates on jobs), and did not require tightly coupled integration with my core Cloud SQL database.

My Google Cloud Platform stack

I ended up splitting the server into three pools that were highly specialized for a specific task: one for classification, one for training, and one for file upload. Here are the cloud technologies I used for each task:

Firebase
I had been eyeing an opportunity to use Firebase on a project for quite some time after speaking with James Tamplin and his team. One key feature of Firebase is that it allows you to create a real-time database in minutes. That’s right, real time, with support for listening for updates to any part of it, just using JavaScript. And yes, you can write a working chat application in less than 5 minutes using Firebase! This would be perfect for real-time job status updates as I could just have the front-end listen for changes to the job in question and refresh the GUI. What’s more, all the websockets and DB fun is handled for you, so I just needed to pass JSON objects around using a super easy-to-use API — Firebase even handles going offline, syncing when connectivity is restored.

Cloud Pub/Sub
My colleagues Robert Kubis and Mete Atamel introduced me to Google Cloud Pub/Sub, Google’s managed real-time messaging service. Cloud Pub/Sub essentially allows you to send messages to a central topic from which your Compute Engine instances can create a subscription and pull/push from/to asynchronously in a loosely coupled manner. This guarantees that all jobs will eventually run, once capacity becomes available, and it all happens behind the scenes so you don’t have to worry about retrying the job yourself. It’s a massive time-saver.

Any number of endpoints can be Cloud Pub/Sub publishers and pull subscribers

App Engine
This is where I hosted and delivered my front-end web application — all of the HTML, CSS, JavaScript and theme assets are stored here and scaled automatically on-demand. Even better, App Engine is a managed platform with built-in security and auto-scaling as you code against the App Engine APIs in your preferred language (Java, Python, PHP etc). The APIs also provide access to advanced functionality such as Memcache, Cloud SQL and more without having to worry about how to scale them as load increases.

Compute Engine with AutoScaling
Compute Engine is probably what most web devs are familiar with. It’s a server on which you can install your OS of choice and get full root access to that instance. The instances are fully customizable (you can configure how many vCPUs you desire, as well as RAM and storage) and are charged by the minute — for added cost savings when you scale up and down with demand. Clearly, having root access means you can do pretty much anything you could dream of on these machines, and this is where I chose to run my TensorFlow environment. Compute Engine also benefits from autoscaling, increasing and decreasing the number of available Compute Engine instances with demand or according to a custom metric. For my use case, I had an autoscaler ranging from 2 to 10 instances at any given time, depending on average CPU usage.

Cloud Storage
Google Cloud Storage is an inexpensive place in which you can store a large number of files (both in size and numbers) that are replicated to key edge server locations around the globe, closer to the requesting user. This is where I stored the uploaded files used to train the classifiers in my machine learning system until they were needed.

Network Load Balancer
My JavaScript application was making use of a webcam, and I therefore needed to access it over a secure connection (HTTPS). Google’s Network Load Balancer allows you to route traffic to the different Compute Engine clusters that you have defined. In my case, I had a cluster for classifying images, and a cluster for training new classifiers, and so depending on what was being requested, I could route that request to the right backend, all securely, via HTTPS.

Putting it all together

After putting all these components together, my system architecture looked roughly like this:

While this worked very well, some parts were redundant. I discovered that the Google Compute Engine Upload Pool code could be re-written to just run on App Engine in Java, pushing directly to Cloud Storage, thus taking out the need for an extra pool of Compute Engine instances. Woohoo!

In addition, now that I was using App Engine, the custom SSL load balancer was also redundant as App Engine itself could simply push new jobs to Pub/Sub internally, and deliver any front-end assets over HTTPS out of the box via appspot.com. Thus, the final architecture should look as follows if deploying on Google’s appspot.com:

Reducing the complexity of the architecture will make it easier to maintain, and add to cost savings.

Conclusion

By using Pub/Sub and Firebase, I estimate I saved well over a week’s development time, allowing me to jump in and solve the problem at hand in a short timeframe. Even better, the prototype scaled with demand, and ensured that all jobs would eventually be served even when at max capacity for budget.

Combining the Google Cloud Platform stack provides the web developer with a great toolkit for prototyping full end-to-end systems at rapid speed while aiding security and scalability for the future. I highly recommend you try them out for yourself.
Quelle: Google Cloud Platform

New Dockercast episode with Avi Cavale from Shippable

In case you missed it, we launched , the official Docker Podcast earlier this month including all the DockerCon 2016 sessions available as podcast episodes.

In this podcast episode, we catch up with Avi Cavale the Co-founder & CEO at Shippable. We start off with a conversation where I ask him why he thinks there has been such an explosion of Docker adoption.  This leads us into the the ideas behind immutable infrastructure and immutable delivery models. Avi discusses how Shippable has focused on making the delivery pipeline easier for developers.
We also discuss some anti-patterns he calls Frankenstein Continuous Integration (CI) where, although Jenkins is awesome, the glue to put a robust CI system together can be reasonably complex. What Shippable tried to do is abstract away some of those complexities for developers.  We end up talking about different Docker patterns Shippable is seeing in the industry.
You can find the latest Dockercast episodes on the Itunes Store or via the SoundCloud RSS feed.
 

 

New dockercast episode w/ host @botchagalupe & @avinci from @beshippable as a guest!Click To Tweet

The post New Dockercast episode with Avi Cavale from Shippable appeared first on Docker Blog.
Quelle: https://blog.docker.com/feed/