サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
猫
togattti.hateblo.jp
概要 Kibanaを管理者以外の誰かに使わせる場合、そのユーザを認証し、閲覧できるインデックスを限定したいことがある。 Shieldという有償プラグインで認証、認可が可能らしいが、お金をかけずに実現したかった。 dev.classmethod.jp 今回は、OpenRestyを使い、認証、認可を付け加えた。 認証は、NginxのBasic認証を利用する。 認可は、luaで、Nginxをカスタマイズして、認証を経たユーザのHTTPリクエストを制御する。 環境 OS Ubuntu 16.04 Kibana5.0.0 この記事では、192.168.0.2で動作する。 NginxとKibanaは同一のサーバ内で動作している。 Kibanaへの直アクセス禁止 KibanaのURLへ直接アクセスされると、認証、認可が適用されないので、外部から5601へのアクセスを閉じておく。 ただし、リバースプロキシ
SeleniumサーバをDockerコンテナとして構築する。 すでにGitHubにdocker-seleniumというプロジェクトが出ているが、 今回は日本語環境で利用したかったので、ゼロから作り直した。 github.com 使い方 $ git@github.com:kentatogashi/docker-selenium-ja.git $ cd docker-selenium-ja $ docker build -t 'kentatogashi/docker-selenium-ja' . $ docker run -dt -p 4444:4444 -p 5901:5901 kentatogashi/docker-selenium-ja 後記 デスクトップには、xfce4を使用していて、VNCでもつなぐことができる。 ちなみに、MacOSだと便利なことに、openコマンドで、簡単に立ち上
Elasticsearchを運用していて、あるノードのデータをバックアップして、それを別のノードにリストアする方法を探した。 以前は、elasticsearch-knapsackやesclientといった方法があったらしい。 Elasticsearchのデータを簡単にimport/exportする - (゚∀゚)o彡 sasata299's blog elasticsearchのindexバックアップ - Qiita ただ、Elasticsearch自体の機能に、バックアップ、リストアの機能が備わっている。 技術の進歩って早いね!! はじめに 192.168.0.2 データ移動元ノード 192.168.0.3 データ移動先ノード、インストール後の状態で用意。 共に、Ubuntu 16.04.1 LTS、 Elasticsearch 2.4.1で構築している。 データのバックアップ バックア
RailsアプリをApacheで公開する必要があったので、Passengerを使うことにした。 その備忘録を残しておく。 同じ内容をGistでも残した。 setup_passenger.md 環境 CentOS6.5 Apache/2.2.15 Phusion Passenger version 4.0.41 ruby 2.0.0p451 準備 Railsアプリのひな形を用意する。 $ rails -v Rails 4.1.0 $ mkdir ~/sample_app $ cd ~/sample_app $ rails new app --pre --skip-bundle $ vi Gemfile Gemfile内のgem 'therubyracer', platforms: :rubyのコメントアウトを外す。 $ bundle install $ bundle exec rake db
概要 LiveReload はファイルの変更を検知して、ブラウザを自動リロードするJavaScript製のライブラリ。 これを使うことで、cssやviewを修正したときに、手動でリロードせずに変更箇所を確認することができるようになる。 今回、Vagrantのゲスト内でRailsアプリケーションを動かしているので、これに対して、Live Reloadを設定する。 順番に書いていく。 Vagrantの設定変更 sshのローカルフォワード設定 ブラウザへの拡張プラグインのインストール guard-livereloadのインストール Vagrantの設定変更 このとき、Live Reloadはデフォルトポートである35729番でListenするので、 ローカルホストの35729番へのアクセスをゲストへポートフォワードできるように設定する。 そのため、Vagrantfileには以下を追記して、読み込
Basic認証というと、Apacheや.htaccessでも指定できるけど、 PHPでも実装できるみたいなので、試してみる。 普通はユーザやパスワードはDBに保存して取り出すけど、 今回は簡単なコードだけ。 キャプチャ コード PHP_AUTH_USERとPHP_AUTH_PWにはそれぞれ入力した情報が入って、照合する。 手軽かもしれないけど、平文を流してるのでセキュリティ的にまずそう。 そのうち、平文の暗号化についても勉強する。 参考: −第 34章PHP による HTTP 認証
はじめに MySQLに対してロードの検証を行うためにダミーデータを用意する必要が あったので、ダミーデータの取得からMySQLへの挿入までの流れをメモしておく。 バージョンは5系。 ダミーデータはここで手に入れた。 (日本語のデータ(〜5000件)) 疑似個人情報データ生成サービス (英語のデータ) generatedata.com 今回は疑似個人情報データ生成サービスからcsv形式でダウンロードし、 それをMySQLへ挿入することにした。 ダミーデータの作成 使い方は簡単ではじめに下記のような条件が選べるので、必要なものを選び 生成開始を押すだけ。 次にこのような画面が出てくるので、CSV形式でダウンロード。 とりあえずhogehoge.csvとしておく。 MySQLへ挿入 mysqlクライアントを開いて、下記のスクリプトでテスト用テーブルを作成。 mysql> CREATE TABLE
デバッグ用ファイルの出力処理を書いた。 Perl5.10で標準ライブラリとして使うことのできるTime::Pieceモジュールで、日時指定などを行っている。 これまで日時指定といえばTime::Localモジュールを使っていたが、Time::Pieceの方が、 明示的に名前を指定できるので、直感で分かりやすいので、こっちを使っていこう。 後、改行文字と改行コードの違いも知らなかった。 とりあえず¥n置けばいいと思ってた。 Unix、Windows,Makintoshでそれぞれ違うみたいだし、おいおい勉強していく。 実行する処理 作成したログファイルを出力 $ cat 20140204.log 20140204 16:11:35-Status:success 参考: 文字コードと改行コードについて 第15回 DateTime:APIの標準化をめざして:モダンPerlの世界へようこそ|gihy
前提 PerlのプログラムはCPUメモリの中で動作する。 値を入れた変数や特定の処理を保持したサブルーチンなどのデータはメモリ領域上のどこかに保存される。 リファレンスとは メモリ領域の中のどこに変数やサブルーチンが保存されているかを示す場所情報、 メモリアドレスのことをリファレンス(参照)と呼ぶ。 メモリと変数に関する簡単な図を作った。 あくまで自分が理解するためのイメージ図である。 下記の1~9という領域全体がメモリ領域を示すと考える。 $fooと$hooと$barが格納されている5,7,9という番号がリファレンスである。 Perlにおけるリファレンスの取得方法 Perlではスカラー変数、リスト、ハッシュ、サブルーチンなど のリファレンスを下記のようにして取得する。 #!/usr/bin/perl use strict; use warnings; my $_hoge = "HOGE"
最近Cent0S6.5をVPSで立ち上げて、Apacheを起動させたときに Webページを表示できなかったことがあった。 前提 httpd.confファイルは正しい。 httpdプロセスも動いている。 それではポート番号はどうだろうか。 telnetで外部からポート番号が空いているか調べる $ hostname *******-no-MacBook-Air.local $ telnet 180.235.***.*** 80 Trying 180.235.***.***... telnet: connect to address 180.235.***.***: Connection refused telnet: Unable to connect to remote host ふむふむ、外部から80番ポートに接続できないみたいだ。 netstatでホスト側のステータスを確認する # ne
Vimではてなブログに記事を投稿する方法があるみたいなので、試してみた。 実際にVimプラグインを使って、はてなのAPIを使うことで、記事の投稿、 編集、更新までできた。 いくつかプラグインはあるみたいだがhateblo.vimというものがすんなり 設定できたので、基本的な使い方までをメモしておく。 heteblo.vimのインストール、設定 はじめにはてなのAPIを利用するための基本情報を設定する。 .hateblo.vimというファイルを作成し、その中に下記のように記述していく。 このブログの場合は次のような感じ、 .hateblo.vim 'api_key'と'api_endpoint' は 詳細情報にも記載がある。 let g:hateblo_vim = { \ 'user': 'togattti1990', \ 'api_key': '************', \ 'api_
はじめに Pythonでは豊富なモジュール、ライブラリを使うことができるが、 検証を繰り返すと、本環境にゴミが残ってしまうのが残念なので、 複数の仮想環境でモジュール管理を目指すことにした。 仮想環境を構築することで、test1ではdjango、test2ではtornado、 test3ではnltkを利用したりというような使い分けが可能になる。 今回はvirtualenvとvirtualenvwrapperをPython3.3.0で構築し、 自然言語処理ライブラリNLTKのインストールまでの流れを書いた virtualenv,virtualwrapperのインストール pipでサクっと終わらせる。 下記のパスにインストールされていることを確認。 /usr/local/python/lib/python3.3/site-packages/virtualenvwrapper /usr/loca
某ホスティング会社に従事しているので業務柄、FTPの不正アクセス、 メールアカウントの踏み台の有無を調査するためにIPアドレスから 接続元の国名を取得することが多い。 今までは一つ一つ下記のようなサイトでIPを検索して調べていた訳だけど、 メールサーバーで踏み台が疑われるときにこれ毎回やるのはなかなか骨が折れる。 IPひろば:メイン IPアドレス&所在地検索 IP Geolocation Search Whois そのため、一括で検索できるようにするために、簡易ツールを作ってみた。 Geo IP List kentatogashi/geo_ip_list · GitHub PHPでGeoIPという専用の関数が用意されているので、そこまで苦労することはなかった。 ちなPHP5.4.2 GeoIPのインストール 流れは ① yum install re2c geoip geoip-devel②
jedi.vimはPythonをvimで書くときにコード補完を行ってくれるvimのプラグイン。 Pythonを書くときには、必要不可欠ということで、色々な場所で紹介されていたの で入れてみる。 davidhalter/jedi-vim · GitHub CentOS5.9 Vim7.3を用意 jedi.vimはvimプラグインの管理を行うためNeoBundle経由でインストールしていく。 しかし、NeoBundleを利用する際には、7.3系〜が必要となる。 既にバージョンが適合すれば、下記は飛ばしてもいい作業。 vimコマンドは/usr/local/vim-7.3/bin/vimでたたけるので、適当にalias登録しておく。 NeoBundleのインストール、利用方法 今後vimプラグインを置いておく場所を~/.vim/bundleとして、 その中にGitHubからcloneしたneobu
Railsで作成したWebサイトをスマートフォンから閲覧してみたら、 ひどくスタイルが崩れていたので、スマートフォン用のページを 別途作ることにした。 その際に必要なことは外部からのアクセスがPCからなのか、スマート フォンなのかという振り分け。 スマートフォンからのアクセスであれば、スマフォ用のページへ誘導する。 流れ的には スマフォ用のページのコントローラを作成 コントローラとビューを設定 ルートを設定 メインのコントローラに振り分けメソッドを追加 以上。 今回はmobilesというコントローラを作成した。 rails generate controller mobiles create app/controllers/mobiles_controller.rb invoke erb create app/views/mobiles invoke rspec create spec/c
PHP5.3から使えるnamespaceだけど、正直意味がよく分かってない(汗) だから、少し調べてみた。 namespaceとは 名前空間はソースコード上で冗長な命名規則を用いなくても名前の衝突が 起こらないようにし、しかもそれを容易に記述できるようにするためだけの概念 名前空間 - Wikipedia クラス名とか関数名の名前の衝突を防ぐというのがキーワード 名前の衝突が起きそうなケースとして考えられるのは、どこかのライブラリ、 モジュールを引っ張ってきて、自分でカスタマイズしていくときとかに、既 に予約済みクラス、関数、定数があったときとかに見られそう。 例えば、UserとかDataBaseObjectという名前のクラス名。 よく使いたくなる。分かりやすい名前だしね。 namespaceを使えば、そんな問題を解決してくれる。 あとZendframework2の中でもnamespace
最近HTML5のinput属性にrangeがあることを知った。 valueに数字を入れてくれたりするし、使い勝手は今後ありそう。 だけど、デフォルトがいけてなさすぎる... デフォルト↓↓ input type(range) 触ってみれば分かると思うけど、ドラッグして動かせるだけでどの数字を持っているのか、 分からない。だから、実際に実装する場合にはJavascript,CSSなんかで加工していく必要がある。 せっかくだからその一例を探して、ソースコードを斜め読みして書いてみることにした。 デモ inputタグにhoverすると、valueが表示され、そのまま動かすと、動的に増減する。 実にシンプル!! 次にコードの説明。 HTML inuput rangeのonchangeを設定して、outputタグのvalueと関連づけている。 outputは初めて知ったけどフォームで入力された値に基
Rails de Ajax Railsの仕様が何となく掴めてきたため、Ajax処理を加えて、 よりリッチなUIに近づけることにした。 今作成中のアプリケーションのコードを公開しながら、まとめていく。 必要なものはjQuery、 後、gemでjquery-railsは入れておく必要がある。 前提 resouceでRESTfulなルーティングを設定。 今回はItemテーブルを作成し、データのやりとりはそこで行っている。 ところどころ出てくる@itemとか@itemsはそれに関連するもの... destroy おそらく、ドキュメントとかを参照すると、 僕みたいな初心者はこのようなコードがデフォルトになるはず。 以上をベースに書く。 次にAjaxに対応したdestroy処理の流れはこんな感じ。 viewで項目のidがセットされたリンクをクリック。 そのidがコントローラへ渡されて、idにひもづく項
MySQLはインストール済みであることが前提。 MySQL 5.0 Ruby 1.9.3 Rails 3.2.13 RailsでデフォルトからMySQLを使う場合 mysqld起動 service mysqld start MySQLコンソールを開いてユーザとパスワードを作成し、権限付与。 ここで追加した情報は後半のdatabase.ymlの追記で使う。 Gemfileに追記 Gemfile あわせてバンドルしとく。 bundle install スケルトン作成時にMySQLをデフォルトに設定 rails new your_app -d mysql これでMySQLでアプリが制作できる。 途中でsqlite3からMysqlへのmigrationしたい場合 今度はデフォルトではなく、 アプリを作成している最中にMySQLを使いたくなったときの手順。 Gemfileに追記 Gemfile バン
アプリの中でブラウザ上でアイテムをドラッグ&ドロップでボックスに 自由に移動できる動作が必要になったので色々探してみた。 最初はenchant.jsで実現できるようだったけど、色々と面倒なことがあったので、 探してみたら普通にHTML5とJavascriptでできることがわかったのでまとめる。 ちなみにenchant.jsだとこれ。 enchant.jsでドラッグ&ドロップ - jsdo.it - Share JavaScript, HTML5 and CSS Javascript ドラッグ時の処理 ドラッグする要素のIDをDataTransferオブジェクトにセット。 ドラッグしている要素がdropboxゾーンと重なっているとき dropboxが要素を受け入れるために、イベントをキャンセルする。 ドロップ時の処理 DataTransferオブジェクトから、要素のIDを取得。 要素のIDか
RailsのデフォルトはSQLite、HerokuではPosgreだから、 ローカルのテストでうまく行ったはずなのに、実際にHerokuへ デプロイしたときにエラーが起きる。 単純にdatabase.ymlの設定をすればいいだけの話だけど、 DBのテストアプリをHerokuへ公開するのが初めてなので、 当然database.ymlとか触ったことがない。 バージョンは4.0.0rc. ただ、特に難しいことはなかった。 database.ymlの設定 Gemfileの本番用環境productionがあるように、 database.ymlにも本番環境として、productionが用意してある。 設定は以下のような感じ。この中に該当のパラムを入れていくだけ。 また、パラムについては簡単に調べることができる。 postgres://username:password@hostname/databas
社内の勉強会でVM構築の方法を教わったので、実験的に試してみる。 そもそも初心者だから、VMとかよくわかんないからはじまる... VMとは ソフトウェアによって仮想的に構築されたコンピュータ。 仮想化技術におけるVMは、OSが動作する実際のコンピュータをソフトウェアによって仮想的に構築したもの。 1台のコンピュータを複数のVMに分割することで、複数の利用者が同時に利用したり、異なるOSを並列に実行させたりすることができる。 VMとは 【Virtual Machine】 〔仮想マシン〕 - 意味/解説/説明/定義 : IT用語辞典 ふんふん、物理的にMac一台しか使っていなくても、マシンの仮想化をすれば、 Centであったり、Ubuntuであったり、複数のOSを構築して開発ができるということ。 OSによっては開発物の挙動が違う場合もあるから、便利かもしれない。 使うもの 環境構築に使うソフト
このページを最初にブックマークしてみませんか?
『togattti.hateblo.jp』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く