Tag Archives: AWS

Jorge Castro: Juju core 1.9.8 released

David Cheney passes along that Juju core 1.9.8 has now been released.

For those not familiar with Juju core, it is the rewrite branch of Juju in golang. The team is now close to feature parity with the Python version, we expect to have something real nice for you by 13.04. 🙂

My favorite feature here is a real small one, an idea passed along to the team by Rick Spencer. juju generate-config -w will now spit out a configuration file for you. We’ve documented a bunch of providers in there, so out of the box you’ll get AWS, OpenStack, HP Cloud, and the local provider in the config file all commented out, you’ll be able to just paste in your creds and go. This is much nicer than trading snippets with friends.

Here’s the changelog, make sure you check it out, there are still some limitations, like lack of constraints, so be aware. Expect a summarized report on the Go version soon, we’ve inherited some great new features, including better multiplatform support, you’ll find 1.9.8 is working for OSX now.

…read more
Source: FULL ARTICLE at Planet Ubuntu

Dropbox client syncing and uploading services go down

Dropbox users have been experiencing issues syncing and uploading files and creating shareable links, prompting speculation about the stability of Amazon Web Services (AWS).

According to a series of updates from the @DropboxOps Twitter account, problems began at around 11pm GMT on Thursday. At that time, the company said that the issue would be resolved within an hour, but the last update posted at around 3am stated that problems were ongoing.

“You should be able to create shareable links again. Our engineers are actively working to resolve remaining issues as quickly as possible,” the company tweeted.

Some Dropbox users took to Twitter to vent their frustrations, post pictures and question whether AWS was to blame. All files uploaded to Dropbox are encrypted and stored on Amazon’s Simple Storage Service (S3).

To read this article in full or to leave a comment, please click here

Source: FULL ARTICLE at PCWorld

Gartner's top 10 cloud storage providers

According to a Gartner survey, about 19 percent of organizations are using the cloud for production computing, while 20 percent are using public cloud storage services.

That means there’s a pretty good sized market for the cloud, and specifically cloud storage. Gartner predicted in 2012 $109 billion was spent on cloud computing, a 20 percent increase from the year before.

But the cloud is a big industry too, with a lot of vendors seemingly having a cloud strategy today. So where do potential customers start? Recently, Gartner released a list of the top 10 cloud storage providers, based on enterprise capabilities. Below is a description of each, based on pros, cons, strengths and weaknesses.

Amazon Web Services

Like many other aspects of cloud computing, Amazon Web Services is considered a market leader in cloud storage. It’s been an early and aggressive player in the market and its services drive offerings from competitors, Gartner says, while its pricing is the “industry reference point.” Its Simple Storage Service (S3) is the basic object storage, while Elastic Block Storage is for storage volumes. AWS keeps innovating too. Earlier this year AWS announced Glacier, a long-term, low-cost archival storage services. More recently, at its first-ever user conference, AWS announced Redshift, a cloud-based data warehousing service.

To read this article in full or to leave a comment, please click here

Source: FULL ARTICLE at PCWorld

Amazon Web Services accommodates big data storage

Eyeing the growing market for big data analysis, Amazon Web Services (AWS) has introduced a storage package, called High Storage, that can offer fast access to large amounts of data.

High Storage, an Amazon Elastic Compute Cloud (EC2) package, is designed to run data intensive analysis jobs, such as seismic analysis, log processing and data warehousing, according to the company. It is built on a parallel file system architecture that allows data to be moved on and off multiple disks at once, speeding throughput times.

“Instances of this family provide proportionally higher storage density per instance, and are ideally suited for applications that benefit from high sequential I/O performance across very large data sets,” AWS states in the online marketing literature for this service. The company is pitching the service as a complement to its Elastic MapReduce service, which provides a platform for Hadoop big data analysis. AWS itself is using the High Storage instances to power its Redshift data warehouse service.

An AWS instance is a bundle of compute units, memory, storage and other services configured to the characteristics of a particular type of workload. High Storage is the ninth type of compute instance that AWS has introduced. It joins other instant types customized for particular workloads, such as instances optimized for using GPUs (graphics processing units) or for HPC (high performance computing) jobs.

To read this article in full or to leave a comment, please click here

Source: PCWorld

Eric Hammond: Installing AWS Command Line Tools from Amazon Downloads

