サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
Google I/O
yss44.hatenablog.com
最近DockerをつかってCLI環境の改善をしています。コンセプトとしてはRancherOSと似たようなもので、使いたいコマンドをDocker経由で使えるようにしています。 下記コマンドを$HOME/bin/runとして保存して.bashrc等にexport PATH=$HOME/bin:$PATHなどとしてパスを通しておくと、dockerを使える環境でさえあればどの環境でも同一のCLIツールを使えるようになってとても便利です。 #!/bin/sh docker run -it --rm -v $PWD:/pwd -w /pwd $@ コマンド実行するときはこんな感じ。 run yoshiso/js-beautify -r -n path/to/main.js おおきなメリットは2つあって、1つは必要なdockerイメージをその場でダウンロードしてくれるので、インストール方法を意識する必要
At first Docker v1.12のリリースまでもうすぐですね!swarmモードを始め、今回のDockerのアップデートはワクワクする機能が盛りだくさんで楽しみです。 今日はDockerのv1.12からリリースされる予定のDocker内蔵のswarmモードとサービスの機能を使ってクラスタを管理するツールAlgoを作ってみました。 github.com Why Docker v1.12から使えるようになるswarmモードとserviceの機能, ハートビート機能の実装により、Docker単体でサービスクラスタを簡単に用意できるようになりました。 是非活用したいと思ったところですが、3点問題点がありました。1つはdocker-composeはv1.12からリリースされるswarmモードに関してサポートを行わないこと(docker bundle用のエクスポートにてサポート)。2つめは、現
At first このところとんとブログを書いていなかったので近況を含め記したいと思います。 諸事情(?)を乗り越えCTO職を辞し、イチエンジニアとして5月にAlpacaにJoinしました。 What did you do? 前職では某ゲーム実況動画アプリの開発を行ってました。インフラからiOS, Android, Webまでいわゆるフルスタックに開発をしていました。 Railsでバックエンドサーバーを構築したり、Nginx+Docker+Etcdでスケーラブルな動画配信クラスタを組んだり、Docker+etcd+skydns+fleetを使ってインフラ基盤を構築して本番運用したり、React+Rxを使っていわゆるCycle.js系列のUnidirectional Data Flowアーキテクチャでフロントエンド構築したり、iOSとかAndroid書いたり、はたまたログ収集基盤を構築してj
2016 - 06 - 09 Dockerコンテナ内部からホストネットワークにアクセスする Docker docker Usecase データベース等状態を保つROLEのサービスはDocker クラスタ で管理したくない Dockerコンテナの内部からホストネットワーク上の別 インスタンス に存在するデータベースにアクセスするにはどうすればいいの? Answer ホスト上で IPマスカレード すれば一番簡単ですね 2台のICMPを許可したEC2 インスタンス を用意 ec2-01: 172.31.3.138 ec2-02: 172.31.13.32 root@ec2 -01 :~# ip a 1 : lo: < LOOPBACK,UP,LOWER_UP > mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1 link/loo
どうした Python製のプロビジョニングツールAnsibleに入門してみた。docker-machine, awsを使ってansibleで遊ぶプレイグラウンドを作ってみたので環境変数設定すれば似たような形で遊べるようになってます。 github.com 今回は初めてのAnsibleを読みながら触ってみましたが、好感触。ウェブ上のAnsible入門関連の情報は、散らばっているものばかりな印象でしたが、この本はインストールからロールの分割、モジュール作成まで一通りまとまっているので先に読んでおいて損はないです。 初めてのAnsible 作者: Lorin Hochstein,Sky株式会社玉川竜司出版社/メーカー: オライリージャパン発売日: 2016/04/16メディア: 大型本この商品を含むブログを見る 所感 プロビジョニングツールではchef(knife-solo), itamaeと渡
はい、最近なにかと流行っている?json-schema界隈、いかがお過ごしでしょうか。 json-schemaからSwift, Java(未実装)のAPIクライアントを自動生成するツールAriesを作りました。 github.com 機能についてはもう言うこと無いですね。JSONSchemaからSwiftのAPIClientを生成するジェネレータです。Promiseライクに操作したかったので ReactKit/SwiftTask · GitHubを採用。Networking libraryとしてAlamofireを使っています。 なぜ作った アプリの開発を行うとなったら、今はiOS, Andriodどっちも作るのが当たり前ですよね! どうしたら楽して手っ取り早くクロスフォームでアプリを開発できるのかと、調査を重ねてました。 Xamarin => かなり良さげだけど高い、、お高い+c#知らん
久しぶりのブログ。 mecabを久しぶりに弄ろうかと思ったら便利なやつが出てたのでDockerで簡単にインストールできるようにしておきました。 github.com googlecode.comを参照しているので2016/01/25には使えなくなると思いますが、とりあえず試すには使えると思います。 以下のコードをコピペでDockerさえ整っていればすぐに使えます。 code git clone https://github.com/yss44/docker-mecab-ipadic-neologd cd docker-mecab-ipadic-neologd chmod +x build run ./build echo "10日放送の「中居正広のミになる図書館」(テレビ朝日系)で、SMAPの中居正広が、篠原信一の過去の勘違いを明かす一幕があった。" | ./run result 10日
kaminariでTwitterライクな、もっと読む機能の実装方法 link_to_next_page()を使用する。 参考資料 strix01: [rails]kaminariで「もっと見る」を作る。 Twitter風なAjaxページネーションをKaminariで実現する - chulip.org これで、もし次のページが無ければNo more が表示される。 link_to_next_page()は次のページが無ければ何も返さない。 <li class=“morebutton”> <%= link_to_next_page,'more',remote:true do %> No more <% end %> </li> link_to_nex_page()にparameterを渡す。 <%= link_to_next_page(@note_list,'もっとみる',remote:tru
全文検索エンジンであるElasticSearchをRailsから使ってみようかと思うので、ちょっと弄って具合を確かめてみようと思います。そのためには、まずはElasticSearchのインストールから。せっかくなので、Dockerを使ってインストールして、外部サービスのような形で使って行こうと思います。 ちなみにソースはGithubにあげております。 まずはDockerfile FROM ubuntu RUN dpkg-divert --local --rename --add /sbin/initctl RUN ln -s /bin/true /sbin/initctl RUN echo "deb http://archive.ubuntu.com/ubuntu precise main universe" > /etc/apt/sources.list RUN apt-get upda
現在開発を進めていたアプリで、スクレイピングをするためにワーカーに処理を投げるということを行なっていました。その際にSidekiqを使用していたのですが、Sidekiqのワーカープロセスが増殖してサーバーのメモリを食い殺す。という自体が起きてしまい、エラーが頻発するようになってしまったのでその原因を探ってみました。 当初の段階で怪しいと思ったのはSidekiqのconfig/initializers/sidekiq.rbで設定ファイルに不備があるかconfig/unicorn/production.rbでUnicornの起動時にRedisとコネクション結ばせている設定がおかしいかの部分ではないかと見込みを付けてみました。 元の設定はこんな感じ config/initializers/sidekiq.rb Sidekiq.configure_server do |config| config
Kobitoいいですよね。とても奇麗なシンタックスハイライトがあり、Markdownで記述ができるので、構造化した文章を書く際には重宝してます。 しかし、そんなKobitoにも一つの不満が。 私は書いた文章は全てEvernoteに保存して後から検索して引っ張りだせるように一元管理しているのですが、Kobitoを使っているとそれがめんどくさい。 毎回コピペしてEvernoteに貼付けていたので、なんとか出来ないものかと常々思っていました。 と、最近良いものを発見。 kobitonote.py - Kobitoで編集したアイテムをEvernoteに同期保存 kobitonote.py なる便利そうなスクリプト。 試しに落として使ってみましたが、見事にエラーを吐く。 しかし、ここで諦めてはいられない! てことで、Kobito1.8.3,Mac OS 10.8の環境でスクリプトが動くように修正を加
DockerのVOLUMEの挙動がよくわからなくてはまっていたので、色々とテストしてみました。 VOLUMEがどんなもんなんだろというのが理解できたような、変更入りそうな感じだなーと思いつつテストしてみました。 テスト1 VOLUMEはビルド時に影響をあたえているのか!? FROM base MAINTAINER yoshiso VOLUME ["/data"] RUN mkdir /data RUN echo "test" >> /data/test.txt CMD ["/bin/bash"] 結果、 mkdir: cannot create directory `/data': File exists というエラーがビルドの段階で発生。VOLUMEを定義した段階でディレクトリが生成されるようではあります。 テスト2 ビルドする際に、VOLUMEディレクトリにファイルは追加できるのか!?
プロジェクトを閉じて開いてをもっと効率よくしたい!ってことでtmuxinatorをインストールして使い始めるまでを書いてみました。tmux,tmu-powerline,tmuxinatorまで一通りそろってインストールするドキュメントが無くて手間取ったのでまとめておきました。 目次 tmuxのインストール tmux-powerlineのインストール tmuxinatorのインストール 1. tmuxのインストール まずは最初にtmuxをhomebrewからインストールします brew install tmux 設定ファイルを生成して、設定を追加します。 vim ~/.tmux.conf #------------------------------------- # キーバインド設定 #------------------------------------- # prefixのキーバイン
定数設定ファイルから環境変数に読み込みを行って、gitには乗せられない重要な設定の管理を行います。 Capistranoなんかでデプロイを行おうとすると、設定ファイルがgit管理下に存在していて欲しくありません。 特にパスワードなど他の人に見せたらいけない情報が乗っているなら尚更です。 githubなんかにそのままpushしちゃうとセキュリティ的にも危ないですね。 これを回避するために、設定ファイルをgitの管理下から外し、producitonサーバーへ直接送りつけるのが一番良いのではないでしょうか? 今回はそんな重要な設定情報をカンタンに環境変数としてymlファイル1つで管理できちゃう方法を書いてみます! gemすら追加でインストールする必要はありません! まずは、環境変数を格納しておくYAMLファイルを作成します。 vim config/settings.yml 中身はこんな感じで c
Dockerのブログでunionizeを参照していたけど、unionizeはpipelineを使えば良いっていってる。 なので、pipelineを使用してDockerコンテナのvirtual networkを構築して見る。 1.コンソールを2つ開いて、コンテナを2つ立ち上げる Console A vagrant@precise64:~$ docker run -t -i centos bash-4.1# Console B vagrant@precise64:~$ docker run -t -i centos bash-4.1# 2.もう1つコンソールを開いて状態を確認 Console C dockervagrant@precise64:~$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 4503a71d4
一つのコンテナの中で、sshdを動かして、nginxを動かして、mysqlを動かして…みたいなことってやりたくなると思います。でも、Dockerでは、プロセスを起動させるコマンドを一つしか選択出来ない訳です。 CMD ["service","nginx","start"] CMD ["/usr/sbin/sshd","-D"] とか RUN service nginx start RUN /usr/sbin/sshd -D みたいなことは出来ない訳です。ということで、Python製のプロセス管理ツールであるSupervisorを使って同時に起動させることが可能なコンテナを作りたいと思います。 ソースコードはこちらです https://github.com/yss44/docker_supervisord MacからSSH接続可能なDockerコンテナを作る。とかDockerでnginxサー
みなさん新しいプログラミング言語を習得しようとした際に、どんな形で勉強を始めますか?私はとりあえずチュートリアルをやってみて外観をつかんでからリファレンスなどを漁っていくタイプのようです。ということで、iOSアプリ開発を勉強するためにウェブから無料でできるiOS7のチュートリアルをいくつかピックアップしてきました。これで最新のiOSの開発事情を知りつつアプリ作れるようになりましょう! iPhoneアプリ開発入門 (全14回) Dotinstall:iPhoneアプリ開発入門 (全14回) まずはDotinstallのチュートリアル。とりあえず触って動かしてみていろいろなUIパーツを使って見るまで。日本語+動画で理解するアプリ開発入門。 iOS 7 Best Practices; A Weather App Case Study iOS 7 Best Practices; A Weather
Dockerコンテナはどのように使うべきか悩みます。 ①すべてDockerfileでデプロイ部分まで記述してしまう。 -> コンテナビルドする度に最新のアプリケーションをビルドして起動する 一番シンプルかつやりやすそうなパターン。Dockerコンテナをそのままプロダクション環境にデプロイすることが可能なのであればこのパターンを取るのが一番楽そうな気がします。現環境だと、Dockerはまだプロダクションで使うべきでないと、Dockerが公式で言っているので(去年の話だけど)まだ早い感じ。 ②コンテナは環境構築だけですまして、Capistoranoなどのデプロイツールを使ってコンテナにデプロイする。 ->まあいわゆるステージング環境としてDockerコンテナを使うパターンでしょうか。アプリケーションに必要なプロビジョニングなんかはDockerfileに書いて済ましてしまう。アプリケーションはあ
Unicorn+Rails入門にでUnicorn+Railsなアプリ(yss44/unicorn_sample)を作って、起動させてみましたが、今度はそれをDockerコンテナの中で動かしてみたいと思います。そのために、Railsを動かすためにカスタマイズしたDockerイメージとUnicorn+Railsアプリを動かすコンテナを作ってみました。 さてさて、Dockerコンテナのご紹介 Docker_rails_base こちらは sshd supervisord rbenv ruby-2.0.0p-353 nvm node.js v0.10.24 の入っているDockerコンテナ。Railsを動かすための実行環境を整えてあげているイメージです。こちらのイメージを継承して、実際のアプリケーションの配置を行なうためのイメージを作る戦略を取りました。 Docker_rails_unicorn
MySQLをサービスとして提供するコンテナを作成してみました。データの永続化までやりたかったのですが上手く行かず。いい方法あれば教えてくださいorz ソースはここ https://github.com/yss44/docker_mysqld Dockerfileのレシピはこちら # DOCKER-MYSQLD # # VERSION 1 FROM centos MAINTAINER yoshiso RUN yum -y update #Dev tools for all Docker RUN yum -y install git vim RUN yum -y install passwd openssh openssh-server openssh-clients sudo ########################################## sshd ##########
MacからVMを介してダイレクトにSSH接続可能なDockerコンテナを作るDockerfileを作ってみました。プラス、それを便利に管理出来るツールProxyDockerも作ってみました。 今回作るコンテナは MAC -> Vagrant -> Docker Container とsshを2段行なわなければいけなかった問題を MAC -> (VagrantはProxyとして無視) -> Docker Container として、1回ssh接続をするだけでDockerContainerに接続可能にするような設定としております。 sshのProxyCommandを利用して作ってみました。 ブログ記事を色々と参照させて頂きながら作ったのですが、そのままのレシピだと動かないものが多かったので、1から作れるように手順を書いておきたいと思います。 ソースはここ(セキュリティ的に危ないものが抜けてるの
Railsでよく使われているサーバーUnicornについて勉強しておこうと思います。以前Unicorn+Nginxで動かそうとしたらうまく動かせなかったので、とりあえずゼロからテストアプリ作って、Unicornで動かすまでを1つづつ勉強して仕組みを理解して行こうと思います。 rails new unicorn_sample cd unicorn_sample rails g scaffold article title:string content:string rake db:migrate vim config/routes.rb routes.rb + root "articles#index" で動くアプリを一応作成 Unicornを導入 Gemfile + gem 'unicorn' bundle install touch config/unicorn.rb https://g
便利に使えるDockerコマンドをまとめておきました。 特定のコンテナのIPアドレスを取得する docker inspect -format="{{ .NetworkSettings.IPAddress }}" 2a5624c52119 特定のコンテナのイメージ名を取得する docker inspect -format="{{ .Config.Image }}" 2a5624c52119 -- 全ての起動中のコンテナのIDを取得する docker ps -q 結果 vagrant@precise64:~$ docker ps -q b703d4ac357a fe1edb02765c 全ての起動中のコンテナのIPAdressを取得する docker ps -q | xargs docker inspect -format="{{ .NetworkSettings.IPAddress }}"
Dockerすごい面白そうです。 最近ハッカソンに行ったりして、プロダクション環境へのデプロイ周りですごいはまった。特にお金もない自分は1つのサーバーの中にいろいろとアプリケーションをデプロイしちゃっている訳ですが、もうごちゃごちゃになって触りたくなくなりそう...。新しくサーバーをデプロイしたいけども、既存のサービスまで影響が及ぶ危険性もあり、めんどくさいなー。あと、あとできっと破棄するだろうけど、もとに戻すこともかなりめんどくさいし、そんなことやりたくないしなー。もっとアプリケーション毎に気軽に(そしてお安く)デプロイ出来ればいいのになー。 と思っていた訳ですが、最近Dockerというものを目にしまして。 Docker, Mesos, Sensu等を利用したBlue-Green Deploymentの仕組み 本番環境のBlue-Green Deploymentの仕組みのプロトタイプを作
Capistrano3で快適なデプロイ生活を目指しています。Railsで定数設定ファイルをgitから外して管理する方法。と組あわせれば、最高なデプロイ生活が待っていること間違い無しです。 が、Capistrano3のまとまった情報があまり手に入らず(Capistrano2とどっちかよくわからんし)、導入の際にかなり苦労したので、インストールから設定までをさらしておきます。 環境: Ruby 2.0.0-p247 Rails 4.0.0 Apache Passenger Server:CentOS6.4 公開鍵認証設定済み Capistranoとは Rubyでできたソフトウェアデプロイメントツールです。 Capistranoは分散環境へのウェブアプリケーションのソフトウェアデプロイメントを簡素化および自動化するために設計されています。 アプリのデプロイの際に生じるいろいろな作業をコマンドで自
真の爆速は速すぎて見えない」 ヤフーにおけるリーンスタートアップの実践。IBM Innovate 2013 読んだ。間違った認識をしてしまう人が増えそうなので書いてみる。 記事において ユーザー体験は理不尽に減衰する フィードバックのサイクルが速ければ速いほど、面積を増やせます。 リーンスタートアップもアジャイル開発もDevOpsも、すべてのモダンな方法論は、このスコープ中のスループットを最大化する、これに集約されると思います。 の部分。リーンスタートアップの概念をスループット最大化に持って行くのは間違っている。 リーンスタートアップのコアの概念は、以下のように構築ー計測ー学習のプロセスを爆速で回して、最適なユーザー体験を模索していくことだ。 構築フェーズではユーザーが、どんなニーズを持っているのか?の仮説を上げその中で一番重要なものをチョイスする。そのニーズが正しいものなのかを検証するた
最近は、為替の予測モデルの構築をプライベートでちょこちょこと行っていたわけですが、進捗駄目です。全然いいモデルを構築できず正月を過ごしてしまいました。ふと、どのくらいの予測精度を目標にすべきかということについて、全く考えていなかったなということに気が付きEURUSD, USDJPYでどれくらいの精度を目指すべきか、各タイムフレーム毎に検証してみることにしました。 仮説 取引頻度が高いほど、1取引あたりに対するスプレッドの割合が大きくなるはずなので、必要な精度は高くなるはず。 検証方法 S=スプレッド, E=期待Pips, P=精度(正解率) とすると、 の方程式が成り立つときに利益を出せるようになるはずなので、このPの値を求めてみました。もっと厳密に計算するにはスリッページのことを考慮しなければいけませんが(特に短いタイムフレームでは)、今回は正規分布にでもなっていると仮定して、無視できる
このページを最初にブックマークしてみませんか?
『Less is Best』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く