タグ

programmingとProgrammingに関するseuzoのブックマーク (261)

  • 平方数かどうかを高速に判定する方法 - hnwの日記

    平方数とは、ある整数の平方(=二乗)であるような整数のことを言います。つまり、0,1,4,9,16,...が平方数ということになります。 ところで、与えられた整数が平方数かどうかを判定するにはどうすれば良いでしょうか。与えられた整数の平方根の小数点以下を切り捨て、それを二乗して元の数になるかどうか、というのがすぐ思いつく実装です。 <?php function is_square($n) { $sqrt = floor(sqrt($n)); return ($sqrt*$sqrt == $n); } しかし、平方根の計算は比較的重い処理です。もっと高速化する方法は無いのでしょうか。 多倍長整数演算ライブラリGNU MPには平方数かどうかを判定するmpz_perfect_square_p関数が存在します(PHPでもgmp_perfect_square関数として利用できます)。稿ではこの実装

    平方数かどうかを高速に判定する方法 - hnwの日記
  • TDDは死んだ。テスティングよ栄えよ。 by DHH | 2014-04-24 - やっとむでぽん

    DHHの"TDD is dead. Long live testing."を、訳してみました。 翻訳 やっとむ By David Heinemeier Hansson on April 23, 2014 著 David Heinemeier Hansson 2014年4月23日 Test-first fundamentalism is like abstinence-only sex ed: An unrealistic, ineffective morality campaign for self-loathing and shaming. テストファースト原理主義は禁欲のみを唱えた性教育のようなものだ。つまり、自己嫌悪に陥っている人に向けた、非現実的で効果のない、道徳教育のようなものだ。 It didn't start out like that. When I first disco

    TDDは死んだ。テスティングよ栄えよ。 by DHH | 2014-04-24 - やっとむでぽん
  • プログラマーを悩ませる、命名の難しさについて

    話の発端は 先日公開された FC2 ソースへの感想から。 http://opensource.slashdot.jp/story/14/03/24/0937246/FC2%E3%83%96%E3%83%AD%E3%82%B0%E3%81%AE%E3%82%BD%E3%83%BC%E3%82%B9%E3%82%B3%E3%83%BC%E3%83%89%E3%81%8C%E3%82%AA%E3%83%BC%E3%83%97%E3%83%B3%E3%82%BD%E3%83%BC%E3%82%B9%E5%8C%96%E3%81%95%E3%82%8C%E3%82%8B isExistメソッドとか (スコア:1) by Anonymous Coward on 2014年03月25日 10時54分 (#2568810) もろに日人っぽいソースコードで好感が持てる。

    プログラマーを悩ませる、命名の難しさについて
  • プログラマの心の健康

    目次 はじめに 情報不安について 人の話を聞くこと 寝てから考えよう わ・ざ・と、ゆ・っ・く・り・、や・っ・て・み・よ・う ロビンソン式悩み解決法 驚き、最小の法則 むしょうに腹が立つあいつのこと あなたは、そのままでいいんです はじめからやり直したい症候群 人から信頼されるためにはどうしたらよいか トラブルがチャンス あなたはひとりではありません あなたのための聖書の言葉 ぜひ、感想をお送りください リンク集 更新履歴 はじめに 私はプログラマです。 プログラムを書いて生活の糧を得ています。 プログラマというのは精神的にも肉体的にも過酷な仕事だと思われています。 夜遅くまでディスプレイに向かい、 キーボードを叩き、ジャンクフードをべながらバグをとる…そんな職業だと思われています。 確かにそういうところもありますが、プログラマも人間です。 不健康な生活を長いこと続けることはできません。

  • 些末なコードレビュー - naoyaのはてなダイアリー

    朝起きて布団から出るのがつらいので、HBFav をつらつらと眺めていた。 あるサービスの JavaScript が重いとか、そのコードが難読化されてないとか、担当者とおぼしき人間が書いたコメントがそのまま残ってるから消しましょうよとか、そんなことが書かれていた。JavaScript が重い、という話は結局そのサービスの JavaScript が重かったのではなく、ユーザーが自分で導入した広告が重いというだけの話だった。 コードが難読化されていない、趣味の製品ではなく会社の製品なのでコメントそのまま残ってるから消しましょう・・・実にくだらない。 ところで話は変わってコードレビューについて。 コードレビューに慣れないチームが、何の考えもナシにコードレビューを始めるととにかく気になったこと大小様々な指摘が行われることになる。一見、いろいろな指摘が出て議論が活発になっているように見えるが、だいたい

    些末なコードレビュー - naoyaのはてなダイアリー
  • 高校生がスーパーコンピュータを使って5×5魔方陣の全解を求めることに成功 | 筑波大学 計算科学研究センター

    概要 筑波大学計算科学研究センターは、全国共同利用施設として、一般公募による「学際共同利用プログラム」※1を実施しています。平成25年度に、茨城県立並木中等教育学校4年次(高校1年)の杉﨑行優(すぎざき・ゆきまさ)君の申請が採択されました。杉﨑君は筑波大学計算科学研究センターの朴泰祐教授と共同研究を進めた結果、スーパーコンピュータ「T2K-Tsukuba」※2を使った並列計算により、5×5の魔方陣の全ての解を求めることに成功しました。 魔方陣とは、正方形のマス目に、縦・横・斜めの合計が同じになるよう数字を置いたものです。5×5の魔方陣の全解は2億7530万5224通りあることがすでにわかっています。杉﨑君は「枝刈り法」を改良した求解アルゴリズムを考案し、スパコンに並列計算させるためのプログラムを開発しました。朴教授は、並列データの収集や並列化に関する詳細なアドバイスを行いました。並列計算

    高校生がスーパーコンピュータを使って5×5魔方陣の全解を求めることに成功 | 筑波大学 計算科学研究センター
  • 文字列検索コマンド「grep 2.17」リリース | OSDN Magazine

    GNU Projectのgrep開発チームは2月17日、最新安定版「grep-2.17」をリリースした。パフォーマンスの向上が行われており、「10倍の高速化」が実現されているという。 grepはファイルから特定のパターンを検索するツールで、「global regular expression print」の略。正規表現による検索も可能で、多くのUNIX系システムで使われているほか、Windowsでも動作する。 grep 2.17は1月初めに公開されたバージョン2.16に続く安定版。7週間で8人の開発者より合計19のコミットがあったという。最大の特徴は性能。バッファモードの活用などにより、マルチバイト文字列に対し-iオプションを利用し、\または[が含まれていないパターンを検索する際の速度が10倍高速になったという。-iオプションを利用しない場合は、最大7倍程度の改善が可能だそうだ このほかg

    文字列検索コマンド「grep 2.17」リリース | OSDN Magazine
  • 技術的負債という(非エンジニアにとっての)隠しパラメータが生産性100倍を起こす - mizchi's blog

    元糞コードマイスターとしては、生産性については思うところある。 技術的到達深度が深い人じゃないとそもそもかけないコードってのももちろん存在して、その前提で10倍とか100倍になりうる話をする。 そもそもマイナスになる人がいるって話。 隠しパラメータをモデル化 エンジニアA:「週に10の成果を出して3の負債を生む人」を考える。この人は開発を止めてリファクタリングをすれば10-3 = 7の技術的負債を返却できるとする。 ここで正確には成果10には* aの係数が掛かっている。これはプロジェクト開始時1.0で、技術的負債が貯まるほど0に近づいて行く 次に、エンジニアB:「週に15の成果を出して10の負債を生む人」を考える(これにも係数aがかかる)。この人は見た目上は上の人の1.5倍速く成果を出しているように観測できるが、負債もたまりやすい。リファクタしても綺麗になりにくい。 これは割とエンジニア

    技術的負債という(非エンジニアにとっての)隠しパラメータが生産性100倍を起こす - mizchi's blog
    seuzo
    seuzo 2014/02/20
    「コードを書くと必ず負債は貯まる。負債をみつけるのも技術のうちだ」
  • codic - デベロッパーのためのネーミング辞書

    codicは、プログラマーのためのネーミング辞書です。新しいcodicでは、翻訳エンジンを搭載しネーミングをジェネレートできるようになりました。

    codic - デベロッパーのためのネーミング辞書
  • 命名するという行為 - 林檎の木

    http://codic.jp/ プログラミングをする上で一番時間のかかる作業ってなんだと思いますか? アルゴリズムを考えること? タイピングしてプログラムを組むコーディング作業? いえいえ違いのです、変数・関数などの名前を考えるのが一番時間がかかる。 これ冗談じゃなくて結構おおむねほぼ当の話です。難しいのですよ名前を付けるっていう行為は。ナウシカにおいて、巨神兵をオーマと名付ける事によって自我に目覚めたように、対象の存在意義を定める行為に等しい。だから対象がなんであるかをとことん考え抜く必要があるのです。この関数はどういった機能を持っているのか、この変数はどのような値を格納するためのものか、このクラスは何を表現しているのか、存在するとはなにか、生きるとは。往々にして思考が哲学的な方向に脱線したりしてとにかく時間がかかる。 それに加え一度決めてしまうと、なかなか別の名前に変えるというのも

  • まつもとゆきひろ氏「プログラミングコミュニティは終わらない文化祭」 ~アスキー総研主催のシンポジウムでまつもと氏×古川亨氏が対談セッション

    seuzo
    seuzo 2013/12/03
    「身近にいる人が、もうちょっと幸せになってほしいとか、重い仕事をしているときにもっと楽にさせてあげたいとか、僕らにとっての豊かな生活を実現するのはプログラミングの力」
  • Git の diff を美しく表示するために必要なたった 1 つの設定 #git - 詩と創作・思索のひろば

    Git に同梱されている contrib/diff-highlight を使います。 あとは README に書いてあることの引き写しですが、PATH の通ったディレクトリに置いて、~/.gitconfig に以下のように設定を書く。 [pager] log = diff-highlight | less show = diff-highlight | less diff = diff-highlight | less すると、対応するコマンドの出力がこんな風になります。 行レベルの diff に加えて、単語レベルでの diff もハイライトされ、GitHub での diff のように描画されました。 組み込みのオプションで --color-words というのがありますが、こちらを使うと行レベルの diff 情報が失われるので、少し不便だったわけですね。とすべて README に書いてあ

    Git の diff を美しく表示するために必要なたった 1 つの設定 #git - 詩と創作・思索のひろば
  • JavaScript Garden

    JavaScript Garden はJavaScriptというプログラム言語の一番奇妙な部分についてのドキュメント集です。 このドキュメントはJavaScriptという言語に慣れていないプログラマーがこの言語について深く知ろうとする際に遭遇する、良くある間違い・小さなバグ・パフォーマンスの問題・悪い習慣などを避ける為のアドバイスを与えます。 JavaScript GardenはJavaScriptを教える事を目的にしていません。このガイドの項目を理解する為には、この言語に対する前提知識がある事を推奨します。この言語の基礎部分についてはMozilla Developer Networkのガイド がオススメです。 著者 このガイドは愛すべきStack Overflowの2人のユーザーIvo Wetzel (執筆)とZhang Yi Jiang (デザイン)によって作られました。 貢献者 貢献

  • プログラマーが間違えやすいかもしれない英単語 - Tagussan's Junk Depot

    プログラマー以外の普通の人も是非見ていってください) プログラミングをしていると様々な英単語と出会いますが、そこで使われる単語の意味は日常的に使われる意味のごく一部だったりします。プログラミングでしか使われない意味だけを覚えていると、実際に英文を読むときに困ったりします。この記事では、今まで私がプログラミングで出会った英単語のうち、他の意味もちゃんと知っておいたほうが良いと思ったものをまとめました。一問一答のクイズ形式です。 しかし、タイトルで「プログラマーが間違えやすい」と書きましたが、書いていくにつれてプログラミングとあんまり関係なさそうな単語も並べてしまいました。プログラマー以外の人も自分の語彙チェックとして利用してもらえれば幸いです。 問題文は、格言・名文から引用すると印象に残って良いかなぁと思い、BrainQuotes から殆どを持ってきました。By~が明示されてないものは自分

    seuzo
    seuzo 2013/10/19
    「儀礼を軽視する人とは、ネコを扱ったことがない人である。(by Robert A. Heinlein)」ロバート・A・ハインラインは『異星の客』を書いた作家。
  • 英語コミットコメントに使えるオシャレフレーズ集

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    英語コミットコメントに使えるオシャレフレーズ集
  • ソースコード上の主語は誰か、という話 - mizchi's blog

    ふとTwitterで投げたらリプライたくさんきた これ素朴な質問なんだけど、ソースコードで英語でコメント書くとき、守護はIなのかWeなのかコードそのもので受動態で書くのか、どっちなの— 性格は糞 (@mizchi) 2013, 9月 23 @mizchi 一行目は主語無し(命令形)、長い説明をつける場合は 1.言い訳がましいコメントは I を主語に 2. 誰かと合意済みの事柄は We を主語に 3. 仕様に沿う振る舞いに変更する場合は It should be ~ などコード自体が主語であるように、と書いてる— Kensuke Nagae (@kyanny) 2013, 9月 23 @mizchi "add …": このコードは…を足します、"added …" このコードは…で足されました、"adding …" このコードは…を足しています— 中村氏 (@r7kamura) 2013, 9

    ソースコード上の主語は誰か、という話 - mizchi's blog
  • 僕はプログラマーです。

    僕はプログラマーです。 でも僕のMacBookProには何故かAdobeのソフトウェアが入っています。 iPhoneアプリのデザインをするわけではありません。 デザイナーの人がデザインファイルを.psdや.aiや.fw.pngのまま当然の様に投げて来るからです。 僕はAdobeのソフトウェアに精通しているわけではありません。 ですので複雑なレイヤー構造のファイルを切り出すのにはかなり時間を要します。 でもレイヤー構造の説明をしてくれるデザイナーの人は殆ど居ません。 デザイナー同士だとその複雑な構造でもやり取り出来るのかも知れませんが、僕には大抵よく分かりません。 例えば、Photoshopのエフェクトレイヤーが掛かっているボタンはボタンだけ切り出す時に凄く苦労します。 例えば、薄くシャドーが掛かってるデザインは素敵な質感を表現出来るかもしれませんが説明してもらわないとどこまで切り出したら良

    僕はプログラマーです。
    seuzo
    seuzo 2013/09/09
    「リネームに集中」わろた。
  • ソースコードを簡単に共有しよう! Gistからの貼り付けに対応しました - はてなブログ開発ブログ

    日、はてなブログの編集サイドバーに「Gist 貼り付け」機能を追加しました。 GitHubが運営するソースコード共有サイト Gist で一般公開されているコードを、ブログの編集画面で簡単に貼り付けることができます。ちょっとしたコードをブログで紹介するときなどに便利です。どうぞご利用ください。 Hello World Gistで公開されているソースコードを貼り付けられます Gist貼り付けの使い方 Gist貼り付け機能を利用するには、編集サイドバーに追加した 編集サイドバーの アイコンをクリックして「Gist貼付け」タブを開きます。 ユーザー名からコードを検索 まず初めに、貼り付けたいコードを公開しているGitHubのユーザー名を入力して、「連携」ボタンをクリックしてください。 GitHubのユーザー名を入力連携が終わると、連携したユーザーがGistで公開しているコードの一覧が表示されます

    ソースコードを簡単に共有しよう! Gistからの貼り付けに対応しました - はてなブログ開発ブログ
  • #俺が見たクソコード選手権 まとめ

    ハッシュタグ #俺が見たクソコード選手権 が賑わっていて面白かったのでまとめてみました。 こちらに簡単な補足説明を用意しました。よろしければどうぞ http://elephnote.com/blog/archives/874 気持ちのわかるものから全く意図不明なものまで。 続きを読む

    #俺が見たクソコード選手権 まとめ
  • Reblog by @yamamotoyama

    プログラミング一般 DRY原則 YAGNI KISS原則 OAOO UNIX思想 可逆性 曳光弾 直交性 契約による設計 DbC プログラマの三大美徳 PIEの原則 SLAP パフォーマンスチューニングの格言 驚き最小の原則 ボーイスカウトの規則 One Fact in One Place DTSTTCPW 割れた窓の法則 名前可逆性 オブジェクト指向プログラミング デメテルの法則 パルナスの規則 求めるな、命じよ コマンドとクエリ分離原則 オペランドの原則 用語 抽象データ型 サブタイプ ダックタイピング オブジェクト指向設計 パターン言語 生成・使用分離の原則 パターンの定義 IOP ドメインモデル貧血症

    Reblog by @yamamotoyama