タグ

ブックマーク / qiita.com (35)

  • 俺が悪かった。素直に間違いを認めるから、もうサービスクラスとか作るのは止めてくれ - Qiita

    ちなみに、最初に結論だけ言っておくと、まずSandi Metzの「オブジェクト指向設計実践ガイド」を読め、という話です それだけで終わってしまいたい気持ちはあるが、不親切過ぎるしもうちょっとRails向けの話を書こうと思う。 ただ言いたいことは、よく分かってないのに使うのは止めろということ。 自分もで書いたりした手前、それが参考にされた結果なのかもしれないが、世の中には当に酷いクラスが存在するもので、雑にサンプルで書くと以下の様な感じのコードが存在したりする。 class HogehogeService # Hogehogeはモデル名まんま def process(hogehoge, option_a: nil, option_b: nil, option_c: false) history = hogehoge.histories.last unless hogehoge.activ

    俺が悪かった。素直に間違いを認めるから、もうサービスクラスとか作るのは止めてくれ - Qiita
    bouzu_ao
    bouzu_ao 2016/12/16
  • Solr Cloud Document Routing と solrconfig.xmlを使ったPrefix付Document IDの生成 - Qiita

    Solr Cloud Document Routing と solrconfig.xmlを使ったPrefix付Document IDの生成Solrsolrcloud 起こった問題 Solr5.5 で構築した Solr Cloud 上で結果をグルーピングした時に、group.ngroupsの数が結果と一致しないという問題に当たる。Apache Solr Documentationでも、 Distributed Result Grouping Caveats "group.ngroups and group.facet require that all documents in each group must be co-located on the same shard in order for accurate counts to be returned. Document routing

    Solr Cloud Document Routing と solrconfig.xmlを使ったPrefix付Document IDの生成 - Qiita
    bouzu_ao
    bouzu_ao 2016/08/03
  • 機械学習を使って作る対話システム - Qiita

    このような対話を通じて、レストランの検索に必要な情報をユーザから取得し、レストラン検索を行います。 今回、レストラン検索にはHotPepperグルメサーチAPIを利用させていただきました。ありがとうございます。 システムアーキテクチャ 対話システムは複数のモジュールから構成されています。今回は、各モジュールは独立に動作させず、前段階のモジュールの処理が終わった段階で駆動されるようにしています。 最終的なシステムアーキテクチャは以下の図のようになりました。 今回のアーキテクチャに沿って処理の流れを説明すると以下のようになります。 ユーザがテキストを入力すると、入力したテキストは言語理解部に入力されます。 言語理解部では入力されたテキストを解析して、対話行為と呼ばれる抽象的な意味表現に変換します。 言語理解部から出力された対話行為は、対話管理部に入力されます。対話管理部では入力された対話行為を

    機械学習を使って作る対話システム - Qiita
  • あのライブラリは何故誕生したの?のまとめ - Qiita

    はじめに 最近、フロントエンドのライブラリ乱立問題について盛り上がってました。 自分はnobkzさんの以下の文に全てがまとまっていると思います。 僕の最初の違和感は、「技術的な流行り」に乗ることに何の価値があるのだろうか?ということである。もちろん、最新のツールやフレームワークはより何かが良くなってるかもしれない。しかし、 それをあなたのプロジェクトで採用するには何の価値があるだろうか? 「最近のフロントエンドへの違和感 - nobkzのブログ」より 裏を返せば、新しいライブラリの内容、特に「どのような問題を解決するためにこのライブラリが生まれたのか」という思想を把握しておくことは重要だと言えます。 つまりは、 "How?(ライブラリの使い方)" よりも "Why?(なぜそのライブラリが必要なのか)" を学んでおこう ということです。この記事では どのような既存の問題・要求を どう解決して

    あのライブラリは何故誕生したの?のまとめ - Qiita
  • BitCoinとBlockChainにまつわる誤解ーそんなことはできない - Qiita

    言いたいことを一行で BlockChainはいろいろと面倒な制約がありますので,KISSの原則を忘れないようにしましょう.権力分立の原理をどうやっても守りたいという政治的な主張がない限り,BlockChainを応用するのはナンセンスです. はじめに BitCoinの中核をなすBlockChainと呼ばれる技術が今ホットですね,いろんなところで耳にします.BlockChainとはようは皆で合意(AさんがBさんにXを渡したという取引記録)を形成していく分散型合意形成アルゴリズムです.ボランティアで参加したコンピュータ全員で協力して改ざんが困難な取引記録を作っていこうというアルゴリズムです. BlockChainアルゴリズムを銀の弾丸,あるいは魔法の杖か何かだと勘違いしている人がたくさんいて,音楽電子書籍のデジタルライツ,はたまたマイナンバー制度の管理に使えると主張している方々をちらほら見かけ

    BitCoinとBlockChainにまつわる誤解ーそんなことはできない - Qiita
  • NGINX 1.9が汎用TCPサーバとして使えるようになっていた件 - Qiita

    はじめに 一年程前にリリースされた Nginx v1.9.0で、Streamモジュールが追加されました。 Streamモジュールを使うと、任意のポートでNginxがTCPの接続を待ち受けるよう設定できます。 この機能は、例えばNginxをTCPロードバランサとして構成する時に威力を発揮するようです。 nginx Blog - TCP Load Balancing with NGINX 1.9.0 and NGINX Plus R6 強力そうな機能ですが、個人的にNginxをTCPロードバランサとして使っていなかったため、特に機能を活用する場もなくスルーしていました。 ところで、つい先日公開されたNginxのモジュール、stream-lua-nginx-module、及び、stream-echo-nginx-moduleを組み合わせれば、任意のポートで待ち受けるTCPサーバをLuaで記述でき

    NGINX 1.9が汎用TCPサーバとして使えるようになっていた件 - Qiita
  • データインポートとDATASETとTABLEと。 - Qiita

    はじめに 某ノンアルコール梅酒のCM。おっしゃる通り。ごめんなさい。 と、いうことでデータインポートとDATASETとTABLEについて。 とにかく安いんでぼこぼこデータ追加しちゃえばいいんですけど、私なりの考えをまとめてみました。 前提 CloudSDKは入れておきましょう。 https://developers.google.com/cloud/sdk/ まぁ、webの管理コンソールでも全部できちゃいますけどね。 サイオスさんも詳しく書いてくれていますよ。 http://sstd-bigdata.blogspot.jp/2013/07/google-bigquery-bq-command.html データ準備 さて、どんなデータ入れるかな?実務のデータを入れると速さを肌で感じることが出来ますね。 ただし、こういうものの特徴でデータ追加は出来るけど、更新・削除はできません。 そんな時のこ

    データインポートとDATASETとTABLEと。 - Qiita
  • Advent Calendar 2015 Ranking - Qiita

    Advent Calendar 2015 Ranking

    Advent Calendar 2015 Ranking - Qiita
    bouzu_ao
    bouzu_ao 2015/12/24
  • Terraform と CI で実現するインフラのコード化と構築の自動化 - Qiita

    Wantedly Advent Calendar 2015 18日目です。 インフラチームインターンの @dtan4 です。 Wantedly では Terraform を用いたインフラのコード化 (Infrastructure as Code) を全面的に取り入れています。インフラリソースの追加や修正は、コードを書くこと・CI 上での自動適用によって行われています。 この記事では、今年5月から半年以上の間 Terraform を運用してきた中での なぜ Terraform でインフラをコード化しようとしたのか どのように Terraform を運用しているのか Terraform 運用にあたって注意すべき点 既存リソースから Terraform コードを生成する Terraforming について ということを紹介したいと思います。 Terraform とは Terraform は、Va

    Terraform と CI で実現するインフラのコード化と構築の自動化 - Qiita
  • fluent-plugin-beatsを作った - Qiita

    複雑な設定はありません.デフォルトで0.0.0.0:5044で起動し,topbeat,packetbeat,filebeatすべてのイベントを受け付けます.この設定だと固定タグですが,tagの代わりにmetadata_as_tagを設定すると,各イベントが持っているメタデータの設定を使うようになり,topbeatならtopbeatというタグが付くようになります.以下の"Elasticsearchに投げる設定例"を参照してください. filebeatが送ってくるイベントにはログそのものが含まれているので,これをbeatsプラグインの中でパースしたい場合には,in_tailのようにformatを指定すれば処理してくれるようになります. その他書いてない設定に関してはREADMEの設定セクションを参照してください. Elasticsearchに投げる設定例 各beatはlogstashのインデッ

    fluent-plugin-beatsを作った - Qiita
  • iOSのViewはどうやってつくるべき?storyboardとxibの使い分けについて考えをまとめてみた - Qiita

    iOSのViewはどうやってつくるべき?storyboardとxibの使い分けについて考えをまとめてみたiOSSwift この記事は【その2】ドリコム Advent Calendar 2015 - Adventarの15日目です。 14日目はテラさん「絵について思ったこと」でした。 ちなみに【その1】もありますので、ぜひこちらもご覧ください! 自己紹介 2015年2月に企画職としてドリコムに中途入社し、現在は研究開発部にて新規サービスの立ち上げをしています。 この会社に入ってコーヒーを飲む機会と筋トレをする機会が増えました。 最近の休日はスカッシュをやることが多いです!(仲間募集中!!!) 来年はSASUKEに出たいです。 この記事を書くに至った背景 最近会社で、iOSアプリの開発をしています。ドリコムに入るまでは、iOSアプリのviewはすべてコードで書いていました。ですが、僕の目の前に

    iOSのViewはどうやってつくるべき?storyboardとxibの使い分けについて考えをまとめてみた - Qiita
  • capistranoを使ってrailsをnginx+unicorn+mysqlの環境にデプロイする - Qiita

    railsで作ったアプリケーションをnginx, unicornの環境に対してcapistranoを使ってデプロイするまでの過程を書いていきます。 ruby 2.2.3 (rbenvを使用してインストール) rails 4.2.0 nginx 1.8.0 MySQL 5.6.23 unicorn 前提 デプロイ先ですでにNginx等の設定は終わっている デプロイ先のディレクトリとして、/var/wwwを作成しておく database.ymlとsecrets.ymlは手動でshared/configに置く 設定 Gemfile 以下のgemをdevelopment環境にてインストールします。 unicornに関してはgemを使用せずに、自分でRakeタスクを作成します(後述)。 group :development do gem 'capistrano' gem 'capistrano-ra

    capistranoを使ってrailsをnginx+unicorn+mysqlの環境にデプロイする - Qiita
  • AndroidStudio で長時間エミュレータが起動しない場合の対処法 - Qiita

    最近AndroidStudioを触り始めたのですが、 エミュレータが起動しなかったので その際の対処法メモ 症状 こんな感じのブート画面ずっと続く。 androidロゴは動いているのでフリーズはしていないようですが・・・ 自分の場合は1時間以上放置しても変化しなかったです。 原因 ログを見てみると HAXM is not working and emulator runs in emulation mode というログが出ている HAXM(Hardware Accelerated Execution Manager)というのは 仮想化支援機能を使ってAVD(Android Virtual Device)を動作させることができる機能。 要はこれを使用することでエミュレータを高速化できるということみたい。 で、その高速化の機能が働いていないようです。 エミュレータの設定のRAMを減らす 以上!

    AndroidStudio で長時間エミュレータが起動しない場合の対処法 - Qiita
  • Intel Edisonで赤外線リモコンの受信 - Qiita

    Intel Edison Arduino BoardのGPIOを利用し、赤外線リモコンの受信を行う。今回赤外線リモコン受信モジュールはPL-IRM0101を用いた。 赤外線センサーの接続 ブレッドボードを使いIntel Edison Arduino BoardとPL-IRM0101を接続する。 PL-IRM0101 のピンは向かって左側から Vout(4.5〜5.5V)、 GND 、 VCC (4.5〜5.5V)となっているため、左側のピンをデジタル入出力8へ、真ん中のピンをGNDへ、右側のピンをPower 5Vへ接続する。 赤外線リモコンのフォーマット 赤外線リモコンのフォーマットはRFP等で明確に定められているものではないが、国内ではおおよそNECフォーマットか家電協フォーマットに準拠しているようである。各々のフォーマットの詳細は、次の資料が参考になる。 今回はpython2.7で家電

    Intel Edisonで赤外線リモコンの受信 - Qiita
    bouzu_ao
    bouzu_ao 2015/10/15
    ラジコンのリモコンも解析できるかも
  • Vagrant | synced_folder でホストOSとゲストOSの任意のフォルダを同期する - Qiita

    概要 Vagrantでは synced_folder を利用することによって、 ホスト・ゲスト間でファイルの同期が可能です。 例えば、Vagrantで仮想環境を作成したが、 開発に利用する IDEやエディタは普段使い慣れたホストOSのものを利用したい 、 などといった場合に便利です。 構文 下記の構文でホストとゲストの同期が可能です。 options は0-n個の任意の数を指定可能です。 Vagrant.configure("2") do |config| # other config here config.vm.synced_folder "host_path", "guest_path", options... end 有効化されるタイミング vagrant up もしくは vagrant reload 時に同期が有効化されます owner / groupの変更 自動作成されるフォル

    Vagrant | synced_folder でホストOSとゲストOSの任意のフォルダを同期する - Qiita
    bouzu_ao
    bouzu_ao 2015/09/28
    sync_folder
  • 【メール送信エラー】Net::SMTPAuthenticationError - 534-5.7.14 <https://accounts.google.com/ContinueSignIn ... - Qiita

    【メール送信エラー】Net::SMTPAuthenticationError - 534-5.7.14 <https://accounts.google.com/ContinueSignIn ...RubySinatrapony メール送信周りでちょっとはまりかけたのでメモ(上記エラー) ponyというgemを使ってSMTPでメール送信をしようとしてました。 サイトからユーザーが申し込みしてきたら、申込完了メールをユーザーに送信するイメージです。 ★環境 ・Ruby ・pony on sinatra ・Gmailで送信(from @gmail.com) たぶんRails(ActionMailer)でもあまり変わらないと思います。 普通にドキュメントに書かれてる通り実装すると、 というエラーが出てしまいました。 http://www.google.com/accounts/DisplayUn

    【メール送信エラー】Net::SMTPAuthenticationError - 534-5.7.14 <https://accounts.google.com/ContinueSignIn ... - Qiita
    bouzu_ao
    bouzu_ao 2015/09/27
    二段階認証
  • 稼働中のMySQLを無停止でレプリケーション環境を構築する - Qiita

    個人メモです。稼働中のサービスを停止できないけど、スレーブを増やしたい(増殖したい)なんて場合に使える技になります。 マスターのバックアップ まず、スレーブ側のホストでマスターのスキーマ(例では、schema1 schema2のバックアップをとります。この際に、--master-data と --single-transaction は必須です。 --master-data を指定しますと、master側のバイナリログファイルとポジションを取得することができます。 --single-transaction を指定しますと、innodbの場合は、マスターサーバ側のデータベースをロックせずに、dumpすることが可能です mysqldump -h remote_host --databases schema1 schema2 -u myuser -pmypasswd --master-data

    稼働中のMySQLを無停止でレプリケーション環境を構築する - Qiita
    bouzu_ao
    bouzu_ao 2015/08/27
  • YAPC Asia 2015「Google Cloud Platformの謎テクノロジーを掘り下げる」のまとめ - Qiita

    YAPC::Asia Tokyo 2015、ロゴのとおりに熱いイベントでした...今年で最後なのはほんとに惜しいです。最初にして最後の参加となった私は、「Google Cloud Platformの謎テクノロジーを掘り下げる」というタイトルでトークをさせていただきました。 スライドはここに上げてありますが、これだけ見ても意味不明と思われるので、話した内容の要約をまとめブログ代わりに書こうかな、と思ったらかなり長文となってしまいました。基ポジショントークですが、しかしGoogleに入る前からGoogleクラウドに対して持ち続けている気持ちでもあるし、ここはイケてないなーと思った部分は素直にそう書くようにしました。 しかし謎は謎のまま... Twitter上の反応まとめを見ますと、「謎が謎のまま終わった」とのご指摘も多く、これはほんとに私の不徳の致すところです、申し訳ありません……。スライド

    YAPC Asia 2015「Google Cloud Platformの謎テクノロジーを掘り下げる」のまとめ - Qiita
    bouzu_ao
    bouzu_ao 2015/08/26
  • CentOS6.3にNew Relic MySQL pluginを入れてみる - Qiita

    ※普通にyum install javaとかやってしまうとjre1.5系が入ってしまい動きません。。。 2. pluginを取得する https://rpm.newrelic.com/accounts/421449/plugins/directory/52 このページの一番下のDonwloadボタンより、ファイルをダウンロードする。 で、ダウンロードしたファイルを展開して、/usr/local/newrelic-mysqlに置く $ tar zxvf newrelic_mysql_plugin-1.0.7.tar.gz $ mv ./newrelic_mysql_plugin-1.0.7 /usr/local/newrelic-mysql $ cd /usr/local/newrelic-mysql

    CentOS6.3にNew Relic MySQL pluginを入れてみる - Qiita
    bouzu_ao
    bouzu_ao 2014/11/19
  • ShippableでRailsアプリをCI&CD - Qiita

    Shippableって何? 無料で使えるCIサービス!!(https://www.shippable.com/) Githubもしくは、BitBucketと連携してCI/CD(Continuous Integration/Deployment)できるサービス。 しかも、プライベートリポジトリでも無料で使える!! BitBucket・Herokuと組み合わせることで、無料でCIして、デプロイできる。 Shippableのバージョンアップに伴い、Herokuデプロイ部分のスクリプトを修正 目的 BitBucketで管理しているRailsアプリをCIする。 更にプッシュされたリポジトリがmasterなら、自動的にHerokuへデプロイする。 手順 アカウントの作成 BitBucketのアカウントか、Githubのアカウントでログインできる。 CIしたいリポジトリを選択し、「Enabled」にする

    ShippableでRailsアプリをCI&CD - Qiita
    bouzu_ao
    bouzu_ao 2014/11/06