タグ

programmingとProgrammingに関するkmachuのブックマーク (155)

  • 第2回 データの「型」とは何か?

    コンピュータで扱うデータには「型」がある。我々人間も,扱うデータが数値なのか文字なのか,はたまた映像なのかくらいは意識するけれど,コンピュータでいう型はそれよりもっとややこしそうだ。 「型」について調べていくうちに,人間の脳ミソで展開される情報とコンピュータのメモリーの中で扱われる「データ」との決定的な違いがわかってきた。 調査結果は非常に膨大なものとなったため,今回は「符号付き/符号なし」と「桁あふれ」の問題を中心に報告する。 変数にも,定数にも,処理にも,型がある プログラミングに「型」は付きものだ。一般には「データ型」と言われる。コンピュータで扱うデータには必ず値と型がある。データ型というと変数だけが対象となるような気がするけれど,そうでないことは読者ならご存じのはず。定数*1にも型がある。 Cでは,型を明示しない整数の定数はint型とされる。int型以外のデータと演算する場合には,

    第2回 データの「型」とは何か?
    kmachu
    kmachu 2009/07/09
    「CPUは型なんて知らない」←これ重要
  • プログラマになりたいあなたへの手紙

    この「プログラマになりたいあなたへの手紙」は,2008年3月24日に発売した日経ソフトウエア2008年5月号の特集「はじめてのプログラミング」向けに,6人のプログラマが著したものです。記述された内容は,執筆当時の情報に基づいています。ただし2009年3月下旬,寄稿者のみなさまは,その内容の確認と公開への同意をしています。

    プログラマになりたいあなたへの手紙
    kmachu
    kmachu 2009/03/25
    これはいい記事だった。もう1年か。
  • プログラマに必要なたった一つの力

    この記事は小飼弾氏が,2008年3月24日に発売した日経ソフトウエア2008年5月号の特集「はじめてのプログラミング」向けに著したものの再掲です。記述された内容は,執筆当時の情報に基づいています。 あなた,プログラマになりたいんですって? 当に? 当に? もう一度尋ねます。当に? 3回も念を押したのには,理由があります。このあと,さらに念を押します。この手紙を読み進めれば,あなたにもその理由がおわかりいただけるかと思います。 「日経ソフトウエア」を読んでいただいているからには,あなたは「プログラマ」という職業について,ある程度のイメージをお持ちだと思います。プログラマ,プログラムを作る人。では,プログラムって何でしょうか? その定義は,これをお読みになった人の数かそれ以上存在しますが,私にとっての定義は「コンピュータが仕事をできるようにすること」です。ご存じだとは思いますが,コンピュ

    プログラマに必要なたった一つの力
    kmachu
    kmachu 2009/03/25
    「プログラマに必要なたった一つの力。それが,楽習力です。」
  • 『プログラマの数学』

    プログラマの数学 第2版 難しい数式は使いません。 たくさんの図とパズルにやさしい解説。 プログラミングの初心者でも、数学の苦手な人でも、楽しく読めます。 プログラミングに役立つ「数学的な考え方」を身につけよう。 第2版では「機械学習への第一歩」を新たに加筆! 『プログラマの数学 第2版』目次 はじめに 第1章 ゼロの物語 ―― 「ない」ものが「ある」ことの意味 10進法 / 2進法 / 位取り記数法 / 指数法則 / 0の果たす役割 / 人間の限界と構造の発見 第2章 論理 ―― trueとfalseの2分割 どうして論理が大切なのか / 網羅的で排他的な分割 / 演算子で複雑な命題を組み立てる / ド・モルガンの法則 / カルノー図 / 未定義を含む論理 第3章 剰余 ―― 周期性とグループ分け 曜日クイズ / オセロで通信 / 恋人探し / 畳の敷き詰め / 一筆書き 第4章 数学

    『プログラマの数学』
    kmachu
    kmachu 2009/03/21
    3年前に買ったなぁ。
  • プログラマと数学

    日々雑記ネット上の各所で手垢のつきまくったタイトルではあるのだけども。 ...プログラマは数学できて当たり前、SICPは全員読んでるよね、のような文章をネット上で時々見かけるわけですよ。 うーん、まぁ数学できればそれに越したことはないし、SICP読んで理解できればまた違った世界が開けるんだと思う、私も勉強できるならしたいと思ってるし*1。 でも、その辺って私から見ればものすごくアカデミックな世界で要するに... ネット上の各所で手垢のつきまくったタイトルではあるのだけども。 ...プログラマは数学できて当たり前、SICPは全員読んでるよね、のような文章をネット上で時々見かけるわけですよ。 うーん、まぁ数学できればそれに越したことはないし、SICP読んで理解できればまた違った世界が開けるんだと思う、私も勉強できるならしたいと思ってるし*1。 でも、その辺って私から見ればものすごくアカデミック

    プログラマと数学
    kmachu
    kmachu 2009/03/21
    コメントした。つ「プログラマの数学」
  • 「PHP使いはもう正規表現をblogに書くな」と言われた件について:phpspot開発日誌

    404 Blog Not Found:「PHP使いはもう正規表現をblogに書くな」と言わせないでくれ 「PHP使いはもう正規表現をblogに書くな」と言われた件について。 私のサイトも掲載されており、当にご迷惑をお掛けしております。 とはいえ、 なぜ「PHP」がつくとダメ正規表現ばかり登場するのか。うんざりだ。 GoogleGoogleで、ペイドリンクとかはつぶさにつぶす癖に、こういうものは対策してくれないんだろうか.... と、まで言われてしまったのですが、そこまで言う必要はあるんでしょうか、とは思いました。 以前の批判を踏まえて、以下のように追記してあるのですが読まれているのでしょうか? 下記、正規表現は当に簡単なチェックで、厳密なチェックをしたい場合は別途検索エンジンなどで調べた方がいいでしょう。 参考として、PHPでメールアドレスかどうか調べる方法(←これは厳密にはどうかは

    kmachu
    kmachu 2009/03/21
    「簡単なチェック」の定義が曖昧だと思った。具体的に、「この正規表現ではこういうアドレスは誤判定します。必要であればPEAR::Mail_RFC822を使いましょう。」と、利用シーンを挙げて説明した方がよかったのかも。
  • ソースコードを読むための技術

    $Id: readingcode.html,v 1.13 2003/12/06 00:01:08 aamine Exp $ 2006-05-02 gonzui 追加。thanks: 冨山さん 2003-12-03 ltrace と sotrace を追加 2003-12-03 ツールのところに DDD を追加。thanks: 和田さん 2003-05-27 VCG, SXT などについて追加。thanks: 梅沢さん 2003-05-27 これもすっかり忘れていた strace, ktrace, truss, etags などについて追加 2002-08-30 すっかり忘れていた ctags を追加 2002-07-07 匿名希望さんからメールでいただいた情報を追加 (動的コールグラフ) 2002-06-13 日記経由でいただいた意見をもとに文章を追加。thanks: 柳川さん、まつもとさ

  • 知らないと恥をかく プログラミングの常識 - ぐるぐる~

    新人プログラマが身につけるべき 知らないと恥をかくプログラミングの常識 作者: 日向俊二出版社/メーカー: アスキー・メディアワークス発売日: 2009/02/25メディア: 単行(ソフトカバー) クリック: 108回この商品を含むブログ (8件) を見る メールアドレスが載っていたから問題点をまとめて*1送ったら、意外と早く返信が来たものの・・・・ 私の考え方は223ページ以降に記したとおりです。 一部、ご指摘のことを踏まえて、将来の版でより適切に書き直すことを検討させていただきたいと思います。 書の出版が、他の「プログラミングの常識」に関連した書籍の内容の比較等も含めて、活発な議論のきっかけになれば幸いです。 亜阿相界 あぁそうかい。 なら議論のきっかけになるように、「一部」ではなかったことを示しておくことにするよ*2 *3。 223 ページの「私の考え」はどんなものかというと、

    知らないと恥をかく プログラミングの常識 - ぐるぐる~
  • まつもとゆきひろ氏が語る「ビューティフルコード」セミナーに行って来た - LukeSilvia’s diary

    まつもとゆきひろが語る「ビューティフルコード」×「プログラマ35歳定年説」に行ってきました〜。今年初めて行ったイベントなのですが、とてもいいお話を聞くことができました。美しいコードとはどのようなものか、またそのようなコードを書けるようになるためにはどうすればいいのかというお話でした。 以下、まとめになります。僕のメモを元にしたので、まつもとさんが話された内容と多少ズレがあるかもしれません。 そもそもコードとは何か 「コードの美しさとは」という前に、そもそも「コード」とは何か。 ソフトウェアの作成はものづくりではない コードは工業製品ではない。コードは、車とかと同じ工業製品だと思われることが多く、例えば次のような勘違いがある。 日は「ものづくり」が得意だ。だからソフトウェアも「ものづくり」として取り組めばいい 車のように、ソフトウェアも部品をどんどんコピーして組み合わせばできる 違うよ!全

    まつもとゆきひろ氏が語る「ビューティフルコード」セミナーに行って来た - LukeSilvia’s diary
  • メタプログラミングの光と影 - ひがやすを技術ブログ

    メタプログラミングとはソースコードを生成するプログラミングのことです。メタプログラミングによって生成したソースコードは、eval関数で実行することができます。 メタプログラミングとは、ロジックを直接コーディングするのではなく、あるパターンをもったロジックを生成する高位ロジックによってプログラミングを行う方法、またその高位ロジックを定義する方法のこと。 メタプログラミング - Wikipedia だから、eval関数は、手段であり、メタプログラミングそのものではない。これは弾さんが指摘してますね。 evalだけがメタプログラミングの技法ではないし、またevalはその威力ゆえ最後の選択肢とすべきだ。 弾さんのパフォーマンスの指摘に対して、miyagawaさんが、「必ずしもevalが遅いとは限らない」と指摘してますね。 メタプログラミングとevalのベンチマーク - Bulknews::Subt

    メタプログラミングの光と影 - ひがやすを技術ブログ
    kmachu
    kmachu 2009/02/08
    「高位ロジックが、高度であればあるほど、最終的に何が起こるのかが、わからなくなってしまうことです。黒魔術的といいましょうか。」これは同意だなぁ。特に内部のコードが読みづらい場合は地獄。
  • 正規表現に見切りをつけるとき

    Perl, Rubyなど手軽に使えるプログラミング言語に慣れてくると、あらゆるテキストデータの処理に正規表現(regular expression)を使ってしまいがちです。 けれど実は、正規表現の処理能力を超えるフォーマットというのが存在します。その典型的な例が、XMLやJSONのように、入れ子になったデータフォーマットです。

    kmachu
    kmachu 2009/01/28
    見切りというよりは適材適所。正規表現は入れ子と相性が悪いのでちゃんと構文解析しましょうと。
  • Higher-Order Perl

    by Mark Jason Dominus Order Higher-Order Perl online from Powell's Books Download full text here There are three versions available. You have your choice of structure or presentation, but not both. License reminder Higher-Order Perl is copyright ©2005 by Elsevier Inc. Unauthorized reproduction or distribution is absolutely forbidden. You may download the book for your personal use, but you may not

  • 考え方の違い - ぐるぐる~

    最近、考え方に大きな溝があることに気づいた。 周りのみんなはこんな感じ。 ソースから何かを読み取ろうとはしない プレーンテキスト*1を使うことを退化だと考えている コードを割り当てることが設計だと思っている節がある 同じコードブロックに対するテストが複数箇所に存在しても気にしない*2 ソースから何かを読み取ろうとはしない 真っ先にソース読むべきとは言わないけど、ソースを読まなさすぎるのもどんなもんかと。 つか、ドキュメント同士のつながり云々言うなら、それこそHTMLとか使ったほうがいいんじゃないか、とか思わなくもない*3。 まぁ、あれだけ汚いソースを書いてれば読む気もなくすってもんだろうけど、ドキュメント類はさらにひどいという何のためにドキュメントを作ってるか全くわからない。 プレーンテキストを使うことを退化だと考えている みんななんであんなにExcel*4好きなんだろうと疑問に思ってたん

    考え方の違い - ぐるぐる~
    kmachu
    kmachu 2008/12/07
    「コードを割り当てることが設計だと思っている」←コード=ソースコードのことかと勘違いして、プログラミングファーストの話かと思ったら違った。コード体系のコードの方だった。
  • ライブドアブログ|無料で豊富な機能が充実

    【愚痴】一番下が幼稚園入ったら働いてほしいって嫁に行ったら「働く分少しは家事の分担と育児も今より関わって」と言われたんだが… 【えぇ…】友達とフードコートへ→私「ポテト買って二人でべる?半額持ってくれるなら私のと一緒に注文するけど」友達「今日は別の店のポテトにする」私「了解」→結果

    ライブドアブログ|無料で豊富な機能が充実
    kmachu
    kmachu 2008/12/07
    「2. mapとeachを使う」の状態なのでメモ
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
    kmachu
    kmachu 2008/12/05
    乗り物の運転と同じで、どれだけ経験したかによると思うな。誰もがレーサーになれる訳じゃないけど、近所のスーパーには行ける。
  • Throwableについて本気出して考えてみた - 都元ダイスケ IT-PRESS

    Throwable、Exception、RuntimeException(RTE)、Errorあたりを整理しながら、色々考えてみた。私見に基づくので、間違っているかもしれないけれど、自分としては頭が整理できたかな、と感じたので晒してみる。異論があったらコメントください。 まず、一番基礎的なところで、継承関係の整理から。こんなツリーになっています。 Throwable Error Exception RuntimeException そして、稿での用語の定義。caller=呼出す側のコード callee=呼出される側(throwする側)のコードとします。 Throwable Throwableは「throw文に指定できる何か」という意味ですね。 Instances of two subclasses, Error and Exception, are conventionally used

    Throwableについて本気出して考えてみた - 都元ダイスケ IT-PRESS
    kmachu
    kmachu 2008/12/03
    責任の所在を明確にして、使用する例外を決めるという考え方。いい記事。
  • 空文字チェック - NullPointer's

    http://itpro.nikkeibp.co.jp/article/COLUMN/20081125/319810/ http://d.hatena.ne.jp/Yoshiori/20081202/1228193692 どう書く?という話題は定期的に上りますね。状況にも因るので一概にどれが正解とは言えないと思いますが、Webアプリなら私もcommonsのStringUtilsに一票いれておきます。 Railsの作者、DHHはRubyではnilもオブジェクトなのを良い事に Object#blank? NilClass#blank? String#blank?というメソッドを作ってしまった。ActiveSupportの黒魔術の一つ。Railsではこの魔法の力によってnilが返る可能性を気にせずに if hoge.blank? # 何か処理 end と書くことができます。 フレームワークにも因

    空文字チェック - NullPointer's
    kmachu
    kmachu 2008/12/03
    プレゼンテーション層ではnullと空文字を同一視、ロジック層では必要に応じてnullチェック(例外or初期化)という話。これはいい考え方。
  • http://lovecall.14.dtiblog.com/blog-entry-56.html

    kmachu
    kmachu 2008/11/15
    こういう思考のトレースって超重要。
  • 「言語戦争」から「VM戦争」へ - kなんとかの日記

    Erlang VMのBEAMがホストする言語が増加している。Python/Rubyに似たスクリプティング言語のReiaとLisp Flavoured Erlangが先ごろリリースされた。Debasish Ghosh氏はこの傾向について思案しているが、他の制作者らはRubyやHaskellからヒントを得て、その他可能な変形言語を概説しようとしている。 Erlang VM上で増え続ける言語 昔、「言語の宗教戦争はもう古い。これからはVMの宗教戦争だ」みたいなことを書いた覚えがあるけど、だんだんとそうなりつつあるようだ。 Multi language 用の VM としては、 (multi language 用として設計されたわけではないにも関わらず) JVM がよく使われているけど、これからは JVM すらも「数多くある選択肢の中のひとつ」でしかなくなってくるのだろう。 もしかしたら将来、言語を

    「言語戦争」から「VM戦争」へ - kなんとかの日記
  • プログラミングテクニックのまとめ - プログラミング日記

    とりあえず思いついたもののまとめ。 まずは、ベーシックなものから。 変数のスコープをなるべく狭くしろ 他はグローバル変数を使うなとか、モジュール化と界面を意識せよなど。とにかくスコープは重要かつ意外と奥が深い。スコープに関係する機能は、モジュール(パッケージ)、クロージャ、ローカル関数、ローカルクラス、変数の種類、アクセス制御など。 同じロジックのコードを2度以上書くな 他はDRY原則、コピペをするななど。自分の場合、2度書く方がシンプルになる場合、2度書くこともある。特に、ifやswitchなどのロジックの中で同じコードが2度現れる場合、ちょっとしたコードでわざわざ別のところで関数やブロックにまとめて、それを参照するのは面倒。但し3度以上現れる場合は関数などにまとめるケースが多いかも。 汎用コード内で条件分岐コードを減らせ 他はifをポリモーフィズムによりなくせなど。条件分岐は汎用性を損

    プログラミングテクニックのまとめ - プログラミング日記
    kmachu
    kmachu 2008/10/24
    きれいに整形して壁にかざっておきたい。