タグ

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

  • おすすめ.ssh/config設定 - 2023-04-03 - ククログ

    はじめに つい先日、GitHubのRSA SSHホスト鍵が突如差し替えられるという一件がありました。 We updated our RSA SSH host key 詳細に関しては識者による解説に委ねますが、ちょうどタイムリーな話題だったので、SSHをより安全に利用するという観点でおすすめ設定についていくつか紹介します。 なお、クリアコードではSSH以外にもおすすめzsh設定やおすすめEmacs設定という記事も公開しているので参考にしてみてください。 2023年5月11日更新:StrictHostKeyCheckingをyesにする場合の安全なknown_hostsの更新方法について追記しました。 おすすめ設定について クリアコードでは、.ssh/configのおすすめ設定を https://gitlab.com/clear-code/ssh.d にて公開しています。 これは、社内で.ss

    おすすめ.ssh/config設定 - 2023-04-03 - ククログ
    Akineko
    Akineko 2023/04/04
  • リーダブルなコードを書く習慣の身に付け方・実践の仕方 - 2021-09-22 - ククログ

    結城です。 2021年9月13日から14日にかけて、東京都立大学の大学院生向け特別講義として「リーダブルコード演習」を実施しました。 演習の内容は、当社でこれまでにも行ってきているリーダブルコードワークショップを、プログラミング経験が比較的浅い・プログラミングの量がまだそれほど多くない方向けに調整した内容としました。 この記事では、実施した演習の概要と、今回意識した点を紹介します。 文が長いため、目次を用意してみました。 発端 演習の構成 座学パート リーダブルなコードを書く意義について リーダブルコードを実践するためにまず取り組むべきこと 実際の現場での「コードがリーダブルでなくなってしまった」「リーダブルになるよう改めた」実践例 最初の実装 リーダブルでなくなった実装 リーダブルさを取り戻すための改修 コードがリーダブルでなくなっていってしまう要因 壊すのが怖くて、見て見ぬフリ 恐怖

    リーダブルなコードを書く習慣の身に付け方・実践の仕方 - 2021-09-22 - ククログ
  • OSSへフィードバックしてみたいけど、英語でどう書けばいいのか分からない - 2019-07-12 - ククログ

    結城です。 ここまで、OSSへのフィードバックをやってみようとした時に躓きがちなポイントについて、フィードバックするトピックの見つけ方、報告に盛り込むとよい内容、その情報の送り届け先の選び方の知見をそれぞれ述べてきました。 ところで、それらの技術的な内容以前のハードルとして、言語の壁という物もあります。実際にOSS Gateワークショップでも、フィードバック内容をまとめた後、英語でそれを書き直すという段階で手こずっておられる方がかなり多い印象があります。 ITエンジニア向けに「こういう英語表現を覚えよう」という情報を紹介する記事は時々見かけます。ですが、ワークショップでビギナー参加者の方が英語を書くのに苦労している様子を実際に見ている印象では、必要なのはそういった記事で紹介される「実際の現場でよく使われる単語や熟語の情報」ではなく、「実際の現場で英文を書く時に行われる考え方の解説」の方であ

    OSSへフィードバックしてみたいけど、英語でどう書けばいいのか分からない - 2019-07-12 - ククログ
  • DebianパッケージでMesonに移行するプロジェクトに対応するには - 2018-05-25 - ククログ

    はじめに Mesonはソフトウェアをビルドする、ビルドシステムの1つです。 GNOME関連だと、すでに多くのモジュールがMesonに対応しています。 今回は、アップストリームがビルドシステムをMesonに移行した場合にどのように対応すればいいかを紹介します。 libhinawaの場合 libhinawaの場合、これまではビルドシステムとしてAutotoolsを採用していました。 1.0のリリースにともない、Mesonに移行する話があったため、実際にどうやればよいかを調べてみました。 アップストリーム側のMeson対応自体はトピックブランチも用意されていたので、それをもとに試してみました。 % git clone https://github.com/takaswie/libhinawa.git libhinawa.meson % cd libhinawa.meson % git check

    DebianパッケージでMesonに移行するプロジェクトに対応するには - 2018-05-25 - ククログ
  • C/C++のソースコードをCppcheckで静的解析してみよう - 2016-02-03 - ククログ

    % sudo make PREFIX=/usr/local SRCDIR=build CFGDIR=/usr/local/share/cppcheck/cfg HAVE_RULES=yes CXXFLAGS="-O2 -DNDEBUG -Wall -Wno-sign-compare -Wno-unused-function" install readme.mdではインストールせずに使う想定ですが、今回は/usr/localにインストールするものとします。1 Cppcheckを使ってみる Cppcheckのセットアップができたので、実際に使ってみましょう。 例として、ククログでも何度もとりあげている、全文検索エンジンGroongaでやってみましょう。 すでに、Groongaのリポジトリをgroonga.cleanディレクトリへとcloneしてあるものとします。 Cppcheckのヘルプにもあ

    C/C++のソースコードをCppcheckで静的解析してみよう - 2016-02-03 - ククログ
  • Ruby 2.6.0とより高速なcsv - 2018-12-25 - ククログ

    Rubyの標準添付ライブラリーのcsvをメンテナンスしている須藤です。 歴史 csvは名前の通りCSVを読み書きするための便利ライブラリーです。 もともとRuby体とは別に開発されていたのですが、Ruby 1.8.0のときにRuby体にバンドルするようになりました。dRubyやREXMLがRuby体にバンドルされたのも同じタイミングです。Ruby 1.8.0のときにバンドルするライブラリーをすごく増やしたのです。(その頃の様子がわかるURLをここに置いておきたかったけど見つけられなかった。。。) Rubyではcsvのようにrequireするだけで使えるライブラリーを「標準添付ライブラリー」と呼んでいます。Stringのようにrequireしなくても使えるライブラリーは。。。なんだろう。組み込みクラスかしら。 その後、Ruby 1.9.0のタイミングで実装をFasterCSVに置き換え

    Ruby 2.6.0とより高速なcsv - 2018-12-25 - ククログ
  • Ruby用単体テストフレームワークtest-unitでのデータ駆動テストの紹介 - 2013-01-23 - ククログ

    test-unitRuby用のxUnit系の単体テストフレームワークです。2.3.1からデータ駆動テスト機能が追加されていたのですが、2.5.3まではリファレンスに記述がなく、知る人ぞ知る機能でした。 2013-01-23にリリースされた2.5.4ではデータ駆動テスト機能についてのドキュメントが追加されています。 データ駆動テスト自体の説明はUxUを用いたデータ駆動テストの記述を参照してください。 Cucumberのscenario outlinesに似ていると言えばピンと来る人もいるのではないでしょうか。 Cucumberのscenario outlinesも前述のククログ記事の通り、テストのデータとロジックを分離しているのでデータ駆動テストの一種と言えます。 今回は、データ駆動テストを導入した例を見ながらtest-unitでのデータ駆動テスト機能の使い方を紹介します。なお、以降の説明

    Ruby用単体テストフレームワークtest-unitでのデータ駆動テストの紹介 - 2013-01-23 - ククログ
  • シェルスクリプトで「ビルドスクリプト」を作る時に便利なテクニック - ククログ(2012-10-11)

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

    シェルスクリプトで「ビルドスクリプト」を作る時に便利なテクニック - ククログ(2012-10-11)
  • Emacs実践入門 - おすすめEmacs設定2012 - 2012-03-20 - ククログ

    2012年3月にEmacsの入門書が技術評論社から出版されました。 https://amazon.co.jp/dp/9784774150024 インストール方法やファイルの開き方などから始まっていて初心者向けの始まり方になっています。それでは初心者向けなのかというとそうでもなく、中盤から後半はrequireしないと使えないElispを使った拡張方法の紹介になっています。 おそらく、初心者の人は1/3か1/2くらい進んだところで一度脱落するのではないでしょうか。逆に、ある程度知っている人は中盤から後半にかけて興味のある話題が増えていくことでしょう。脱落してしまった人は、しばらく前半の機能でEmacsを使って、慣れてきてから再挑戦するとよいでしょう。 後半の拡張方法の紹介部分では多くの方法を紹介するためか、1つ1つの方法については簡単に紹介する程度にとどまっています。よりつっこんだ使い方までは

    Emacs実践入門 - おすすめEmacs設定2012 - 2012-03-20 - ククログ
  • クリアなコードの作り方: 意図が伝わるコミットのしかた - 2012-03-13 - ククログ

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

    クリアなコードの作り方: 意図が伝わるコミットのしかた - 2012-03-13 - ククログ
    Akineko
    Akineko 2012/03/14
  • デバッグ力: よく知らないプログラムの直し方 - 2011-12-06 - ククログ

    クリアコードではMozilla製品やRuby関連の開発だけではなく、広くフリーソフトウェアのサポートもしています。もちろん、サポート対象のソフトウェアの多くは私達が開発したものではありません。しかし、それらのソフトウェアに問題があった場合は調査し、必要であれば修正しています。 このようなサポートが提供できるのは、もともと、私達がフリーソフトウェアを利用したり開発したりしているときに日常的に問題の調査・修正をしていたからです。ソフトウェアを利用していると、問題に遭遇することはよくあることです。そのソフトウェアがフリーソフトウェアの場合は、開発者に問題を報告し、可能ならパッチを添えます。このとき、そのソフトウェアの内容を完全に把握していることはほとんどありません。しかし、それでも修正することができます。 それはどうしてでしょうか?今まではどのようにやっているのかを自分達でもうまく説明できなかっ

    デバッグ力: よく知らないプログラムの直し方 - 2011-12-06 - ククログ
  • Rails 3.0 beta4でDeviseを使ってOpenID認証 - 2010-07-13 - ククログ

    とあるRails 3を使っているたいやき用のCMSでDeviseを使ってOpenID認証をするようにしたので、そのやり方を紹介します。RubyRuby 1.9.2 RC2も出ていますが、今回はRuby 1.9.1を使います。 Deviseとは DeviseはRackベースの認証システムです。バックエンドにWardenを利用しているため、Basic認証やOpenID、OAuthなど認証方法を切り替えることができます。 ただ、以下の説明を読んでみてもらってもわかる通り、動き出すまでにそこそこの作業が必要になります。機能は豊富なので、動き出したらカスタマイズしてアプリケーションの要求に合わせていくことができるでしょう。日語での情報もあまりありませんが、探せばいくつかはあるので、試してみてはいかがでしょうか。 とはいえ、今回はDeviseのデフォルトの認証方法ではなく、OpenIDでのみ認証す

    Rails 3.0 beta4でDeviseを使ってOpenID認証 - 2010-07-13 - ククログ
  • おすすめzsh設定 - 2011-09-05 - ククログ

    他の人がzshを使っているのを見ていると、「もっと便利に使えるのに」と、もやっとしたり、「え、その便利な機能ってなに?」と、発見があったりします。だれかに「この設定をすると便利ですよ」と話しやすくするために、今のzshのおすすめ設定をここに記しておきます。 もし、Emacsも使っている場合はおすすめEmacs設定もどうぞ。 ディレクトリ構成 長年漬け込んできたzshの設定がそこそこの量になっているので、以下のようなディレクトリ構成にして分類しています。主に、zsh標準機能の設定と追加パッケージの設定を分けるためにこうしています。 ~ ├── .zshrc # シェルを起動する毎に読み込まれる。 │ # ~/.zsh.d/zshrcを読み込んで │ # 標準機能の追加設定を行う。 ├── .zshenv # ログイン時に一度だけ読み込まれる。 │ # ~/.zsh.d/zshenvを読み込ん

    おすすめzsh設定 - 2011-09-05 - ククログ
    Akineko
    Akineko 2011/09/05
  • C++用xUnitでのテストの書き方 - 2009-11-07 - ククログ

    注: 長いです。 スクリプト言語でのxUnit実装を使ったことがある方なら、テストを定義するだけでテストが実行されることが当たり前ではないでしょうか。c2.comのWikiによると、これはTest Collectorというそうです。定義したテストを自動的に集めてくる機能のことです。 一般的にTest Collectorの機能は言語が提供するリフレクション機能やメタプログラミング機能を使って実現されます。 例えば、Rubyのtest-unit 2.xでは、リフレクションを使う方法とメタプログラミングを使う方法の両方をサポートしています。リフレクションを使う方法ではObjectSpace.each_object(Class)ですべてのクラスを取得し、その中のTest::Unit::TestCaseのサブクラスを集めます。メタプログラミングを使う方法ではTest::Unit::TestCase.

    C++用xUnitでのテストの書き方 - 2009-11-07 - ククログ
  • 1