やったもん勝ち

主にプログラミングのこと。生産性向上の某とかも。

いい加減DockerとECSを整理する①

Dockerの概念が腑に落ちないこと早1年。 そろそろこれじゃだめだって思い始めて、復習する万。 install方法は割愛しておくことにする。 というか忘れてしまった。 Mac High Sierra 10.13.5 $ docker -v Docker version 17.12.0-ce, build c97c6d6 docker-com…

顔認識・画像認識ライブラリAPIを使ってみる

経緯 個人的な趣味で、顔認識のAPIを使いたいなと思い立ちました。 OpenCVで自前でできないかなーとも思ったのですが、なかなか難しいっぽく、諦めてAPIを使うという選択になった次第です。 どこがAPIを提供しているのか、以下のリンクがとても参考になりま…

Amazon linuxで/etc/cron.d/配下または/etc/cron.hourly/配下にcronを設定する.

cronの設定方法はいくつかあって、どこにどう設定すればいいのかの、ベストプラクティスはまだよく分かっていません。 いったんpart1として/etc/cron.d/と/etc/cron.hourly/はいかに設定する方法をまとめておきます。 環境 AWS amazon linux Amazon Linux AM…

python36で別のホストのmysqlに接続する。

環境 接続元 AWS EC2 Amazon Linux AMI release 2017.09 python3.6 pip pymysql グローバルIP: aaa.aaa.aaa.aaa 接続先 AWS EC2 Amazon Linux AMI release 2017.09 MySQL: 5.6.38 グローバルIP: xxx.xxx.xxx.xxx 準備 MySQLサーバ 事前にDBとテーブルを作っ…

sudoers.dファイルでコマンドのオプションはどこまで制限できるのか

sudoers.dで指定する、許可されるコマンドは、どこまで寛容なのか。 一字一句そのコマンドじゃなきゃいけないのか。 それとも、オプションだとかパスはよしなに指定させてくれるのか。 検証する。 # rootになっておく $ sudo su - # まずは、現在のユーザー…

40秒で支度しな!AWSのEC2にpython36で最速でflask実行環境を作成する

AWSのEC2、amazon linuxです。 $ sudo yum install -y python36 $ sudo pip-3.6 install flask $ vi ~/hello.py # 以下の内容で作成作成 from flask import Flask app = Flask(__name__) @app.route('/') def hello(): return 'Hello World!' if __name__ ==…

pythonのboto3でのエラーハンドリング

問題 pythonのboto3で以下のようなコードを書いていて、 try: hoge() except: print("error") flake8にdo not use bare except'と怒られた。 pythonのエラーの書き方をちゃんと調べてみると、エラーの種類をexceptで指定しておかないと、エラーメッセージを…

sudo rm -rf で削除できないファイルのパーミッション設定

背景 想定するのは、次のようなケース ownerがrootでパーミッション設定が700のディレクトリmydir配下のディレクトリ・ファイルをすべて削除したい mydir配下のディレクトリ・ファイルのパーミッションはすべて700 削除を実行するのはsudo権限を持った一般ユ…

visudoでsudoersを変更して、sudo権限を設定する

zabbixユーザーとsudo等々の権限周りでハマりました。 備忘録として開発環境で動作確認したのを残しておきます。 環境 MacOS High Sierra 10.13.1 Vagrant 2.0.1 CentOS 7.2.1511 かんたんなsudoersの知識 sudoとかの権限を設定しているのは、 /etc/sudoers…

python3でstrからdictに変換する

import ast str = "{'name':'Taro', 'hieght':170}" type(str) => <class 'str'> dict = ast.literal_eval(str) type(dict) => <class 'dict'> 他の記事でast.literal_dict(str) となっていたのですが、 AttributeError: module 'ast' has no attribute 'literal_dict' とエラーになって</class></class>…

AWS EMRを使ったhiveのチュートリアル

やりたいこと 以下のような3つの項目を持ったjsonファイルがあります。 id, cookie, date 基本的にはidはcookieと一対一の関係にありますが、たまにあるcookieに対して同じidが振られていることがあります。 つまり、cookieは完全にユニークですが、idには重…

AWSのEMRを使ってHiveの基本的な使い方を確認しておく備忘録

Hiveとは? Hiveとは? Hive(ハイブ)とは、オープンソースの大規模分散計算フレームワークHadoop上で動作するデータウェアハウス(DWH)向けのプロダクトです。 Hiveとは | クラウド・データセンター用語集/IDCフロンティア とあります。 大規模なデータ処…

ビットコインの自動売買プログラムを作る①APIいじってみる〜

bitflyerのAPIを使ってビットコインの売買が結構かんたんにできちゃいます。 以下のページから使いたいAPIを探します。 全部日本語で書いてあるので、嬉しいですね。 ビットコイン取引所【bitFlyer Lightning】 こちらでサンプルコードが載っているので、ほ…

rubyとseleniumでTwitterに自動ログインする。〜リベンジ編

SeleniumでTwitterの自動ブラウザ操作を行っていきたいです。 以前設定していたのですが、しばらくしてみると、そのコードでは対応できなくなっていました。 require 'selenium-webdriver' driver = Selenium::WebDriver.for :firefox driver.get "https://t…

SeleniumとRubyでTwitterの複数アカウントを自動ファボ&RT

背景 自分の趣味というか、ちょっとしたプロジェクトでTwitterを運営していて、特定のワードで検索されたときに上位に表示させたいなーと思うことがありました。 一つの方法が、ツイートを頻繁にするということで、それはbotで普通に解決できました。これは…

一つのPCから複数のgithubアカウントを使い分けてpushする

