Jenkins CI

pytestでのCI環境 pythonのアプリケーションをjenkinsでCIする。 CentOS7へのjenkinsインストール jenkisのページでyumリポジトリとして公開されているためオンラインインストールが可能となっている。 ビルド失敗時のメール通知 何かスクリプトを噛ます必要があるものと考えていたがjenkins自体に通知設定がある。 gmail側でsmtpメール送信を許可する追加設定が必要となる。 reference pytestとjenkinsでCI環境を構築 python2と3のテスト pythonとjenkinsの連携 pythonをnoseでテスト pytestのオススメプラグイン pythonとdjango関連のテスト事情 CentOS7へのjenkinsインストール jenkinsでビルドが失敗した時にgmailにメール通知する

Python Script on AWS Lambda

Step1 select blueprint select “Lambda” from AWS Management Console select “lambda-canary” Step2 configure event sources Event source type: "Scheduled Event" Name: "foobar" Description: "foobar" Schedule: "rate(5 minutes)" Step3 configure function Name: "foobar" Description: "foobar" Runtime: "Python 2.7" function code: "python script" Handler: "lambda_function.lambda_handler" Role: "lambda_basic_execution" Memory(MB): "128" Timeout: "10sec" reference AWS Lambda��Python��Schedule���s������

Linux Login Check

# last # last | grep "still logged in" # date; last | grep "still logged in" # last | grep -E "119.72.198.200|119.72.195.161" # last | grep -Ev "119.72.198.200|119.72.195.161" # cat /var/log/secure | grep "Failed password" # lastb | awk '{print $1}' | sort | uniq -c | sort -nr | head -10 # cat /var/log/secure | grep sshd:session # cat /etc/logrotate.conf /var/log/wtmp { monthly create 0664 root utmp minsize 1M rotate 1 } # df -h # w # iostat # top -b # vmstat # top n 1 b # top n 1 b | grep -E "^top|^Tasks:|^Cpu(s):|^Mem:|^Swap:" Linuxのメモリ空:free(1行目) + buffers + cached Linuxサーバーの不正アクセス監視コマンド Linuxサーバーへ不正ログインを試みたユーザー一覧を出すワンライナー Linuxサーバの負荷や使用率を調査するコマンドと手順 topコマンドの使い方 【RHEL】linuxのメモリ使用率(利用率)の計算方法 Linux のメモリー管理 freeコマンドの見方

Jalan WebAPI

じゃらんWebサービスとは じゃらんnetが提供する宿泊宿、空室検索用WebAPI API の種類 じゃらん宿表示API(アドバンス) じゃらん宿表示API(ライト) 空室検索API エリア検索API 温泉検索API APIの制限 特定IPアドレスからの一定時間内での連続アクセスは制限される。(制限条件は非公開) API の取得 以下のページからアカウント登録することでAPI-KEYがメール送付される。 https://www.jalan.net/jw/jwp0400/jww0401.do API の利用例 リクエストURL: http://jws.jalan.net/APILite/HotelSearch/V1/? key: API-KEY pref: 都道府県に割り当てられたコード http://jws.jalan.net/APILite/HotelSearch/V1/?key=XXXXXX&pref=270000 結果は XML 形式で返却される。API利用制限等のエラー時はエラーXMLが返却される。 <?xml version="1.0" encoding="UTF-8" ?> <Error xmlns="jws"> <Message>アクセスが拒否されました。</Message> </Error> jalan のエリア横断検索 jalan のWeb検索には複数エリアをまたいでの検索機能がなかったのでAPIで実装。 jalan 横断検索 コメント 都道府県をキーにした検索ができない点が不便。検索結果が多くなるから? APIの利用制限が厳しい。一定期間連続アクセスがあると遮断(HTTP 406が返却される)されるとあるが、2分に一回の間隔でもNGになるため使いづらい。 reference じゃらんWebサービス じゃらんWebサービス エリアコード じゃらんAPIを使ってさまざまな条件から日本中の宿と温泉を検索してみよう

Apache Content Negotiation Settings

Apache content negotiation settings check default settings about Apache vim /etc/httpd/conf/httpd.conf # # For type maps (negotiated resources): # (This is enabled by default to allow the Apache "It Worked" page # to be distributed in multiple languages.) # AddHandler type-map var cd /var/www/html/ ls -l -rw-r--r--. 1 root root 17 Sep 21 09:49 index.en.html -rw-r--r--. 1 root root 93 Sep 21 09:49 index.html.var -rw-r--r--. 1 root root 19 Sep 21 09:50 index.

Ruby on Rails Primer

ruby on rails の特徴 MVCモデルを採用 Model Model は ActiveRecord を利用 SQLite3, MySQL, PostgreSQL に標準対応 View ERB(Embedded RuBy), Haml, Slim といったテンプレートエンジンを利用 Controller Action(GET, POST, PATCH(PUT), DELETE) を定義 install(centos) # ruby -v ruby 2.1.2p95 (2014-05-08 revision 45877) [x86_64-linux] # gem install rails # gem list rails *** LOCAL GEMS *** rails (4.2.4) rails-deprecated_sanitizer (1.0.3) rails-dom-testing (1.0.7) rails-html-sanitizer (1.0.2) sprockets-rails (3.0.0.beta2) # rbenv rehash # rails -v Rails 4.

