タグ

2014年8月11日のブックマーク (13件)

  • わかりやすいREADME.mdを書く

    GitHubなどに自分のツールやライブラリを公開するとき,README.mdは重要な役割を担っている.レポジトリを訪れたユーザが自分のツールを使ってくれるか否かの第一歩はREADME.mdにかかっている,と言っても過言ではない.実際自分が使う側になったときも,まずREADME.mdを読んで判断していると思う. 成功しているプロジェクトを参考にしつつ,自分が実践していることをまとめておく.ここに書いていることはあくまで(自分の中で)最低限的なものである.プロジェクトが成長していくにつれてREADMEはあるべき姿に成長していくべきだと思う. READMEの役割 README.mdには大きく2つの役割がある. プロジェクト,ツールの使い方,インストール方法 プロジェクト,ツールの宣伝 元々READMEは前者の役割しかなかったが,GitHubの仕組み上,後者の役割も徐々に重要になっている. さらに

  • PHP 5.4.4から==の挙動が一段と難しくなりました - hnwの日記

    PHPの==は両辺を適当に型キャストしてから比較するような演算子です。この型キャストの規則は難解すぎる上にドキュメントも不十分なため、PHPプログラマでも完璧に理解している人はほとんど居ないくらいの印象です。バグの原因になりかねないため、なるべく==を使わないようにしているPHPプログラマも多いはずです。 ところで、この==演算子の挙動がPHP 5.4.4から変更されていることはあまり知られていません。稿ではこの内容を紹介します。 Bug #54547 の騒動 まずはこの仕様変更の経緯を紹介します。 2年ほど昔、Hacker Newsで2^63付近の整数に対応する文字列をPHPで比較したときの挙動がおかしいというスレッドが盛り上がったことがありました。具体的には、PHPでは「'9223372036854775807' == '9223372036854775808'」がtrueになるとい

    PHP 5.4.4から==の挙動が一段と難しくなりました - hnwの日記
    potato777
    potato777 2014/08/11
    よく読むと?ってなる。 / "PHP5.4.4以降では、比較する数値文字列同士が大きくて両者が近すぎる場合には文字列比較になりました"
  • Railsのルーティングを読みやすく作っていく - Qiita

    Railsアプリケーションのルーティングは、config/routes.rb1ファイルで最初は開発を始めると思います。 ただ、サービスを運用していくとルーティングは膨らみ、メンテナンスコストも馬鹿になりません。 そのため、ルーティングの設定をできるだけメンテナンスしやすく作っておくことでそのコストを下げようという試みです。 Railsのルーティングは、config/routes.rb がルーティングの設定ファイルにデフォルトで指定されています。 ただ、これは変更可能ですし、複数のファイルに分割もできます。 昨今のアプリケーションの用途は、Web、native(iOS、Android)、APIサーバ、と多岐にわたるので、 config/routes.rb config/routes/api/v1.rb config/routes/api/v2.rb config/routes/web.rb

    Railsのルーティングを読みやすく作っていく - Qiita
  • Feature #9634: [PATCH]Symbol GC - Ruby master - Ruby Issue Tracking System

    I've written a patch to collect most symbols. PATCH: https://github.com/authorNari/ruby/compare/4a91fb7a45f0e3c...symbol_gc.patch Summary¶ Most symbols in Ruby level are GC-able(generated by #to_sym, #intern, etc..) Exclude a symbol which is translated ID in C-level from GC-able symbols Keep Ruby's C extension compatibility Pass make test-all Benchmark¶ A benchmark program is here. obj = Object.ne

    potato777
    potato777 2014/08/11
    Ruby2.2.0から
  • App Groupでアプリ間データ共有 - Toyship.org

    そろそろiOS8の正式なリリースも間近になってきましたね。 iOS8のリリースと同時に、新しいアプリ間情報共有機能、 App Groupが使えるようになります。 iOS8 の新機能、App Extension にも必須な機能なので、使い方をちょっとまとめてみました。 App Groupとは App Groupとは、複数のアプリの間でデータを共有できるようになる新しい機能です。 今までも Keychainの仕組みを使うことでアプリ間のデータ共有はできました。 でもKeychainの使い方ってちょっとめんどうだったり、機種変更したときにデータが復元されないこともあったり、あまり使い勝手がよくないところもありますよね。 App Groupを使うと、今までと同じNSUserDefaultsなどを利用してデータ共有をすることができます。 また、App Extensionではこの仕組みを使うとアプリと

    App Groupでアプリ間データ共有 - Toyship.org
  • GithubのGo言語プロジェクトにPull Requestを送るときのimport問題

    TL;DR fork元(オリジナル)をgo getしてその中で作業,forkした自分のレポジトリにpushしてPull Requestを送る. 問題 Github上のGo言語のプロジェクトにコミットするとき,cloneの仕方で若干ハマることがある.普通のOSSプロジェクトの場合は,forkしてそれをcloneしてpush,Pull Requestとすればよい.Go言語のプロジェクトでは,同じレポジトリの中でパッケージを分け,それをimportして使ってるものがある.そういう場合にforkしたものをそのままcloneすると,importの参照先がfork元の名前になりハマる. 例えば,github.com/someone/toolがあるとする.このレポジトリはgithub.com/someone/tool/utilsという別パッケージを持っており,mainがそれを使っているとする.つまり以下

    potato777
    potato777 2014/08/11
  • Figを使って複数のDockerコンテナをコマンド一発で立ち上げる - y_310's diary

    土日を使ってDocker入門を読みながらDockerを触ってみました。 Docker入門 Immutable Infrastructureを実現する 作者: 松原豊,米林正明出版社/メーカー: 技術評論社発売日: 2014/04/25メディア: Kindle版この商品を含むブログ (4件) を見る とりあえずRails/MySQL/Elasticsearchで構成されたWebサービスの開発環境を作ることを想定して、ひと通り手でコマンドを打ちながらMySQLとElasticsearchのコンテナを作ってRailsから接続させることはできました。 $ docker run -d -p 9200:9200 -p 9300:9300 dockerfile/elasticsearch $ docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=passwo

    Figを使って複数のDockerコンテナをコマンド一発で立ち上げる - y_310's diary
  • あなたにWebSocketは必要ないかも | POSTD

    (訳注:2015/8/4、いただいた翻訳フィードバックを元に記事を修正いたしました。) 題に入る前に強調しておきます。WebSocketは優れた通信プロトコルです。実際私はこの RFC6455 を、 Fanout のサービスで使っている( Zurl や Pushpin といったパーツで採用しています。Fanoutではまた、 Primus (異なるリアルタイムフレームワーク間での通信を可能とするラッパー)を利用し、 XMPP-FTWインターフェース を介したWebSocket通信をサポートしています。 しかしながら私はこれまで、多くの広く普及しているアプリケーションにかなりの時間を費やし、おかげでRESTやメッセージングパターンについては多少なりとも理解が深まってきた今、実はWebSocketを実装した典型的なWebアプリケーション(もしくはWebSocketライクな抽象化レイヤ)の大部分

    あなたにWebSocketは必要ないかも | POSTD
    potato777
    potato777 2014/08/11
    リアルタイム=WebSocketじゃなくてもいいよねと。実際WebSocketを直接使うのはけっこう面倒で、Socket.ioやSSEみたいな選択技を知っておくのは大切。
  • iOSアプリ開発でもAndroidのR.javaのような仕組みでリソースに安全にアクセスする - Qiita

    先日、会社の後輩と 「AndroidのXMLをiOSでも共有できればいいのにね」 「iOSってNSLocalizedString使っても文字列引数取るからそこで間違える可能性あるよね」 「iOSでも色の定義を#RRGGBBで指定した方がいい」 なんて話していたのですが「・・・だったらR.javaみたいな仕組みを作れば良いのでは?」と思い これを実現するツールを作ってみました。 rdotm(R.m)というそのままの名前のツールです。 ちょっと分かりにくいかもしれませんが、以下のように、XMLで定義した文字列をObjective-Cのコードからアクセスできるようにします。 前提(Androidアプリデベロッパー以外の方へ) そもそもR.javaって何?という感じかもしれないので少し説明します。 Androidアプリ開発では「R.java」というファイルが自動生成されます。 これは、XMLで定義

    iOSアプリ開発でもAndroidのR.javaのような仕組みでリソースに安全にアクセスする - Qiita
    potato777
    potato777 2014/08/11
    Android の R.java のようにリソースへのアクセスを提供。ビルドフェーズに組み込んでビルド前に自動で実行してくれる。
  • [Q&A]MySQL開発でやってしまいがちな致命的ミス | Yakst

    Percona MySQL Webinarsの発表(MYSQL開発でやってしまいがちな致命的なミスについて)のQAをご紹介します。 発表はSQLアンチパターン著者のBill Karwinさんの発表です。 オリジナル: http://www.percona.com/resources/mysql-webinars/how-avoid-even-more-common-deadly-mysql-development-mistakes July 17, 2014 by Bill Karwin 水曜日に「MySQLを開発する上でよく起こる(そして致命的な)ミスをどのように回避するか」をPercona MySQL webinarsで発表した。お見逃の際は、ビデオとスライドを見る為に登録すればまだご覧にいただける。 参加いただいた皆様、そしてとりわけすばらしい質問をしていただきありがたく思っている

    [Q&A]MySQL開発でやってしまいがちな致命的ミス | Yakst
    potato777
    potato777 2014/08/11
    "SELECT *" はネットワーク負荷だけでなくディスク負荷にも影響。InnoDBのVarchar, Blob, Textなど 追加ページに格納している場合は不要なアクセスがでてしまうと。
  • http://software.fujitsu.com/jp/technical/interstage/apserver/guide/pdf/reference-gc.pdf

    potato777
    potato777 2014/08/11
    参照なし、強参照、弱参照、ソフト参照、ファントム参照の違いによるGCコストなど。
  • http://software.fujitsu.com/jp/technical/interstage/apserver/guide/pdf/Finalizer-GC.pdf

    potato777
    potato777 2014/08/11
    finalizeの良資料。GC処理で到達不能になると finalize を持つクラスは finalize 待ちのキューに入れられる。finalize実行後にGCによりメモリ回収できる。実行が遅延するとヒープ領域を圧迫する(JVMの実装により違いはある
  • http://software.fujitsu.com/jp/technical/interstage/apserver/guide/pdf/jvm32or64.pdf

    potato777
    potato777 2014/08/11
    "32bitプログラムと64bitプログラムの実行では、命令数は、ほぼ同じですが、 キャッシュミスが大きく違っていて、それが実行時間の差となっています。"