タグ

ブックマーク / blog.mah-lab.com (23)

  • ローカル + Evernoteなどのクラウドサービスを串刺し検索できる「Found」 | mah365

    ローカルのファイルはAlfredで比較的楽に検索ができるのですが、実際に検索したいファイルはEvernoteGoogle Driveに散らばっているので、「ローカルにはなかったから次はEvernote」みたいな感じでいろんなツールを行き来しなければならず、正直めんどいなと思っていました。 Foundを使えばローカルとクラウドサービスを串刺し検索できるよ! そこでこのFoundというツール。 Foundを使えばローカルとEvernoteなどのクラウドサービスを串刺し検索することができます。これでいちいちツールを分けなくても済みますね。 アプリを起動しても普段は隠れている状態なのですが、Controlキーを2回押しで前面に表示することができます。 気になるセキュリティ クラウドサービスとの串刺し検索だと、やはりセキュリティが気になるところです。FoundではちゃんとFAQページにその回答が用

    ローカル + Evernoteなどのクラウドサービスを串刺し検索できる「Found」 | mah365
  • ActiveRecordのモデルに全文検索機能をつけちゃうGem「AttrSearchable」 | mah365

    全文検索エンジンを使わずともActiveRecordに手軽に全文検索機能をつけるGemがありました。AttrSearchableというGemです。 さすがに一般的な全文検索エンジンと同じようにPDFExcelファイルの中身まで検索することはできませんが、RDBに保存してあるテキストを検索するぐらいの用途には良いかもしれません。MySQLやPostgreSQLで対応している、全文検索用のインデックスにも対応しているので、通常のLIKE検索よりは良さそうです。 使い方 gem 'attr_searchable'をGemfileに追加してbundle install`したあと、下のコードのように、ActiveRecordのモデルにattr_seachableというクラスマクロを追加します。 class Book < ActiveRecord::Base include AttrSearchab

    ActiveRecordのモデルに全文検索機能をつけちゃうGem「AttrSearchable」 | mah365
  • Railsで外部JavaScriptライブラリなどのAssetを管理するなら、bower-railsが便利 | mah365

    みなさま、Railsで外部のJavaScriptライブラリ、例えばUnderscore.jsなどを管理するとき、どんな方法を使っていますか? ファイルを落としてきてvendor/以下につっこんでますか? でもそれだと、いざバージョンアップしようと思ったときに面倒ですし、バグがあるのでバージョンを戻したい、といったときにも不便です。そもそもバージョンを管理できていません。 そんなとき、JSの世界ではBowerというツールでライブラリを管理します。Rubyの世界でのBundlerのようなものです。これをRailsで簡単に使えるようにしたのがbower-railsです。 使い方 事前に用意するもの Railsの環境があることは前提にして、他に以下のセットアップが必要です。 node.js bower このセットアップについては「Bower入門(基礎編)」という記事で分かりやすくまとめられています

    Railsで外部JavaScriptライブラリなどのAssetを管理するなら、bower-railsが便利 | mah365
  • RailsでDB Viewを手軽に使う | mah365

    DB View、使いたいことありますよね。特にRailsから、使いたいことありますよね。ActiveRecordから透過的に使いたいですよね。 とはいえ RailsDB Viewを扱うための標準の機能はありません。schema_plusというDB Viewの定義をマイグレーションスクリプト内で書けるような仕組みはありますが、いかんせんちょっとした修正なのにDB Viewの中のSQLを毎回全部書かなきゃいけないのは面倒臭いです。 理想は、 class ApplicantAdoption < ActiveRecord::View sql <<-EOS -- 複雑なSQLが定義してある EOS end みたいにソースコードの中で直接SQLを書けることですが、そういうGemを書こうとして挫折したので以下のような運用にしています。 普通にSQLファイルを用意する lib/dbviews以下にDB

    RailsでDB Viewを手軽に使う | mah365
  • 「フロントエンドエンジニア養成読本」を買ってきました | mah365

  • Rails4にバージョンアップしてRSpecでハマったこと | mah365

    Rails4にバージョンアップしようとして、RSpecが通らなくなって午前中ずっとハマっていました。。 問題 こんなControllerのクラスがあるとして、 # app/controllers/users_controller.rb class UsersController < ApplicationController # ... end # app/controllers/admin/base_controller.rb class Admin::BaseController < ApplicationController # ... end # app/controllers/admin/users_controller.rb class Admin::UsersController < Admin::BaseController # ... end こんなスペックがあるとき、

    Rails4にバージョンアップしてRSpecでハマったこと | mah365
  • 知っておきたい!Herokuを使う上では当たり前?の16の常識 | mah365

    Herokuの公式ドキュメントは英語なので読みづらいですよね。herokaijp/devcenterのように、有志が日語訳してくれているドキュメントもありますが、その中でも特に抑えておきたい16個の常識について挙げてみました。(16日に公開する予定の記事なので、何となく16個挙げてみました。。) (補足)Herokuを使う上での登場人物の名前 Dyno 「だいの」と呼びます。1Dynoと言ったとき、一つサーバが立ち上がっているようなものだと考えて下さい。 Routing Mesh Herokuアプリにアクセスがあったときに、Dyno間の負荷をロードバランスしながらリクエストを振り分ける機構をRouting Meshと呼びます。たまに「Router Error」というログを吐くのですが、そのとき障害が起こっている場所はここです。 常識1. Dynoは1時間アクセスがないとアイドル状態になる

    知っておきたい!Herokuを使う上では当たり前?の16の常識 | mah365
  • 「知性を磨く」、「企画力」、「使える弁証法」 | mah365

    「止揚(アウフヘーベン)」という言葉について殊更考えたことがなかったな、という問題意識を持てただけでも、この3冊を読んだ価値はあったな、と思う今日このごろです。 問題解決の力としての知性 3冊とも同じ田坂広志という方の著作なのですが、入り口はこちらの「知性を磨く」というでした。「企画力」、「使える弁証法」を読んでみると、「知性を磨く」というは各論のサマリ的な位置づけにあるのでは、とも感じます。 知性を「答えの無い問いに対して、その問いを問い続ける能力」 知能を「答えの有る問いに対して早く正しい答えを見出す能力」 とした上で、世界に偏在する諸問題を解決するための力、つまり世界を変革するための力として、知性こそが重要な能力なのだという考えを元に、どうすれば知性を磨くことができるか?という問いに答えたです。 知性を磨くポイントとして端的に以下の2つのポイントが挙げられています。 「答えの無

    「知性を磨く」、「企画力」、「使える弁証法」 | mah365
  • 「元に戻せる」=「トライ・アンド・エラー」を可能にするイノベーション | mah365

    「元に戻せないシステムは、システムの基的な価値を毀損している」みたいなタイトルにしようと思ったのですが、尖り過ぎな気がしたのでユルめのタイトルにしてみました。 「元に戻せる」安心感のためにシステムを使っている 社内で利用しているシステムのいくつかは自分たちで作っているもので、僕も他聞に漏れずそういったシステムにコミットなんぞをしているのですが、つい先日不具合のあるものを勇み足で番リリースしてしまうという事件を起こしました。 「げ、この不具合はまずい・・・」 この事態をひとまず落ち着かせるためには、何とかして一個前のバージョンに戻さなければなりません。 しかし一個前のバージョンって何? 単にソースコードが戻るだけで良いの? むぐぐ・・・ど、どうすれば・・・。 と、普通に考えていると混乱しそうな事態ではありますが、社内で使っているサービスは大体Herokuで運用しているので、この場ではHe

    「元に戻せる」=「トライ・アンド・エラー」を可能にするイノベーション | mah365
  • 「関数プログラミング実践入門」を読みました | mah365

    かなり気になっていた関数プログラミング実践入門というを早速買って読んでみました。 「関数プログラミングの考え方」が分かる 書は「関数プログラミングで何か作れるようになる」というよりは、「関数プログラミングの考え方がしっかり分かる」という感じで、「普段はJavaRubyといったオブジェクト指向言語を使っているけど、何か関数型言語が気になるんだよねー」というノリの人に向いているだと僕は思いました。 普段関数型言語を使っていない人、というと大多数の人がそうだと思いますが、その大多数の人に向けて「関数プログラミングの考え方ってこんな感じよ」というのを伝えているのが書になります。 内容は 関数型言語Haskellを題材とした関数プログラミングが備える要素の解説 関数プログラミングでの設計テクニック が大きな2柱になっていて、特に「普段はJavaRubyといったオブジェクト指向言語

    「関数プログラミング実践入門」を読みました | mah365
  • Remottyではじめる!同期、非同期を使い分けた仕事の進め方 #sgadvent | mah365

    この記事はソニックガーデン Advent Calendar 2015、11日目の記事です。 ソニックガーデンではRemotty(リモティー、と呼びます)というバーチャルオフィスツールを使いながら、メンバーとコミュニケーションをしつつ仕事を進めております。 このRemotty、ソニックガーデンでは基幹システムのような位置づけですが、一般の方々も自由に使うことができます。ただ、毎日使っている人がどんな風に使っているのか、っというような情報はなかなかありません。そんな訳で、僕がこのRemottyをどんな風に使っているのか書いてみたいと思います。 Remottyの使い方について簡単に説明 おおまかに、画面左側に掲示板(グループ)、右側にチャット欄があります。画面上部には、現在ログインしているメンバーの顔写真が並んでいます。掲示板はリアルタイムにやり取りしなくても良いようなコミュニケーションに使い、

    Remottyではじめる!同期、非同期を使い分けた仕事の進め方 #sgadvent | mah365
  • IKEAの机をワーキングデスクにしている人はあわせてフットレストも買うと快適です | mah365

    IKEAの机、安くて使い勝手も良いですよね。僕は家でも会社でもIKEAの机です。でもIKEAって北欧のメーカーだけあって、足の高さが70cmと、一般的な日人向けの机より若干背が高めに作られているんですよね。そのためか、椅子もちょっと高めの設定になってしまうせいで、ちょっと足が疲れるなーと思うことがあります。 あわせてフットレストも買おう そんなIKEAデスクユーザーにあわせて買って欲しいのがIKEA製のフットレスト、その名もDAGOTTOです。お値段も1,699円と、なかなかお得。 こんなパッケージに入っています。 角度も調節できるようになっているので、丁度良い位置を探すことができます。安いわりに、なかなかハイテクな作りになっています。 こんな感じに机の下に置いて使っています(写り込んでいるのは荒ぶる双子です)。 フットレストを置くと、足の位置が丁度良い位置に来るので、パソコンに向かって

    IKEAの机をワーキングデスクにしている人はあわせてフットレストも買うと快適です | mah365
  • 僕はSQLをこう学んだ | mah365

    いくらRDBの操作を抽象化してくれる便利なライブラリ(ORマッパーとか)を使っていても、それでもRDBを使う限りは、テーブル設計の考え方にしろ抽出ロジックの考え方にしろ、SQLを知っていないとやりづらいと思うのです。 でも正直、「SQLこう学べば一発でわかるようになるよ」と言えるほど教えるノウハウはない。なので、僕がどうSQLを勉強したか書いておこうと思います。 正直、情報処理の試験で問われるまでSQLを使う用事がなかった プログラミングの歴だけは長いのですが、SQLを勉強する必要が出たのは、新卒で入社した会社で「ソフトウェア開発技術者(現・応用情報処理技術者)を取りなさい」と言われてからです。 いきなりお勉強的なムードからSQLを学ぶ必要が出てしまったので、最初は全くやる気にならなかった・・・ので、これはいかんと思って、何とか手を動かそうと思って、手にとったのがSQL書き方ドリルという

    僕はSQLをこう学んだ | mah365
  • Macのパッケージ管理(homebrew)をGUIでできる「Cakebrew」 | mah365

    Macでのパッケージ管理にはhomebrewが便利ですが、コマンドラインツールなので、ちょっと敬遠してしまう人もいるかも知れません。CakebrewはそんなhomebrewをGUIで扱えるようにしたツールです。 使い方 Cakebrewのページからdmgファイルをダウンロード&インストールした後に起動すると、次のような画面が開きます。 インストール済みのパッケージが見ることができたり、そのバージョンも確認できたりします。 パッケージを選択するとインストール先(通常は/usr/local/Celler以下ですね)が確認できます。右上の「Uninstall Formula」というボタンをクリックすると、パッケージをアンインストールすることができます。 「All Formulas」から未インストールのパッケージを選択すると、右上に「Install Formula」というボタンがあらわれるので、そ

    Macのパッケージ管理(homebrew)をGUIでできる「Cakebrew」 | mah365
  • AngularJSとRailsの丁度良い関係を探る:コード解説編 | mah365

    以前投稿したAngularJSとRailsの丁度良い関係を探るという記事のコード解説編です。前回はざっくりとしたアーキテクチャの紹介のみにとどめていたので、このエントリでサンプルコードの詳細について解説します。 バージョン情報 ruby 2.1.3 rails 4.1.7 devise 3.2.4 angularjs 1.3.2 ディレクトリ構造 app以下のディレクトリ構造は以下のような形です。 app ├── assets │   ├── images │   ├── javascripts │   │   ├── app │   │   │   └── tasks │   │   │   ├── tasks.controller.js.erb │   │   │   ├── tasks.html.erb │   │   │   ├── tasks.js.erb │   │   │  

    AngularJSとRailsの丁度良い関係を探る:コード解説編 | mah365
  • セルフリノベーションできる賃貸が空き家現象を少しは食い止めるのでは | mah365

    新築でマンションを買うのも高いし、かといって中古マンションを買ってリノベーションするのもそれなりにかかるわけで、どちらかと言うとずっと賃貸で済ませたい。でも、賃貸とはいえもう少し自分のオリジナル間取りにしたいという要求はあると思うのです。 改築可の賃貸 そういうわけで、改築可の賃貸というのは数は少ないですが、そこそこあるようです。 改装可能な賃貸物件 検索サイト 東京R不動産 改築可で絞り込んだ結果 rooms base 全ての改築可能な賃貸物件 多額の住宅ローンは背負いたくないけど改築はしたいというニーズは少なからずある一方、設備のボロさでなかなか部屋が埋まらなくて苦しんでいる大家がいるわけで、そういう大家はいっそのこと改築可で出してしまえば良いのではと思うんですよね。 大家としては退去後のリフォーム代金が浮くわけだし、改築までして住もうとしている人は少なくとも長期入居してくれる訳で、仮

    セルフリノベーションできる賃貸が空き家現象を少しは食い止めるのでは | mah365
  • 「The DevOps 逆転だ!」は最高のITエンターテイメント小説 | mah365

    会社の棚に仕舞いこんであったThe DevOps 逆転だ!を読了しました。1つ機能をデプロイしようとするだけで2週間も3週間もかかるような悲劇的な現場が、経営から最終通告を突きつけられた後、起死回生の逆転劇を繰り広げるITエンターテイメント小説なのであります。 この90日間に奇跡を起こせたら、ITを社内に残すことを検討しよう。 ビジネスとIT 結果的に1日に何回もデプロイできるような自動化プロセスを作り上げることで、ビジネス要求からITによる実現までのサイクルが短縮化され、IT投資に対するビジネス成果を継続的に獲得することができ、会社の業績も回復した、というあらすじの小説なのですが(ネタバレだけど、題名から何となく分かりますよね・・・)、個人的に重要なポイントはそこではなく、ビジネス目標とITをきちんと結びつけて「どんなことをITで実現すれば、どんな成果が得られるか」ということをビジネス

    「The DevOps 逆転だ!」は最高のITエンターテイメント小説 | mah365
  • デバッグ環境さえ整っていればコードは書ける | mah365

  • 関数プログラミング 珠玉のアルゴリズムデザイン、待ち遠しい | mah365

    『関数プログラミング 珠玉のアルゴリズムデザイン』が発売されます!というポストの通り、奇しくもポッキーの日に『関数プログラミング 珠玉のアルゴリズムデザイン』が発売されるらしいです。 実戦で使える考え方 関数プログラミングというとHaskellのような純粋関数型言語でしかアプローチできない考え方のように思われますが、単純に処理の見通しを良くするための考え方として、関数プログラミングは実戦で使える考え方だと思うんですよね。 関数プログラミングの質はいかに処理の対象をミニマムに分解して、いかにそれを上手く高階関数といった道具を使ってテコのようにパワフルな表現を実現するかというところにあると思うので(参考:なぜ関数プログラミングは重要か)、プログラムを綺麗に書くという目的のためにはとても有用な考え方だと思っています。 とはいえ、アウトラインを眺めてみると数式多めでタフな感じがするので、立ち読み

    関数プログラミング 珠玉のアルゴリズムデザイン、待ち遠しい | mah365
  • 4色ほど指定するだけでTwitter Bootstrapの配色を良い感じにしてくれるSass | mah365

    そんなSassが町田先生のCustomizedTwitterBootstrapに含まれていたので、これをTwitter Bootstrap3に対応させてみたのでした。 ソース こちらが良い感じにしてくれるベースの変数です。 $base-color、$main-color、$accent-color、$base-text-colorを決めることで良い感じにしてくれます。僕は下のファイルみたいなテイストが好きです。ほんわかしている。仕事では使えない感じがある。 実際に読み込むときには、Twitter Bootstrapより先に変数を読み込んでおきます。 //--------------------------------------------------------- // Color Scheme for Bootstrap @import colors/try @import color

    4色ほど指定するだけでTwitter Bootstrapの配色を良い感じにしてくれるSass | mah365