一つのPCから複数のgithubアカウントを使い分けてpushする ということをやってみたいと思いました。 背景 というのも、仕事とプライベートみたいな使い分け方じゃなく、開発用のアカウントと、英語学習用のアカウントを使い分けたいなと思ったからです。 日…

will_paginateの1ページあたりの表示数とラベルを変更する

ページネーションをうまいことやりたいとき、railsだとどうやらkaminariってのが有名らしい。 しかしrailsのチュートリアルで、will_paginateを使っていたので、それを活用していきます。 参考までにkaminari github.com そして今回のwill_paginate github.c…

rubyの配列、ハッシュ、シンボルあたりを整理する備忘録

ハッシュ、シンボル、配列あたりがごちゃごちゃしているので、まとめる。 備忘録です。 配列 シンプルな配列 array = [1,2,3,4,5] [1, 2, 3, 4, 5] 要素を追加したり、色々なメソッドを使えます。 array.push(10) [1, 2, 3, 4, 5, 10] 色んなものが配列の要…

rubyで配列、ハッシュに対する処理をするreduceについてのまとめ備忘録

reduceとは reduceはinjectの別名。 配列やハッシュを次々に処理していくときに使えるやつ。 早速例示して使ってみる。 まず配列について # 初期値なしで、配列の中身を順に足していく。 [1,2,3,4,5].reduce() {|sum, i| sum + i } 15 # 初期値を設定できる …

rubyで配列、ハッシュに対する処理をするmapについてのまとめ備忘録

rubyのmapなどについて使い方をまとめてみます。 map 配列やハッシュの各値に対して同じ操作をしていく。 配列について # 各値を2倍にする [1,2,3,4,5].map {|i| i*2} [2, 4, 6, 8, 10] # 何もしない [1,2,3,4,5].map{|i| i} [1, 2, 3, 4, 5] # 全部1にする …

macのrubyで文字コードcp932でファイルに保存されているか確認する際の落とし穴

まずは元々の挙動を確認 まずは何も指定もせずにファイルに保存するとどうなるのか確認してみます。 say_nice.rb File.open("nice.txt", "w") do |f| f.puts "nice" end ファイルの文字コードを確認する方法は $ nkf --guess filenameまたは$ file --mime fi…

NotebookアプリQuiverのスタイルをCSSでいい感じに変更する。

エンジニア御用達のメモアプリ、Quiver。 オンラインで同期できないことを除けば、今の自分にとって最高のツールです。 メモを見る上で、見やすさはとても重要ですね〜 ということで、QuiverのCSSを変更して、使いやすくしたい。 というか、自分で考えたこの…

ターミナルはFinderやエディタから削除したフォルダを参照し続けてしまう。

$ mkdir dev-trash $ cd dev-trash でdev-trashをルートとして考えてみる。 ルート直下にfooディレクトリと、以下のファイルhello_generator.rbを作る file = File.open("foo/generated_hello.txt", "w") file.puts "hello" このファイルを実行すると、fooの…

flexboxの基本(縦並び、横並び、中央寄せ、左寄せ、右寄せ)

xflexbox、便利です。 何もしないと、以下のように、block要素は縦に並ぶ See the Pen JWerRv by benzenetarou@gmail.com (@benzenetarou) on CodePen. 親要素にdisplay: flexを設定すると、子要素が横に並ぶ See the Pen WpYZRw by benzenetarou@gmail.com …

【書評】「はじめよう!プロセス設計」マーケティング的思想の片鱗を見た気がする

自社サービスのフローを再度考えてみるにあたって、一度もっと根幹から考え直してみようと思い、手に取った本。 はじめよう! プロセス設計 ~要件定義のその前に作者: 羽生章洋出版社/メーカー: 技術評論社発売日: 2016/11/22メディア: 単行本(ソフトカバー…

【書評】「コーディングを支える技術」で言語に対する興味を掻き立てられた。

コーディングを支える技術を読んだ。 コーディングを支える技術 ~成り立ちから学ぶプログラミング作法 (WEB+DB PRESS plus)作者: 西尾泰和出版社/メーカー: 技術評論社発売日: 2013/04/24メディア: 単行本(ソフトカバー)この商品を含むブログ (35件) を見…

Web開発でJavaを使っている新卒が「なぜJavaでつくるのか」を読んでみて

なぜシリーズが好きだ。 Javaでなぜつくるのか 知っておきたいJavaプログラミングの基礎知識作者: 米持幸寿出版社/メーカー: 日経BP社発売日: 2005/03/31メディア: 単行本購入: 2人 クリック: 24回この商品を含むブログ (40件) を見る 背景 Web系でJavaを使…

validetta.jsがieでのみ有効化出来ないバグの解消

ずっとmacで開発していて、一応Internet ExplorerもSleipnirでチェックしていたつもりで、ちゃんと動いていたのですが、 やっぱり本物で確認してみると。。。バリデーションが効かない。。。 ieとSleipnirは同じエンジンを使っているらしいから大丈夫だろう…

MacOSで既存のplay frameworkのプロジェクトを実行する環境構築をする

MacOS Siera Ver.10.12.2 おにゅーのMacでplay frameworkの環境設定を行いました。 プロジェクトは既にあったので、そこら辺は別のサイトの情報を参照ください。 Javaのインストール まずは、Javaのインストール $ Java -version でinstallされているか確認…

play framework2.4でDBをリモート環境とローカル環境で分けるときの設定

play framework2.4で application.confにDB接続設定がありますが、 リモートの環境設定をそこに書いている場合、 ローカル環境のDBを使用するときは、また別に設定しなくてはダメですね。 迂回策① application.confのDB接続情報をローカル環境のDBにして、 g…