Hugo on CentOS 7

tl;dr CentOS 7上でHugoを動作させる 作成したコンテンツは travisでビルドし、Github Pages で公開する Hugo install $ cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) $ yum -y install git go $ yum list installed | grep -E '^git|^golang' git.x86_64 1.8.3.1-6.el7_2.1 @updates golang.x86_64 1.6.3-1.el7_2.1 @updates golang-bin.x86_64 1.6.3-1.el7_2.1 @updates golang-src.noarch 1.6.3-1.el7_2.1 @updates $ cd /opt $ export GOPATH=$HOME/go $ go get -v github.com/spf13/hugo $ vi /root/.bash_profile PATH=$PATH:$HOME/bin:$HOME/go/bin $ source /root/.bash_profile $ hugo help $ hugo version Hugo Static Site Generator v0.

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.