2017年8月4日金曜日

インスタ映えする画像加工アプリ Snapseed を試してみた。

広告とかCMでよく見る、周りはモノクロで一部だけ色が付いてる写真。
映像で強調部分を訴えかける感じのかっこいい画像。

自分で作れるのかなーって少し調べてみたら、お手軽に実現する方法あったんです。
「カラースプラッシュ」と呼ばれる技法で、スマホアプリでできちゃうんです。
例えば、この画像にあるお肉ちゃんを、、、


強調する!!!!

みたいな。

これ、撮影も加工も全部スマホです。
便利な世の中になりました。
カンタンにやり方紹介。

Snapseed をインストールします。

Google Play で "Snapseed" を検索してインストールポチるだけです。
Google 純正アプリなので抜群の信頼感。

写真を開いて、"ツール> ブラシ"を選択。

"彩度"を選択して 中央下にある設定値を -10 に。

目玉ボタン押して、モノクロにしたい部分を指でゴシゴシ。
こすった茶色い部分がモノクロになります。
最後に 決定マークをポチれば加工画像が生成されて完了、って感じ。

参考動画もわかりやすいんで貼っておきます。


あんま有名じゃないけど、Snapseed 神アプリ感あります。
アプリ内からそのままインスタに共有ボタンがあればもっと便利で流行りそうなんだけどなぁ〜

2017年8月3日木曜日

パリ/Paris 旅行で現地民が行く旨い店

運良くパリ出張する機会があり、現地の人に毎日昼メシ連れて行ってもらえました。
パリめしのログをまとめておきます。
ルーブル美術館周りが多いです。

ランチ編

Le Coude à Coude
https://www.lafourchette.com/restaurant/le-coude-a-coude/46063#tripadvisor
パリのおしゃれな定食屋。(ビストロ)
鴨肉・マンゴー・バルサミコ酢という組み合わせのサラダ。
黄色いのはマンゴー。新たな発見で美味しかった。


豚・ジャガイモ・メンタイコ(?) なメインディッシュ。
メンタイコ的なやつがアクセントになっていてコレまた美味い。


最後はデザート。お昼でしたが、このひたひたになってるのがラム酒。
周りにシナモンがかかっていて風味がパリのスイーツって感じ。
酒が強めであまり日本にはなさそうなスイーツだけど、これもまた新発見だった!


ここまで紹介しておいて、、
調べてみたところ、この店既に閉店している疑惑。。


Tutti Amici
Tutti Amici
フランスだけどイタリアンを食べてみる。
民家の狭い入口から階段にあがって入店します。
絶対観光客来られないだろうなっていう場所。
エンジニア集団(オッサン軍団)で行ったけど、内装がめっちゃお洒落で気が引けるレヴェル。
メニュー全部フランス語でベリーハードでしたが、現地の人たちにサポートを受けつつなんとか頼みました。
値段はそこまで高くないけど、結構うまいイタリアン。
現地の雰囲気を味わうには良いお店でした。

なりたけ

フランスメシも若干飽きてきた、そんなときに連れてってもらったのが Chinese Noodle。
http://4travel.jp/overseas/area/europe/france-ile_de_france/paris/restaurant/10422947/

味噌ラーメンが有名で、日本にも店舗があるらしい。
パリってほとんど日本人いないんだけど、ここでは日本人の店員さんがいてすこしホッとしました。
味は結構塩辛いです。
一緒に行ったフランス人は、
「今日一日分の塩分は取ったぜ、晩飯は酒だけでいいや」
みたいなこと言ってました。



フレンチバーガー
http://frenchiesburger.com/
がっつりハンバーガーが食える店。
コスパ良し。ティラミスでかい。
フレンチ通り越してもはやアメリカン。




現地のオランジーナは日本のに比べるとやや薄め?

レオンドブリュッセル

ベルギーのお店、日本には未出店。
ムール貝を気が済むまで食べられる店。
ビールと合います、美味しいです。
店舗もシャンゼリゼ通り沿いだけでなく、パリ市内にいくつもあります。
デザートはカロリー的に結構エグかったです。




バー編

Dernier Bar avant la Fin du Monde
世界的に有名なアニメの壁画とか、メニューもアニメ絡みのものとかがあった。
地下3階建てだったかな?
一番下のフロアーが面白いらしいけど、店に入った時刻が遅くてそのフロアだけ入れなかった。
フランスらしくいろんなチーズを取り揃えてた。
チーズとワイン・カクテルを飲むのが楽しい。
酔っててあんま写真撮れなかった。



la rhumerie

夜にラム酒飲みに行きました。
数十種類のラム酒がある中、現地民おすすめのバニラの風味の効いたラムを一杯。
銘柄は忘れた。。



お土産編

以下のお土産が喜ばれました。

* ボンヌママンのマロンクリーム
* ボンヌママンのタルト
* Royco のマッシュルームスープ
* ディジョンマスタード



唯一現地で買えなかったのが、エシレバター。
高級バターらしく、パリで買うと安いみたい。








2017年7月28日金曜日

CentOS7 で Django + Apache を動かす

さくらのVPS入門

How To Install Python 3 and Set Up a Local Programming Environment on CentOS 7

Python3 をインストール

How To Serve Django Applications with Apache and mod_wsgi on CentOS 7
Python3.5.1 => RuntimeError: The 'apxs' command appears not to be installed or is not executable

