タグ

ブックマーク / www.clear-code.com (31)

  • lessの既定のオプションを変えて快適なCLI生活を手に入れる - 2017-06-27 - ククログ

    その時表示している内容を消さずにlessを終了するには? 何かのコマンドの実行結果が長くなって画面外に溢れてしまう場合でも、grep ... | less という風にパイプライン経由でlessコマンドに結果を渡すと、結果を自由にスクロールしながら落ち着いてゆっくり読むことができます。 しかし、「q」でlessを終了すると、その時表示されていた内容は画面から消えてしまいます。コマンドの出力結果を見ながら次の作業をしようと思うと、以下のような工夫をしないといけません。 Ctrl-Zでlessをバックグラウンドに切り替えて、また参照したくなったらその都度fgコマンドで復帰させる。 tmuxなどのターミナルマルチプレクサを使い、画面を分割して片方の画面でlessの結果を表示しながら、もう片方の画面で操作を行う。 コマンドの出力を直接lessに渡して表示するのではなく、一旦リダイレクトでファイルに保

    lessの既定のオプションを変えて快適なCLI生活を手に入れる - 2017-06-27 - ククログ
  • GitHubのWikiが変更されたら差分付きで通知する方法 - 2014-04-09 - ククログ

    一人でWikiを使っている場合はそんなことはありませんが、複数人でWikiを使っている場合はだれかがWikiを変更したらそれを知りたいものです。複数人でWikiを使っている場合は、情報共有のために使うことが多いです。Wikiが変更されたことがわかると、最新の情報を入手することが容易になるため、情報共有という目的を達成しやすくなります。 最新の情報の入手のしやすさという点では「どのように」変更がわかるかが重要です。例えば、次のような変更の知り方があります。下にいくほど最新の情報を入手するための手間が減るので最新の情報を入手しやすくなります。 定期的にWikiの注目しているページをブラウザーで開き、変更がないか確認する。注目しているページが複数ある場合は繰り返し確認する。 定期的にWikiをブラウザーで開き、「最近更新されたページリスト」を確認する。更新されたページのうち、前回確認したときより

    GitHubのWikiが変更されたら差分付きで通知する方法 - 2014-04-09 - ククログ
  • 東京Ruby会議11での発表「アプリケーションへのRubyインタープリターの組み込み」とOSS Gateワークショップ2016-05-28 #tkrk11 #oss_gate - 2016-06-01 - ククログ

    5月28日に開催された東京Ruby会議11で「アプリケーションへのRubyインタープリターの組み込み」と題して、アプリケーションにRubyを組み込む実装について話しました。 関連リンク: スライド(Rabbit Slide Show スライド(SlideShare) 発表動画 リポジトリー 質疑応答の補足 内容は前述のスライドや発表動画を参照してください。ここでは発表後の質疑応答の内容について補足します。 質問:ruby_sysinit()は呼ばなくていいの? 「ruby_sysinit()は呼ばなくていいの?」に対する当日の回答は「ruby_sysinit()の説明は省略した」だったのですが、どうして省略したかを補足します。 Rubyインタプリターを組み込んだアプリケーションの1つであるrubyコマンドの実装(main.c)を見るとruby_sysinit()を呼んでいます。そのため、R

    東京Ruby会議11での発表「アプリケーションへのRubyインタープリターの組み込み」とOSS Gateワークショップ2016-05-28 #tkrk11 #oss_gate - 2016-06-01 - ククログ
  • FirefoxアドオンのWebExtensions移行についてMozilla Blogに寄稿しました - 2016-05-02 - ククログ

    弊社メンバーが執筆した、従来からあるFirefox用アドオンを「WebExtensions」ベースに移行させた際の知見を解説した記事がMozilla Add-ons Blogに掲載されました。 Mozilla Add-ons Blogに掲載された縮約版 編集・縮約前の全文 これは、筆者がアドオンのWebExtensions移行のための調査を進める中で、アドオンを1つ移行できた事についてMozillaのアドオン開発者向けメーリングリスト上に投稿した所、他のアドオン開発者にその時の知見を共有するゲスト記事の執筆を勧められたために書いた物です。 草稿段階では「WebExtensionsへの移行」に直接は関係していない前段階の準備にあたる話が多く含まれていたため、全文は筆者個人のブログで公開することにして、Mozilla Add-ons Blogには前段階の話を省いた内容が抜粋して掲載されています

    FirefoxアドオンのWebExtensions移行についてMozilla Blogに寄稿しました - 2016-05-02 - ククログ
  • 自己流JavaScriptを書いていた人がAngularJSのユニットテストで躓いた点 - 2015-07-10 - ククログ

    結城です。 最近、AngularJSを使ったWebアプリ開発のプロジェクトに参加する事になり、とりあえず一通りの事は把握しておかなければと思って公式のチュートリアル(英語)を実践してみたのですが、JavaScriptの経験が浅い人だとハマらなさそうだけれども、中途半端に経験があったせいでドハマり、という場面に遭遇してしまいました。 恥ずかしい話ですが、せっかくなので同じように躓いている人(もしいれば)のために、分かった事や理解のポイントを書き記しておこうと思います。 この記事の対象読者は、以下のような状況にある人です。 フレームワークを使わないJavaScript(例えば、jQueryを使ったJavaScript程度)は書いた事がある。 自動テスト(特に、ユニットテスト)は書いた事がある。 AngularJSを始めたばかりである。 依存性注入という概念は理解できるが、実際にどう使うかはあま

    自己流JavaScriptを書いていた人がAngularJSのユニットテストで躓いた点 - 2015-07-10 - ククログ
    kitokitoki
    kitokitoki 2015/07/11
    「最初から、$httpBackendという名前のモジュールを_$httpBackend_という別名でも参照できるようにしてあるため、$httpBackendという本来のモジュール名を「複数の関数で参照するための一時的な別名」として使えるのです。」
  • 東京〜札幌間の勉強会参加時にLCCで安価に移動する際の注意点 - 2015-06-16 - ククログ

    横山です。この週末にオープンソースカンファレンス2015 Hokkaidoに参加してきたのですが、その際に交通手段としてLCC(格安航空会社)を利用したので、感想と注意点についてレポートしたいと思います(OSC編のレポートは後日書く予定です)。 往路(山手線〜成田空港) LCCは主に羽田空港ではなく成田空港を利用しています。例えば、JR山手線大塚駅からだと、山手線日暮里駅まで約10分、日暮里駅から京成電鉄のスカイライナーに乗り換えて約40分、乗り換え時間を含めても合計1時間ほどで国内線の発着駅である空港第2ビル駅に着きます。日暮里から空港第2ビルまでは無停車で直通なので快適です。そのため、意外なことに羽田空港までと比べて所要時間はほとんど変わりませんでした(出発駅と乗り換え時間によってはむしろ早く着く)。 ただし、スカイライナーは20〜40分間隔で運行しているのと、スカイライナーはIC運

    東京〜札幌間の勉強会参加時にLCCで安価に移動する際の注意点 - 2015-06-16 - ククログ
  • Markdownで書いたテキストをPDFに変換して納品用ドキュメントを作成する方法 - 2015-04-27 - ククログ

    色々なテキストを色々なフォーマットに変換できるPandocというツールがあります。 今回は、これを使ってMarkdownで書いたテキストをPDFに変換する方法を説明します1。 環境はDebian GNU/Linuxのsidを想定しています2。 必要なパッケージをインストールします。非常に多くのパッケージをインストールするので時間がかかります。 $ sudo apt-get install -y texlive-full pandoc ruby rake 次のコマンドを実行して動作確認します。 $ pandoc -o test.pdf --latex-engine=lualatex test.md そのままでは日語を含むテキストをPDFに変換できないのでtest.mdには日語を含まないようにします。 これで日語を含まないテキストをPDFに変換できることが確認できました。 日語を含むテ

    Markdownで書いたテキストをPDFに変換して納品用ドキュメントを作成する方法 - 2015-04-27 - ククログ
    kitokitoki
    kitokitoki 2015/04/29
    lv
  • いろいろ考えると日本語の全文検索もMySQLがいいね! #osc2014tk - 2014-10-24 - ククログ

    関連リンク: スライド(Rabbit Slide Show) スライド(SlideShare) スライド(Speaker Deck) リポジトリー(スライドのソースだけでなく、スライドの中で示しているベンチマークを実行するスクリプトなども置いてあります。) 内容 今回の発表は「すでにMySQLを使っていて」、「全文検索についてよく知らない」けど、「日語の全文検索を実現したい」という人向けの内容になっています。そのため、トークナイザーや転置索引といった話はあえて外しました。 MySQLを使うと、そのような詳細を知らなくてもそこそこの機能の日語の全文検索を実現できる、ということを伝えました。 データ量が少ない場合は適切なcollationを設定すればLIKEでも十分な機能と性能が得られて、運用の手間も増えません。LIKEで十分なら無理して専用の全文検索サーバーは必要ありません。 データ量が

    いろいろ考えると日本語の全文検索もMySQLがいいね! #osc2014tk - 2014-10-24 - ククログ
    kitokitoki
    kitokitoki 2014/10/24
    全角アルファベット、大文字小文字無視対応。like -> mroonga -> solr
  • デバッグしやすいHTMLのテストの書き方 - 2012-01-18 - ククログ

    注意: 長いです。 一言まとめ: withinとtest-unit-capybaraを使ってHTMLのテストを書くと問題を見つけやすくなる。あわせて読みたい: デバッグしやすいassert_equalの書き方 HTMLに対するテストに限らず、開発を進めていく中でテストが失敗する状況になることは日常的にあることです。HTMLの場合は、入力フォームのラベルを変更したり、項目を追加したら既存のテストが失敗するようになるでしょう。そのとき、どのようにテストを書いていれば原因を素早く見つけられるのかを説明します。ポイントは「注目しているノードを明示すること」です。 HTMLテストのライブラリ さて、Rubyで処理結果のHTMLをテストするときにはどんなライブラリを使っていますか?The Ruby ToolboxにあるBrowser testingカテゴリを見てみると、Capybaraが最も使われてい

    デバッグしやすいHTMLのテストの書き方 - 2012-01-18 - ククログ
  • Rubyで自然なDSLを作るコツ:値を設定するときはグループ化して代入 - ククログ(2014-02-13)

    最近、fluent-plugin-droongaという分散データストリームエンジンを書いています。その中で、RubyでDSLを実現するときに工夫していることに気づきました。それは、値を設定するときは代入する字面にするということです。代入する字面にするために、グループ化用のオブジェクトを作っていました。 これだけだとどういうことかわからないので、具体例を示しながら説明します。 RubyとDSL Rubyを使っているとRubyで実現されたDSLに触れることが多くあります。RubyのMake実装であるRakeの設定ファイルもそうですし、ライブラリー管理ツールのBundlerの設定ファイルもそうです。 Rakeの場合:

    Rubyで自然なDSLを作るコツ:値を設定するときはグループ化して代入 - ククログ(2014-02-13)
  • 札幌Ruby会議2012: 「バグの直し方」、「クリアなコードの作り方」 #sprk2012 - 2012-09-19 - ククログ

    2012年9月14日から9月16日の3日間にわたり札幌Ruby会議2012が開催されました。 3日間の開催、マルチトラック、国際化1など日Ruby会議のような地域Ruby会議でした。そんな札幌Ruby会議2012で「バグの直し方」と「クリアなコードの作り方」の話をしてきました。それらについてそれぞれ発表者人が紹介します。 沖元: バグの直し方 3日目の午後にあった沖元の発表です。 発表番では、デモ中にRubyのビルドに失敗したため満足にデモができませんでした。そのため、デモでやる予定だったことをスライドに追加しています。 沖元: 感想 実行委員の気遣いが素晴しかったと思います。9月の北海道にしては気温の高い日々でしたが、実行委員の人たちのおかげで非常に快適にセッションに参加することができました。 スピーカーはみんなコードを書くのが好きな人たちばかりで、まさに「We Code.」のテー

    札幌Ruby会議2012: 「バグの直し方」、「クリアなコードの作り方」 #sprk2012 - 2012-09-19 - ククログ
  • 手元のgemのコードを簡単検索 - 2012-10-18 - ククログ

    最近のプログラミング言語はパッケージ管理システムを持っていることがほとんどです。PerlにはCPAN1がありますし、PythonにはPyPi2がありますし、RubyにはRubyGems3がありますし、Node.jsにはnpm4があります。パッケージ管理システムがあると簡単にライブラリやツールをインストールできるので、手元にたくさんのコードが集まります。そんな手元のコードを簡単に検索できるようにする方法を紹介します。ただし、ここで紹介するのはRubyGemsでインストールしたパッケージのコードを簡単に検索できるようにする方法だけです。他のパッケージ管理システムについては触れません。 ライブラリを使っていて、期待した動作をしないときはどうしますか?まず、ドキュメントを確認することでしょう。ドキュメントを読んでも解決しないときはWebで検索したり、実際にコードを読んでみることでしょう。ここで紹介

    手元のgemのコードを簡単検索 - 2012-10-18 - ククログ
  • シェルスクリプトで「ビルドスクリプト」を作る時に便利なテクニック - ククログ(2012-10-11)

    プログラムの種類によっては、そのまま実行できるものと、実行できるようにするために「ビルド」が必要なものとがあります。Cなどのコンパイルが必要な言語で書かれたプログラムは当然ビルドが必要ですし、コンパイルが不要な言語であっても、インストーラパッケージを作るというビルド作業が必要な場合はあります。 ビルド作業の自動化のためのツールとしてmakeなどがありますが、そこまで格的な事をやる必要がない場合は、シェルスクリプトで「ビルドスクリプト」を作るのが手軽でおすすめです。この記事では、そのような場合に役立つシェルスクリプトのテクニックを4つご紹介します。 エラーの気付きやすさとデバッグのしやすさを高める メッセージに色を付ける シェル関数をライブラリにする 一時的に作業ディレクトリの中に入る エラーの気付きやすさとデバッグのしやすさを高める はじめに紹介するテクニックは問題が発生した時に気づきや

    シェルスクリプトで「ビルドスクリプト」を作る時に便利なテクニック - ククログ(2012-10-11)
  • 名前のつけ方 - 2012-06-28 - ククログ

    はじめに わかりやすいコードを書くことはソフトウェア開発において大切なことです。では、具体的にわかりやすいコードとはどんなものでしょうか?その観点はいろいろなものがあります。その中で今回は名前のつけ方に着目します。 コードに名前をつけるということ ソフトウェア開発において、名前をつける作業というのは絶えず発生します。メソッド名、変数名、クラス名、ファイル名などなど。名前をつける機会を挙げたらキリがありません。では、そもそもなぜ名前は必要なのでしょうか? それはソフトウェアに限らず言えることですが、複数のモノを区別したいためです。例えば、まったく違う処理をする別々のメソッドに同じ名前をつけたらソフトウェアは正しく動きません。それを防ぐためにそれぞれのメソッドにちゃんと名前をつける必要があります。それぞれのモノにそれぞれ違う名前をつけて区別できなければソフトウェアはそもそも動きません。 名前を

    名前のつけ方 - 2012-06-28 - ククログ
  • クリアなコードの作り方: 余計なことを書かない - 2012-05-21 - ククログ

    FileUtils.mkdir_p assets_path unless FileTest.exist? assets_path このコードを元に、「余計なコードを書かない」ことがどうして大事かを説明します。 余計なコード まずは、どこが余計なコードなのかを考えてみましょう。このコードではFileUtils.mkdir_pとFileTest.exist?メソッドを使っています。 FileUtils.mkdir_pは引数で指定されたディレクトリがなかったら親ディレクトリも含めて作成するメソッドです。すでにディレクトリが存在した場合は何もしませんし、エラーにもなりません。mkdir_pというメソッド名はmkdir -pコマンドが由来でしょう。 FileTest.exist?は引数で指定されたファイルが存在したら真を返すメソッドです。 このコードではunless FileTest.exist?の

    クリアなコードの作り方: 余計なことを書かない - 2012-05-21 - ククログ
  • ifとreturnの使い方 - 2012-03-28 - ククログ

    はじめに わかりやすいコードを書くことはソフトウェア開発において大切なことです。では、具体的にわかりやすいコードとはどんなものでしょうか?その観点はいろいろなものがあります。その中で今回はifとreturnの使い方に注目します。 ifとreturn プログラミング言語とは、コンピューターの作業の処理手順を書くためにあります。その処理手順は複数にわかれています。その複数の処理手順を順番に実行していくことでコンピューターは作業をこなしていきます。 プログラミング言語にはいろいろな処理手順を書くためにifとreturnと呼ばれる機能があります。ある処理手順をある時だけ実行したい場合には、ifを使います。その時以外はその処理手順は実行しません。また、続きの処理手順があるがその時点で実行を中断したい場合には、returnを使います。続きの処理手順は実行しません。ifとreturnと組み合わせることで

    ifとreturnの使い方 - 2012-03-28 - ククログ
  • クリアなコードの作り方: 意図が伝わるコミットのしかた - 2012-03-13 - ククログ

    コミットメッセージの書き方ではコミットをわかりやすくするためには以下の2つの条件を満たす必要があると書きました。 コミットの内容が分かりやすく説明されていること コミットの内容が小さくまとまっていること このうち「コミットの内容が分かりやすく説明されていること」についてはすでに説明済みです。今回は「コミットの内容が小さくまとまっていること」について説明します。 めざすところ 単純にコミットの内容を小さくするだけではわかりやすくなりません。それでは、どのような基準で小さくすればよいのでしょうか。 よく言われることは1つのコミットには1つの小さな論理的にまとまった変更だけにする、というものです。たしかにこれは重要です。しかし、これだけを基準とすると、人によっては大きめなコミットになってしまいます。人それぞれで論理的なまとまりの大きさが異なるからです。 1つのコミットでどうすればよいかを考えるの

    クリアなコードの作り方: 意図が伝わるコミットのしかた - 2012-03-13 - ククログ
  • コミットメッセージの書き方 - 2012-02-21 - ククログ

    はじめに 「分かりやすいコードを書く」、「コードと一緒にテストも書く」等はソフトウェア開発において大切なことです。しかしそれと同じくらい大切なことして「分かりやすいコミットメッセージを書く」があります。これはあまり着目されていなく、見過ごされていることです。 今回は、コミットメッセージの分かりやすさの大切さ、そして、分かりやすくするための書き方を説明します。 コミットメッセージとその大切さ バージョン管理システムとコミット 現在、ほとんど全てのソフトウェア開発ではSubversionやGitなどのバージョン管理システムを使っています。バージョン管理システムを使うことによるメリットというのは、ソフトウェアの変更が記録されていくことにあります。 具体的なメリットは3つあります。 ソフトウェアの調査がしやすくなることです。現時点でのコードと、そして変更の履歴とを組み合わせることで、それらから非常

    コミットメッセージの書き方 - 2012-02-21 - ククログ
  • クリアなコードの作り方: 縦長・横長なメソッドを短くする - 2012-02-07 - ククログ

    最近読んだRubyのコードではYARDのコードがキレイでした。 さて、長いメソッドは不吉なにおいがするからメソッドを分割するなどして短くしましょうとはよく言われることですが、ここでいう「長い」とは「縦に長い」ことを指していることがほとんどです。長いのが問題なのは縦に長いときだけではなく横に長いときもです。 縦に長いメソッド まず、どうして縦に長いメソッドが問題かについてです。縦に長いメソッドには「処理を把握しづらい」という問題がある可能性が高いです。 どうして処理を把握しづらいか 処理を把握しづらい原因はいくつかあります。例えば、抽象度が低いのが原因です。 メソッドが縦に長くなっているときは、多くの処理が行われていることがほとんどです。これらの処理はメソッドになっていないため名前がついていません。処理に名前がついていない場合は実装を読まないとなにをしているかがわかりません。 せっかくなので

    クリアなコードの作り方: 縦長・横長なメソッドを短くする - 2012-02-07 - ククログ
  • モーショノロジー2012 #1: rroongaによる検索サービスの実装 - 2012-01-26 - ククログ

    注意: 長いです。 簡単まとめ: 検索サービスを作るにはrroongaが便利です。groongaサポートサービスをはじめます。 CROOZ株式会社が主催する「モーショノロジー2012 #1 全文検索&検索を利用したサービスの使命、利用プロダクト、事例紹介」が開催されました。今回のテーマは検索ということでgroonga開発チームに声をかけてもらいました。groonga関連の枠がいくつかあったのですが、ここではRubyとgroongaを使った検索サービスの作り方についての枠の内容を紹介します。 以下、多少省略しながらスライドの内容を紹介します。 概要 紹介する内容はrroongaを使った場合のメリット・デメリットと入力補完についてです。メリットは事例も交えながら紹介します。入力補完は「Ruby + groongaだからできる」という機能ではなくgroonga単体でも利用できる機能なのですが、最

    モーショノロジー2012 #1: rroongaによる検索サービスの実装 - 2012-01-26 - ククログ