タグ

suzukit86のブックマーク (1,433)

  • vagrant-serverspec で TDD ライクにサーバ構築を行う

    Shin x blog Advent Calendar 2013 の 24 日目です。 先日リリースされた vagrant-serverspec を使って、テストドリブンなサーバ構築を行ってみました。 vagrant-serverspec は、サーバ、インフラの状態をテストするツール serverspec を Vagrant のプロビジョナとして実行できるプラグインです。これを使うことで、vagrant コマンドから、serverspec のテストを実行することができます。 詳しくは、@ryuzee さんの下記エントリを参照して下さい。 vagrant-serverspecを使ってプロビジョニング結果をテストする | Ryuzee.com 仕様 今回構築するサーバの仕様は下記です。PHP 5.5.x をインストールして、ビルトインサーバを起動するというものです。(※ちなみにビルトインサーバ

    suzukit86
    suzukit86 2014/01/08
  • テストを書く - シンデレラは削らない

    http://t-wada.hatenablog.jp/entry/debugging-tests 和田さーん! テスト駆動開発(TDD : Test Driven Development)は、プログラマが自分の不安を克服し、自分が書くコードに自信を持ちながら一歩一歩進んでいくための手法です。不具合の発生は、端的に言えばこれまでの「自信」を揺らがせる事態です。テスト駆動開発者は不具合にどう立ち向かうのでしょうか? やはりテストを書いて立ち向かってゆくのです。 チーム内にテストを書く習慣を持ち込んで三年、最初のうちは工数が増えるだけだ(あるある)、テストを書いても不具合がでるじゃないか(あるある)、システムテストでカバーすればいい(あるある)などという抵抗があり、それでも僕は淡々と雨の日も、晴れの日も、雪の日も、朝も夜も深夜も、終電後のオフィスでも、GW中の人気のないオフィスでも、自動テスト

    テストを書く - シンデレラは削らない
    suzukit86
    suzukit86 2014/01/07
  • パッケージユーザーのための機械学習:教師あり学習同士で分離超平面・決定境界を比較してみる - 渋谷駅前で働くデータサイエンティストのブログ

    このシリーズ記事では、Rで*1色々な機械学習のアルゴリズムについて、それらがどんなものなのかを簡単なデータに対して分離超平面・決定境界を描きながら見てきました。 パッケージユーザーのための機械学習(1):決定木 - 銀座で働くデータサイエンティストのブログ パッケージユーザーのための機械学習(2):ロジスティック回帰 - 銀座で働くデータサイエンティストのブログ パッケージユーザーのための機械学習(3):サポートベクターマシン(SVM) - 銀座で働くデータサイエンティストのブログ パッケージユーザーのための機械学習(4):ニューラルネットワーク - 銀座で働くデータサイエンティストのブログ パッケージユーザーのための機械学習(5):ランダムフォレスト - 銀座で働くデータサイエンティストのブログ ということで今回はおさらいとして、これまで見てきた教師あり学習同士で分離超平面・決定境界のプ

    パッケージユーザーのための機械学習:教師あり学習同士で分離超平面・決定境界を比較してみる - 渋谷駅前で働くデータサイエンティストのブログ
    suzukit86
    suzukit86 2014/01/06
  • Rubyで簡単に全文検索エンジンが作れるGrnMiniを作った - ブログのおんがえし

    続きを書きました。 RubyでただのArrayだと思って・・の続きです。正月中に整備してgem化しました。 GrnMini ongaeshi/grn_mini Groonga(Rroonga)を簡単に使えるようにラップしたものです。 カラム指定不要でデータを追加することが出来ます。 永続化、高度な検索クエリ、ソート、グループ化(ドリルダウン)、スニペット、ページネーションなどを簡単に使うことが出来ます。 検索エンジンがすぐに作れます。 インストール $ gem install grn_mini 基的な使い方 実体はRroongaの薄いラッパーですが難しいことを考えずに使えるよう工夫しています。 require 'grn_mini' array = GrnMini::Array.new("test.db") 初めてデータを追加する時にカラム種類を類推して作成します。追加するデータが文字列の

    Rubyで簡単に全文検索エンジンが作れるGrnMiniを作った - ブログのおんがえし
    suzukit86
    suzukit86 2014/01/06
  • さくらのVPSに来る悪い人を観察する その2

    さくらのVPSにアタックしてくる人たちを、ハニーポットなど使いながらその行動を観察した記録です。観察日記。 今回のネタは以下2つです。 *SSH honeypot(Kippo)を使った悪い人の行動観察、アンケート */cgi-bin/php (Apache Magica攻撃)の観察 なおこのスライドは、2013年12月7日のSecurity Casual Talks(すみだセキュリティ勉強会)での発表資料です。 http://ozuma.sakura.ne.jp/sumida/ またスライド中、動画は以下のURLで閲覧できます http://youtu.be/gp3SBjZNWHURead less

    さくらのVPSに来る悪い人を観察する その2
    suzukit86
    suzukit86 2014/01/06
  • Iceberg - dark blue color scheme for Vim / Neovim

    Iceberg is a well-designed, eye-friendly dark blue color scheme for Vim and Neovim. Each colors are carefully picked for full-colors environment, and it works in 256-colors terminal as well. 256-colors terminal support airline theme and lightline colorscheme Various plugins support: ALE / CtrlP / Denite / Easy Motion / Git Gutter / Signify / Sneak / Startify / Syntastic / vim-plug / etc. Better sy

    suzukit86
    suzukit86 2014/01/06
  • Amazon Linuxにknife-soloの実行環境を構築してみる | DevelopersIO

    こんにちは、やま です。2回目の投稿です、よろしくお願いします。 前回、"Amazon Linuxの環境にRubyの実行環境を構築する方法" を紹介させていただきました。今回は、この環境上にknife-soloの環境をつくって、Webサーバを構築する簡単なレシピを作成・実行してみたいと思います。 構成としては以下のイメージです。 Amazon Linux(今回はami-be1c848e)を2台用意 knife-solo実行マシンは事前にRubyの環境を用意 両方ともインターネットへ接続可能 セキュリティグループの設定はそれぞれ以下の通り knife-solo実行マシン:sshが有効 Webサーバ: ssh, httpが有効 操作はすべてLocal PCからknife-solo実行マシンにSSH接続をしておこなっていきます。また、knife-solo実行マシンからWebサーバへアクセスする際

    Amazon Linuxにknife-soloの実行環境を構築してみる | DevelopersIO
    suzukit86
    suzukit86 2014/01/06
  • JavaScript Patterns

    A JavaScript pattern and antipattern collection that covers function patterns, jQuery patterns, jQuery plugin patterns, design patterns, general patterns, literals and constructor patterns, object creation patterns, code reuse patterns, DOM and browser patterns (upcoming). Patterns collected while developing 喜感网. General Patterns Function Declarations - creating anonymous functions and assigning t

    suzukit86
    suzukit86 2014/01/02
  • Rubyとか使ってクローリングやスクレイピングするノウハウを公開してみる! - 病みつきエンジニアブログ

    今まで何度もスクレイピングとかクローリングをしてきたので、マエショリストの端くれとしてコツを公開すべきかなあ、と思い、公開します。 今日の題材は、CNET Newsです。私はウェブ文書にタグ付けをするという研究をしているのですが、そのための教師データとしてクローリングをします。 photo by Sean MacEntee 要件定義 CNET Newsから全ニュースを保存し、その文をデータベースに保存します。これは、次のようなフローに書き下すことができます。 全URLを取得し、データベースに保存 データベースにある全URLをダウンロードする 保存した全ページを解析して、文をデータベースに保存する という流れです。これらは独立していますから、それぞれどの言語で解析しても構いません。しかし後述しますが、「あとから追いやすくする」「適材適所」といったあたりを気をつけて、言語選択をするべきだと

    Rubyとか使ってクローリングやスクレイピングするノウハウを公開してみる! - 病みつきエンジニアブログ
  • RubyとPythonとC#のround関数のバグっぽい挙動について - hnwの日記

    (12/29 20:40追記)「(追記)なぜMySQLのdecimal型を例に使ったかについて」というセクションを追加しました。また、コメントを頂戴したので返信しました。 (12/29 21:30追記)C#について言えば「Math.Round メソッド (Double, Int32)」に内部実装がどうなっているか書いてあるので仕様通りであり、誤解しようが無いという情報を頂きました。ありがとうございます。そしてごめんなさい、確かにバグじゃないです! (12/29 21:50追記)Pythonのround関数のドキュメントにも誤差が入るかもしれないという記述があります。しかし、内部実装の紹介があった方がいつどういう誤差が入るかわかるので親切かなという気がします。また、浮動小数点数の性質上誤差が入るのは仕方が無いかのような記述に見えるのですが、浮動小数点数を使っていても誤差の入らない実装がありう

    RubyとPythonとC#のround関数のバグっぽい挙動について - hnwの日記
    suzukit86
    suzukit86 2013/12/29
  • 格安SIMを使いこなせ!月額1000円以下の最新MVNO業者12サービスを徹底比較 - サラリーマン休日副業で月10万円以上目指すページ

    皆さんこんにちは。 2013年もあと3日で終わります。 今年は格安SIM元年と言っても過言ではないほど、格安SIMサービスの競争が激化しました。以前から日通信が細々とサービスは行なっていたのですが、SIMフリーiPhoneの発売などここ最近で一気に格安SIMの知名度が上がった気がします。 SIMフリー iPhone 5S/5C 日発売 格安SIM利用で最強に!各キャリアの2年間通信料と徹底比較した結果… - サラリーマン休日副業で月10万円以上目指すページ 格安SIMって何?という方は是非下記ページをご参照ください。年間10万円以上の通信料を削減できる可能性があります。 格安SIMを使って携帯のパケット通信料を月1000円以下にする裏技を一挙公開! - サラリーマン休日副業で月10万円以上目指すページ 乱立する格安SIM提供業者を整理し、どこがお得か徹底比較したいと思います。 月額10

    格安SIMを使いこなせ!月額1000円以下の最新MVNO業者12サービスを徹底比較 - サラリーマン休日副業で月10万円以上目指すページ
    suzukit86
    suzukit86 2013/12/28
  • ピッチの場で投資家が起業家によくする5つの質問 - BRIDGE(ブリッジ)テクノロジー&スタートアップ情報

    Some rights reserved by ScoRDS これまでいろんなピッチイベントを取材してきた。多くの場合、起業家は短い時間でのピッチを行ったあとに、審査員による質問の時間が設けられており、起業家は投資家たちから質問を受ける。 何回かピッチイベントを取材していて、筆者がこれはよく質問されることだなと思ったポイントを整理してお伝えしようと思う。今後、ピッチイベントに臨もうとする起業家や、投資家がどういう点を見ているのかを知りたい人は参考にしてもらいたい。 当にニーズあるの? まず聞かれるのはそのサービスのニーズは当に存在しているのか、ということだ。「ニーズを自分の頭の中で創りだしていないか?」と自問自答して考えを深め、具体的なエピソードやデータを交えながら、そのニーズが確かに存在することを説明する必要がある。 ユーザはどうしてそのサービスを使ってくれるの? ユーザがそのサービ

    ピッチの場で投資家が起業家によくする5つの質問 - BRIDGE(ブリッジ)テクノロジー&スタートアップ情報
    suzukit86
    suzukit86 2013/12/26
  • 不具合にテストを書いて立ち向かう - t-wadaのブログ

    テストを行っている品質保証チームや、実際にシステムを使っているお客様から不具合が報告されたとき、あなたはどう思いますか? 悲しんだり、恥ずかしいと思い、不具合修正にすぐに着手したいと気がはやるのが人情というものです。しかし、焦っているときに行う作業はしばしば視野が狭く、一つの不具合修正が三つの新たな不具合を生んでしまうようなことになりがちです。 テスト駆動開発(TDD : Test Driven Development)は、プログラマが自分の不安を克服し、自分が書くコードに自信を持ちながら一歩一歩進んでいくための手法です。不具合の発生は、端的に言えばこれまでの「自信」を揺らがせる事態です。テスト駆動開発者は不具合にどう立ち向かうのでしょうか? やはりテストを書いて立ち向かってゆくのです。私はテスト駆動開発を数年間実践してきた中で、心がけているひとつの「掟」があります。それは「不具合の修正時

    不具合にテストを書いて立ち向かう - t-wadaのブログ
    suzukit86
    suzukit86 2013/12/26
  • serverspec インフラ層のテスト項目を考える | Ore no homepage

    最近は担当システムが平和だけど俺が平和じゃない。疲れてる。忘年会の連チャンもきっついトシになっちまった。会社の制度で1週間くらい休みがとれるので、一人で温泉とスノボと開発合宿でもしに北海道にでも行こうかなって思ってる。1月か2月くらいに。 えーと、担当しているサービスにserverspecを導入した。それにあたってテスト項目を考えたので軽くまとめる。もちろんserverspec導入前もサーバ構築後は動作確認というか、テストらしいことはしていたっちゃしていたんだけど、テスト項目をまともに考えたのはこれが初めてかもしれない。serverspecのバージョンは0.13.2である。Rubyは2.0.0。 0. 環境 下記のような環境に導入した。ありふれた構成だと思う。60台くらいの規模。DBはマスタ3台に分割されていて、それぞれにスレーブがn台ぶらさがっている。LBの箱は二つあるが、物理的には1台

  • Bundler再履修: bundle execって何? gemはどこに入るの? - memo.yomukaku.net

    Rails 3のgemの管理に使用されるbundlerの使い方を復習します。 Bundlerの現時点の最新安定版のversion 1.2.3を対象とします。Bundlerを使うと何が嬉しいのか? あるgemが開発環境にはインストールされているが、production環境にはインストールされていない、といった問題が無くなる。 プロジェクトに必要なgemをはっきりさせることができる。 Bundlerのインストール %~ gem install bundler システム標準のrubyを使用している場合はsudoが必要な場合があります。rbenvやrvmを使用している場合はgem install bundlerのみでインストールできます。 bundle checkでインストール必要なgemをチェック Gemfileの中に記載されているgemのうち、これからどれをインストールしなければならないか

  • Python でシェル経由でコマンド実行するときのバッドノウハウ - methaneのブログ

    PHPだってシェル経由でないコマンド呼び出し機能が欲しい コマンド実行でシェルが怖いなら使わなければいいじゃない どちらの記事でも Python の subprocess を使ってシェルを介在せずにコマンドを実行する方法が紹介されています。 シェルを介在すると、エスケープの問題考えるのが面倒だったり、 kill してみたらシェルだけ殺して肝心のコマンドがずっと残ってるというアホみたいな問題を避けられるのでお勧めです。 いい子はこれを使いましょう。 この記事ではどうしてもシェルの機能が使いたい場合や、 subprocess の PIPE の組み立てが面倒な場合のための、バッドノウハウを紹介していきます。 ちなみに、バッドノウハウと呼んでるのは、安全安心 one size fits all ではなく、メリット・デメリット・やり方をいちいち調べないといけなくて、しかもその調べる行為がほとんどコン

    Python でシェル経由でコマンド実行するときのバッドノウハウ - methaneのブログ
  • グリーのインフラに Chef を導入した話 | GREE Engineering

    類似のソフトウェアとして、Puppet や Ansible といったものもあります。こういったインフラ自動化まわりのソフトウェアについてはペパボの宮下さんの インフラ系技術の流れ が参考になります。 Chef in グリー さて、グリーでのChefまわりの構成をご紹介します。下図が全体の構成です。 開発環境 開発は各個人のマシン上で仮想マシンを立ち上げて行なっています。クックブックの開発では、クックブックを開発する人が serverspec でテストを書くようにしていて、構築後のサーバが期待通り動くことをテストしています。一つのクックブックでも設定値などの条件によって動作が変わってくるため、test-kitchen を用いて複数の条件(ランリストやノードのアトリビュート(以下、「アトリビュート」)などの組み合わせ)でテストを行っています。 また、一部仮想マシンを使う必要がないテスト(att

    グリーのインフラに Chef を導入した話 | GREE Engineering
  • Docker + Mesos + Marathon + Graphite + Fluentd + Sensuを組み合わせたデプロイ管理ツールの話 - ゆううきブログ

    開発合宿でDevOps界隈やモニタリング界隈で流行りのツールを組み合わせてBlue Green Deploymentできる何かを作りました。 同じチームで開発したid:shiba_yu36 先生やid:wtatsuru 先生が既にブログを書いてますが、自分の視点で書いてみます。(13/12/24追記: より詳細な内容が新規に書かれたのでリンク先を入れ替えました) Docker, Mesos, Sensu等を利用したBlue-Green Deploymentの仕組み - $shibayu36->blog; Docker コンテナにアプリケーションを立てて Graphite でいい感じに可視化するまで - wtatsuru's blog 僕は主に、各ツールから得られる情報をまとめて管理し、デプロイを実行するデプロイ管理ツールを作成していましたので、それについて書きます。 普段は運用の修行をして

    Docker + Mesos + Marathon + Graphite + Fluentd + Sensuを組み合わせたデプロイ管理ツールの話 - ゆううきブログ
  • Vagrant の public_network に固定 IP アドレスを付与する

    Vagrant の public_network はデフォルトだと DHCP で IP アドレスが付与される。 でも、実際にはブリッジさせるネットワークだと静的に IP アドレスを振りたいことの方が多いんじゃないだろうか。 ドキュメントにはやり方が載ってないものの、このプルリクエストを見ると、どうやら今のバージョンならできそうな感じ。 具体的には Vagrantfile の config.vm.network :public_network の部分を以下のように編集する。 :bridge を指定しているのは VM の起動時に毎回ブリッジする NIC を聞かないようにするため。 $ cat Vagrantfile | grep public_network config.vm.network :public_network, :ip => "172.16.100.1", :netmask =

    Vagrant の public_network に固定 IP アドレスを付与する
  • Vagrantのpublic_networkで嵌まる → forwarded_portを使って解決! - cloverrose's blog

    Vagrantで作ったVMにApacheをインストールして外部に公開しようとして嵌ったのでメモしておきます。 普段Vagrantを使わずにWebアプリを公開するときはVirtual Boxの設定でネットワークをブリッジアダプターにして、ルータのポートマッピング設定で直接VMのローカルIPを指定していました。 なのでVagrantを使った今回もforwarded_portではなくてBridgeに当たるpublic_networkを使おうとして嵌ってしまいました。 やりたいこと Vagrantで作ったVirtual BoxのインスタンスにApacheなどのWebサーバをインストールして外部に公開 手順 forwarded_port設定がされたVagrantfileを使ってノードを立ち上げApacheをインストール mkdir sandbox cd sandbox wget https://gi

    Vagrantのpublic_networkで嵌まる → forwarded_portを使って解決! - cloverrose's blog