python3 を使うために以下の手順も追加。
$ sudo yum install httpd-devel -y # mod_wsgi のインストールに必要
$ pip3 install mod_wsgi # python3 系の mod_wsgi モジュールが入る。

mod_wsgi は仮想環境に入るのに注意。
LoadModule で httpd.conf で指定する際にバージョンが異なると動作しません。
バージョンが異なる場合、ImportError: no module named site が出る。

Centos7 でポートを開放する方法:コマンドとファイル書き込み
bash-completionで ssh コマンドなどの補完を強化してみる


2017年7月25日火曜日

さくら VPS で Web サーバーを構築する

Ubuntu 16.* + Apache + Django でサイト作るのに参考にした情報をまとめておこう。

Apache インストールして http://ip_address でアクセスできなくて「あれ?」ってなったときのトラブルシュート。
/etc/iptables/iptables.rules を編集すれば良いらしい。
セキュリティ的にどうかという懸念はあるのでとりあえずの設定ということで。

さくら VPS のサーバーにお名前.com で取得したドメインくっつけるって話。
.work のドメインがやすかった(1円!)だったので実験用に購入して試した。
動作確認済。

開発用サーバーで動作確認済。

2017年7月22日土曜日

API キーを yaml で一括管理してみた

pythonでyamlの扱い を参考に、API キー等の秘密情報を yaml で管理してみた。
各ウェブサービスごとに管理しても良いけどとりあえず辞書型で、、

twitter:
  consumer_key : hogehoge
  access_token : hogehoge
aws:
  access_key_id : fugafuga
  secret_access_key : fugafuga

.private/web_api.yaml にファイルを置いて、 .private/* を .gitignore に追加しておく。

アフィリエイトリンクを短縮して Twitter API でつぶやく

Amazon の商品価格を取得してみた では、最安値の取得までできた。
今回は、在庫切れした商品が入荷されたタイミングを取得してツイートしてみます。
やることはカンタンで、取得した現在の価格が定価になっているかをチェックして、
定価近辺に戻ってたらツイートするだけ。

Twitter API の利用

コード貼っておく。
get_sentense() では適当なツイート文字列を返す想定で書いてます。

def tweet():
    tweet = get_sentense()
    print("tweet: {0}".format(tweet))
    twitter = OAuth1Session(TWITTER_CONSUMER_KEY,
                            TWITTER_CONSUMER_SECRET,
                            TWITTER_ACCESS_TOKEN,
                            TWITTER_ACCESS_TOKEN_SECRET)
    url = "https://api.twitter.com/1.1/statuses/update.json"
    params = {"status" : tweet}
    response = twitter.post(url, params = params)
    assert response.status_code == 200, "Tweet Failed. status_code = {0}".format(response.status_code)

URL 短縮 API の利用

ツイート文にアフィリエイトリンクを仕込みたいとき、短縮 URL 変換する必要がある。
bitly API がカンタンにつかえて便利なのでこれで短縮して tweet 文章を生成する。
参考にしたのは以下のページです。
bitly APIの使い方
リクエストに token いれて post するだけです。

まとめ

在庫復活したらツイートする機能の実装を行いました。
まとめると実装したのは以下の感じ。

* Amazon Product Advertising API で価格情報取得する
* 定価になっていたら Twitter API を使ってツイート
* アフィリエイトリンク仕込みたいときは bitly API で URL 短縮してツイート文生成する。

Amazon の商品価格を取得してみた

Amazon の価格情報を取得する方法としては以下の 2つがありそう。

 * 商品ページにアクセスしてスクレイピング
 * Web API を利用する

こちらのページでは前者の方法で情報取得しています。
PythonとrequestsとBeautifulSoupでAmazonの中古品情報一覧を取得 #Python #WebScraping #せどり
ただ、ページまるごと取ってくるオーバーヘッド、ページ構成が変わった時のデグレとかメンテナンス観点だと面倒なことが多々ありそう。

ここでは無難に Web API 使いましょう。

事前準備

Amazon は、Amazon Product Advertising API を公開しています。

以下のページの案内に沿ってアカウント作成します。
https://affiliate.amazon.co.jp/gp/advertising/api/detail/main.html

作成後、AWS のコンソールにアクセスしてセキュリティキーを作成します。
https://console.aws.amazon.com
セキュリティ認証情報>アクセスキー を見に行くと作成画面が出てきます。

スクリプト実装

どの言語でも API は叩けますが、ここでは python で試してみます。
Product Advertising API を利用するための簡易ラッパーライブラリとして、
bottlenose モジュールを使います。
https://github.com/lionheart/bottlenose

また、取得したレスポンスをパースするため、BeautifulSoup もインストールします。

$ pip install bottlenose BeautifulSoup4

実装
# インスタンスを生成
amazon = bottlenose.Amazon(AWS_ACCESS_KEY_ID,
                           AWS_SECRET_ACCESS_KEY,
                           AWS_ASSOCIATE_TAG,
                           Region='JP')
# 価格情報を取得
response = amazon.ItemLookup(ItemId=ASIN,
                             ResponseGroup="OfferSummary")
soup = BeautifulSoup(response)
lowestnewprice = soup.find("lowestnewprice").find("amount").text # 新品の最安値