Electron Debugging

electron でデバッグを行う方法の1つ electron-debug ツールを利用する electron-debug の利用 dir >index.html main.js ... npm install --save electron-debug dir >index.html main.js node_modules \electron-debug ... vim main.js >require('electron-debug')(); vim package.json >"dependencies": { "electron-debug": "^0.2.0" } electron . >WindowsOSの場合は、F12でDev Tools起動、Ctrl+Rで再読み込み。 Reference sindresorhus/electron-debug

Electron Primer

node のインストール windows installer(.msi) をインストール。 node -v > v0.12.7 Electron のインストール npm -g install electron-prebuilt >electron-prebuilt@0.31.0 C:\Users\XXXX\AppData\Roaming\npm\node_modules\electron-prebuilt ├── extract-zip@1.0.3 (debug@0.7.4, minimist@0.1.0, async@0.9.0, yauzl@2.3.1, mkdirp@0.5.0, through2@0.6.3, concat-stream@1.5.0) └── electron-download@1.0.8 (path-exists@1.0.0, home-path@0.1.2, debug@2.2.0, mkdirp@0.5.1, mv@2.1.1, nugget@1.5.4) npm ls -g electron-prebuilt >└── electron-prebuilt@0.31.0 Application 作成 pwd .../node/electron-sample npm init > 全てEnter(デフォルト)で作成 dir > package.json >> package.json の main を index.jsからmain.jsへ変更している。 vim main.js vim index.html dir > package.

Scala Primer

Scalaのオブジェクト シングルトンクラス = Scala のオブジェクト。 インスタンスのように複数作成はできない。 #コンパイル scalac HelloWorld.scala scala HelloWorld scalac -d classes HelloWorld.scala scala -cp classes HelloWorld for構文 ジェネレータを用いる(eachのようなもの?) for (n:Int <- Range(1,101)) total += n for条件にフィルタをかけることができる for (n:Int <- Range(1,101); if (n % 2 == 0)) total += n メソッドと関数 Java同様にメソッドが存在する object HelloWorld { def main(args: Array[String]) = { println("Hello World") } def pritest(s: String) = { println(s) } } App trait を使うと main メソッドを省略できる ただ、よくわからないのが実行方法によって結果が違うこと。 おそらく mainメソッドの実行方法が違うのだと思うけど詳しく調べられていない。 object HelloWorld extends App { println("Hello World") } > scala HelloWorld.

HTTPS for AWS ELB(Elastic Load Balancer)

Introduction 本記事はHZ Colloquium Advent Calendar 2014の12/11分の記事です。 前回記事(Welcome to WebAPI World)の続きとなります。 前回までのあらすじ WebAPIを作ってみたくて色々調べてみたよってところまでは話した。が、実装まではたどりつけませんでした。 せっかくのWebAPIだからロードバランサで可用性担保しつつ、SSLなセキュアAPIを実現!という夢を語りました。 本日のお話 「せっかく」のところを実現してみました。ロードバランサとSSL通信のことです。 具体的にはAWSのロードバランササービス「ELB(Elastic Load Balancer)」の設定と クライアントからのHTTPS通信でのアクセスの実現です。結構ウェブ上に情報はあったので それほど苦労もなく実現できてしまいました。 なお、下記サイトに書いてあることとほぼ同じことをやった感じ。 全て網羅されてまとめられていて大変感謝です。 * AWSのELBにSSLを設定する(Nginx) おしながき PayPalへの登録(おまけ) SSL証明書の購入手続き ELBの設定(SSL証明書の導入) ドメインとELBの紐づけ PayPalへの登録 SSL証明書の購入に必要だった+初体験ってこともあったので登録してみました。 完璧には仕組みがわかってなかったんですけども、簡単に使えてます。 サービス利点としては、各ネット店舗での購入の際に毎回クレジットカード番号を 入れないといけないのを、一度PayPalにクレジット情報を登録しておけば、 PayPalとネット店舗間でお金のやり取りをやってくれるってところ。 初め理解ができなかったのは、上記以外にも「送金」ができるってところ。 日本の中では銀行以外が送金業務できないので実質は初めに行ったサービスだけ 使えるんだけど、法改正とかあるらしくて近く「送金」できるようになるみたい。 まぁネット上の銀行口座にクレジットから振り込みできるってことかな。 ちなみに、登録にはほぼ迷うことなく完了。 SSL証明書の購入手続き メールアドレスの準備 SSL証明書を購入する際は、正しいドメインの所有者か確認するため(?)に ドメイン名のメールアドレスにメールが送られてくる。 admin@codelogue.com とかを用意する(SSL証明書購入時に いくつか選択肢がでてくるので、それを確認してから作成でもよい) なお、独自ドメインで無料メールアドレスを持とうとすると、意外と狭き道だった。 (運よく昔作ったGoogle Appsのアカウントが有効だったため助かった) CSRの作成 AWSのELBに証明書を登録するためにはパスフレーズなしにする必要がある。 # 秘密鍵の作成(パスフレーズは適当に) openssl genrsa -des3 -out aws-elb.key.pem 2048 # 秘密鍵からパスフレーズを削除 openssl rsa -in aws-elb.