When you need an AWS command line toolset not provided by Ubuntu
packages, you can download the tools directly from Amazon and install
them locally.

In a previous article I provided instructions on how to install AWS
command line tools using Ubuntu packages
. That method is
slightly easier to set up and easier to upgrade when Ubuntu releases
updates. However, the Ubuntu packages aren’t always up to date with
the latest from Amazon and there are not yet Ubuntu packages published
for every AWS command line tools you might want to use.

Unfortunately, Amazon does not have one single place where you can
download all the command line tools for the various services, nor are
all of the tools installed in the same way, nor do they all use the
same format for accessing the AWS credentials.

The following steps show how I install and configure the AWS command
line tools provided by Amazon when I don’t use the packages provided
by Ubuntu.

Prerequisites

Install required software packages:

sudo apt-get update
sudo apt-get install -y openjdk-6-jre ruby1.8-full rubygems
libxml2-utils libxml2-dev libxslt-dev
unzip cpanminus build-essential
sudo gem install uuidtools json httparty nokogiri

Create a directory where all AWS tools will be installed:

sudo mkdir -p /usr/local/aws

Now we’re ready to start downloading and installing all of the
individual software bundles that Amazon has released and made
available in scattered places on their web site and various S3
buckets.

Download and Install AWS Command Line Tools

These steps should be done from an empty temporary directory so you
can afterwards clean up all of the downloaded and unpacked files.

Note: Some of these download URLs always get the latest version and
some tools have different URLs every time a new version is released.
Click through on the tool link to find the latest [Download] URL.

EC2 API command line tools:

wget –quiet http://s3.amazonaws.com/ec2-downloads/ec2-api-tools.zip
unzip -qq ec2-api-tools.zip
sudo rsync -a –no-o –no-g ec2-api-tools-*/ /usr/local/aws/ec2/

EC2 AMI command line tools:

wget –quiet http://s3.amazonaws.com/ec2-downloads/ec2-ami-tools.zip
unzip -qq ec2-ami-tools.zip
sudo rsync -a –no-o –no-g ec2-ami-tools-*/ /usr/local/aws/ec2/

IAM (Identity and Access Management) commmand line tools:

wget –quiet http://awsiammedia.s3.amazonaws.com/public/tools/cli/latest/IAMCli.zip
unzip -qq IAMCli.zip
sudo rsync -a –no-o –no-g IAMCli-*/ /usr/local/aws/iam/

RDS (Relational Database Service) command line tools:

wget –quiet http://s3.amazonaws.com/rds-downloads/RDSCli.zip
unzip -qq RDSCli.zip
sudo rsync -a –no-o –no-g RDSCli-*/ /usr/local/aws/rds/

ELB (Elastic Load Balancer) command line tools:

wget –quiet http://ec2-downloads.s3.amazonaws.com/ElasticLoadBalancing.zip
unzip -qq ElasticLoadBalancing.zip
sudo rsync -a –no-o –no-g ElasticLoadBalancing-*/ /usr/local/aws/elb/

AWS CloudFormation command line tools:

wget –quiet https://s3.amazonaws.com/cloudformation-cli/AWSCloudFormation-cli.zip
unzip -qq AWSCloudFormation-cli.zip
sudo rsync -a –no-o –no-g AWSCloudFormation-*/ /usr/local/aws/cfn/

Auto Scaling command line tools:

wget –quiet http://ec2-downloads.s3.amazonaws.com/AutoScaling-2011-01-01.zip
unzip -qq AutoScaling-*.zip
sudo rsync -a –no-o –no-g AutoScaling-*/ /usr/local/aws/as/

AWS Import/Export command line tools:

wget –quiet http://awsimportexport.s3.amazonaws.com/importexport-webservice-tool.zip
sudo mkdir /usr/local/aws/importexport
sudo unzip -qq importexport-webservice-tool.zip -d /usr/local/aws/importexport

CloudSearch command line tools:

wget –quiet http://s3.amazonaws.com/amazon-cloudsearch-data/cloud-search-tools-1.0.0.1-2012.03.05.tar.gz
tar xzf cloud-search-tools*.tar.gz
sudo rsync -a –no-o –no-g cloud-search-tools-*/ /usr/local/aws/cloudsearch/

CloudWatch command line tools:

wget –quiet http://ec2-downloads.s3.amazonaws.com/CloudWatch-2010-08-01.zip
unzip -qq CloudWatch-*.zip
sudo rsync -a –no-o –no-g CloudWatch-*/ /usr/local/aws/cloudwatch/

ElastiCache command line tools:

wget –quiet https://s3.amazonaws.com/elasticache-downloads/AmazonElastiCacheCli-2012-03-09-1.6.001.zip
unzip -qq AmazonElastiCacheCli-*.zip
sudo rsync -a –no-o –no-g AmazonElastiCacheCli-*/ /usr/local/aws/elasticache/

Elastic Beanstalk command line tools:

wget –quiet https://s3.amazonaws.com/elasticbeanstalk/cli/AWS-ElasticBeanstalk-CLI-2.1.zip
unzip -qq AWS-ElasticBeanstalk-CLI-*.zip
sudo rsync -a –no-o –no-g AWS-ElasticBeanstalk-CLI-*/ /usr/local/aws/elasticbeanstalk/

Elastic MapReduce command line tools:

wget –quiet http://elasticmapreduce.s3.amazonaws.com/elastic-mapreduce-ruby.zip
unzip -qq -d elastic-mapreduce-ruby elastic-mapreduce-ruby.zip
sudo rsync -a –no-o –no-g elastic-mapreduce-ruby/ /usr/local/aws/elasticmapreduce/

Simple Notification Serivice (SNS) command line tools:

wget –quiet http://sns-public-resources.s3.amazonaws.com/SimpleNotificationServiceCli-2010-03-31.zip
unzip -qq SimpleNotificationServiceCli-*.zip
sudo rsync -a –no-o –no-g SimpleNotificationServiceCli-*/ /usr/local/aws/sns/
sudo chmod 755 /usr/local/aws/sns/bin/*

Route 53 (DNS) command line tools:

sudo mkdir -p /usr/local/aws/route53/bin
for i in dnscurl.pl route53tobind.pl bindtoroute53.pl route53zone.pl; do
sudo wget –quiet –directory-prefix=/usr/local/aws/route53/bin
http://awsmedia.s3.amazonaws.com/catalog/attachments/$i
sudo chmod +x /usr/local/aws/route53/bin/$i
done
cpanm –sudo –notest –quiet Net::DNS::ZoneFile NetAddr::IP
Net::DNS Net::IP Digest::HMAC Digest::SHA1 Digest::MD5

CloudFront command line tool:

sudo wget –quiet –directory-prefix=/usr/local/aws/cloudfront/bin
http://d1nqj4pxyrfw2.cloudfront.net/cfcurl.pl
sudo chmod +x /usr/local/aws/cloudfront/bin/cfcurl.pl

S3 command line tools:

wget –quiet http://s3.amazonaws.com/doc/s3-example-code/s3-curl.zip
unzip -qq s3-curl.zip
sudo mkdir -p /usr/local/aws/s3/bin/
sudo rsync -a –no-o –no-g s3-curl/ /usr/local/aws/s3/bin/
sudo chmod 755 /usr/local/aws/s3/bin/s3curl.pl

AWS Data Pipeline command line tools:

wget –quiet https://s3.amazonaws.com/datapipeline-us-east-1/software/latest/DataPipelineCLI/datapipeline-cli.zip
unzip -qq datapipeline-cli.zip
sudo rsync -a –no-o –no-g datapipeline-cli/ /usr/local/aws/datapipeline/

Now that we have all of the software installed under /usr/local/aws we
need to set up the AWS credentials and point the tools to where they
can find everything.

Set up AWS Credentials and Envronment

Create a place to store the secret AWS credentials:

mkdir -m 0700 $HOME/.aws-default/

Copy your AWS X.509 certificate and private key to
this subdirectory. These files will have names that look something
like this:

$HOME/.aws-default/cert-7KX4CVWWQ52YM2SUCIGGHTPDNDZQMVEF.pem
$HOME/.aws-default/pk-7KX4CVWWQ52YM2SUCIGGHTPDNDZQMVEF.pem

Create the file $HOME/.aws-default/aws-credential-file.txt with your AWS
access key id and secret access key
in the following
format:

AWSAccessKeyId=
AWSSecretKey=

Create the file $HOME/.aws-default/aws-credentials.json in the following
format:

{
“access-id”: “”,
“private-key”: “”,
“key-pair”: “”,
“key-pair-file”: “”,
“region”: “”,
“use-ssl”: “true”,
“log-uri”: “s3://yourbucket/datapipelinelogs”
}

Create the file $HOME/.aws-secrets in the following format:

%awsSecretAccessKeys = (
‘default’ => {
id => ”,
key => ”,
},
);

Create a symbolic link for s3curl to find its hardcoded config file
and secure the file permissions

ln -s $HOME/.aws-secrets $HOME/.s3curl
chmod 600 $HOME/.aws-default/* $HOME/.aws-secrets

Add the following lines to your $HOME/.bashrc file so that the AWS
command line tools know where to find themselves and the credentials.
We put the new directories in the front of the $PATH so that we run
these instead of any similar tools installed by Ubuntu packages.

export JAVA_HOME=/usr
export EC2_HOME=/usr/local/aws/ec2
export AWS_IAM_HOME=/usr/local/aws/iam
export AWS_RDS_HOME=/usr/local/aws/rds
export AWS_ELB_HOME=/usr/local/aws/elb
export AWS_CLOUDFORMATION_HOME=/usr/local/aws/cfn
export AWS_AUTO_SCALING_HOME=/usr/local/aws/as
export CS_HOME=/usr/local/aws/cloudsearch
export AWS_CLOUDWATCH_HOME=/usr/local/aws/cloudwatch
export AWS_ELASTICACHE_HOME=/usr/local/aws/elasticache
export AWS_SNS_HOME=/usr/local/aws/sns
export AWS_ROUTE53_HOME=/usr/local/aws/route53
export AWS_CLOUDFRONT_HOME=/usr/local/aws/cloudfront

for i in $EC2_HOME $AWS_IAM_HOME $AWS_RDS_HOME $AWS_ELB_HOME
$AWS_CLOUDFORMATION_HOME $AWS_AUTO_SCALING_HOME $CS_HOME
$AWS_CLOUDWATCH_HOME $AWS_ELASTICACHE_HOME $AWS_SNS_HOME
$AWS_ROUTE53_HOME $AWS_CLOUDFRONT_HOME /usr/local/aws/s3
do
PATH=$i/bin:$PATH
done
PATH=/usr/local/aws/elasticbeanstalk/eb/linux/python2.7:$PATH
PATH=/usr/local/aws/elasticmapreduce:$PATH
PATH=/usr/local/aws/datapipeline:$PATH

export EC2_PRIVATE_KEY=$(echo $HOME/.aws-default/pk-*.pem)
export EC2_CERT=$(echo $HOME/.aws-default/cert-*.pem)
export AWS_CREDENTIAL_FILE=$HOME/.aws-default/aws-credential-file.txt
export ELASTIC_MAPREDUCE_CREDENTIALS=$HOME/.aws-default/aws-credentials.json
export DATA_PIPELINE_CREDENTIALS=$HOME/.aws-default/aws-credentials.json

Set everything up in your current shell:

source $HOME/.bashrc

Test

Make sure that the command line tools are installed and have
credentials set up correctly. These commands should not return
errors:

ec2-describe-regions
ec2-ami-tools-version
iam-accountgetsummary
rds-describe-db-engine-versions
elb-describe-lb-policies
cfn-list-stacks
cs-describe-domain
mon-version
elasticache-describe-cache-clusters
eb –version
elastic-mapreduce –list –all
sns-list-topics
dnscurl.pl –keyname default https://route53.amazonaws.com/2010-10-01/hostedzone | xmllint –format –
cfcurl.pl –keyname default https://cloudfront.amazonaws.com/2008-06-30/distribution | xmllint –format –
s3curl.pl –id default http://s3.amazonaws.com/ | xmllint –format –
datapipeline –list-pipelines

Are you aware of any other command line tools provided by Amazon?
Let other readers know in the comments on this article.

[Update 2012-09-06: New URL for ElastiCache tools. Thanks iknewitalready]

[Upate 2012-12-21: Added AWS Data Pipeline command line tools. May break Elastic MapReduce due to Ruby version conflict.]

Original article:
http://alestic.com/2012/09/aws-command-line-tools

Source: Planet Ubuntu

Amazon allows users to spread workloads more broadly

Amazon Web Services today announced a new feature that allows users to replicate block storage volumes across regions of the world, which will make it easier for systems to stay up in case of a cloud outage.

EBS Snapshot Copy allows users to move copies of Elastic Block Storage (EBS) volumes across regions where the company has public cloud services. AWS says this can be helpful for customers that are looking to launch a service in a new region and are looking for those EBS volumes to be closer to the end user, for example.

Another common use case for EBS Snapshot Copy could be for disaster recovery. Amazon encourages customers to use multiple Availability Zones (AZs) in its cloud to ensure systems are tolerant to outages. Adding multi-region support is a next logical step to creating even more highly available (HA) systems.

AWS breaks its public cloud product up into nine regions with AZs in each of those regions. The AZs are meant to be isolated from one another within a region. But, during at least one recent outage when a single AZ went down some customers, and Network World commenters, who had spread workloads across multiple AZs still had problems. Being able to extend workloads across not just AZs, but now regions provides customers additional tools to preventing downtime.

To read this article in full or to leave a comment, please click here

Source: PCWorld

Eric Hammond: Cost of Transitioning S3 Objects to Glacier

how I was surprised by a large AWS charge and how to calculate the
break-even point

Glacier Archival of S3 Objects

Amazon recently introduced a fantastic new feature where S3 objects
can be automatically migrated over to Glacier storage
based on
the S3 bucket, the key prefix, and the number of days after object
creation.

This makes it trivially easy to drop files in S3, have fast access to
them for a while, then have them automatically saved to long-term
storage where they can’t be accessed as quickly, but where the
storage charges are around a tenth of the price.

…or so I thought.

S3 Lifecycle Rule

My first use of this feature was on some buckets where I store about
350 GB of data that fits the Glacier use pattern perfectly: I want to
save it practically forever, but expect to use it rarely.

It was straight forward to use the S3 Console to add a
lifecycle rule to the S3 buckets so that all objects are archived to
Glacier after 60 days:

S3 Lifecycle Rule

(Long time readers of this blog may be surprised I didn’t list the
command lines to accomplish this task, but Amazon has not yet released
useful S3 tools that include the required functionality.)

Since all of the objects in the buckets were more than 60 days old, I
expected them to be transitioned to Glacier within a day, and true to
Amazon’s documentation, this occurred on schedule.

Surprise Charge

What I did not expect was an email alert from my AWS billing alarm
monitor on this account letting me know that I had just passed $200
for the month, followed a few hours later by an alert for $300,
followed by an alert for a $400 trigger.

This is one of my personal accounts, so a rate of several hundred
dollars a day is not sustainable. Fortunately, a quick investigation
showed that this increase was due to one time charges, so I wasn’t
about to run up a $10k monthly bill.

The line item on the AWS Activity report showed the source
of the new charge:

$0.05 per 1,000 Glacier Requests x 5,306,220 Requests = $265.31

It had not occurred to me that there would be much of a charge for
transitioning the objects from S3 to Glacier. I should have read the
S3 Pricing page, where Amazon states:

Glacier Archive and Restore Requests: $0.05 per 1,000 requests

This is five times as expensive as the initial process of putting
objects into S3, which is $0.01 per 1,000 PUT requests.

There is one “archive request” for each S3 object that is transitioned
from S3 to Glacier, and I had over five million objects in these
buckets, something I didn’t worry about previously because my monthly
S3 charges were based on the total GB, not the number of objects.

Break-even Point

After stopping to think about it, I realized that I was still saving
money on the long term by moving objects in these S3 buckets to
Glacier storage. This one-time up front cost was going to be
compensated for slowly by my monthly savings, because Glacier is incredibly
cheap, even compared to the reasonably cheap S3 storage costs.

Here are the results of my calculations:

Monthly cost of storing in S3: 350 GB x $0.095/GB = $33.25

Monthly cost of storing in Glacier: 350 GB x $0.01/GB = $3.50

One time cost to transition 5.3 million objects from S3 to Glacier: $265

Months until I start saving money by moving to Glacier: 9

Savings per year after first 9 months: $357 (89.5%)

For this data’s purpose, everything still works out to an advantage,
so thanks, Amazon! I will, however, think twice before doing this
with other types of buckets, just to make sure that the data is going
to be sitting around long enough in Glacier to be worth the transition
costs.

As it turns out, the primary factor in how long it takes to break even
is the average size of the S3 objects. If the average size of my data
files were larger, then I would start saving money sooner.

Here’s the formula… The number of months to break even and start
saving money when transferring S3 objects to Glacier is:

break-even months = 631,613 / (average S3 object size in bytes)

(units apologies to math geeks)

In my case, the average size of the S3 objects was 70,824 bytes (about
70 KB). Applying the above formula:

631,613 / 70,824 = 8.9

or about 9 months until the savings in Glacier over S3 covers the cost
of moving my objects from S3 to Glacier.

If you are storing 1 KB data records in S3, it would take over 50 years
to justify transitioning them to Glacier.

The above formula assumes an S3 storage cost of $0.095 per GB per
month in us-east-1. If you are storing more than a TB, then you’re
into the $0.08 tier or lower, so your break-even point will take
longer and you’ll want to do more calculations to find your savings.

Original article:
http://alestic.com/2012/12/s3-glacier-costs

Source: Planet Ubuntu

Amazon makes it easier to track costs, usage in its cloud

Somewhat undercutting a budding ecosystem of vendors that provide similar services, Amazon Web Services today announced increased features for customers to track their usage of AWS public cloud resources.

Detailed billing features include the ability to break down usage costs by the hour and type of instance that is used. Customers now have the ability to view costs by the specific product used, from reserved instances to on-demand and the free usage tier. “We’ve had a number of requests for better access to more detailed billing data,” AWS evangelist Jeff Barr wrote in a blog post on the company’s site today.

Services to help track costs and usage in AWS‘s cloud have been seen by somewhat lacking from AWS, which has led to a growing market of third-party tools. These range from being able to help users monitor usage and costs but they also help optimize the use of AWS‘s cloud by determining the best size of virtual machine instance that is needed based on the workload.

The addition of more detailed billing features announced today adds to AWS‘s current tools, such as CloudWatch, which allows users to estimate their monthly bill based on usage to-date, programmatically access that information and consolidate billing from multiple accounts into a single payment system.

To read this article in full or to leave a comment, please click here

Source: PCWorld

Is the cloud the right place for your data warehouse?

The single biggest news coming from Amazon Web Service’s first user conference recently was the launch of the company’s newest service, Redshift, a cloud-based data warehouse tool. And it prompts the question: Is the cloud the right place for data warehousing?

AWS officials say for businesses struggling to manage their data, the cloud can provide a low-cost alternative to investing in infrastructure to manage it all on their own sites. Perhaps the biggest issues holding back Redshift are the same concerns that come along with using the public cloud in general, though. Some just don’t feel comfortable putting sensitive financial or personally identifiable data in anyone’s public cloud. And then there’s the issue of how all that data is actually transferred into the cloud.

These issues—a combination of potential benefits related to cost and manageability, combined with concerns about security and data transfer—will likely mean that Redshift follows the path of many of AWS’s other enterprise-geared services, says Jeff Kelly, a big-data researcher at The Wikibon Project. Forward-looking businesses that have already embraced Amazon’s cloud may move more quickly to the cloud for services like data warehousing, whereas larger enterprises that have been slow to jump into the public cloud may test the service on a use-case basis to see if it’s the right fit for them.

Data warehouses have traditionally been defined as customized data storage services that aggregate data from multiple different sources and collect it in a central location to be able to run reports and queries of it. Many companies use data warehouses to compile regular financial reports or business metric analyses. Redshift is a column/SQL-based tool designed to scale from a terabyte up to multiple petabyte size.To read this article in full or to leave a comment, please click here
Source: PCWorld

Amazon Web Services continues Windows push with PowerShell addition

Amazon Web Services (AWS) has added PowerShell to the management options for its cloud, in a move that reaches out to the Windows community.

Part of Amazon’s Microsoft push is to let developers and administrators manage their AWS services in a way that’s natural to them, according to the company.

AWS Tools for Windows PowerShell provide over 550 so-called cmdlets for allowing administrators to make service calls or create scripts for automating cloud management, all from within the command line-based PowerShell environment. A cmdlet is a lightweight command that is used in PowerShell.

Twenty services from Amazon can be managed using Tools for Windows PowerShell, including Relational Database Service, Simple Storage Service (S3), Virtual Private Cloud and of course EC2 itself.
To read this article in full or to leave a comment, please click here
Source: PCWorld