タグ

programmingに関するKiskeのブックマーク (194)

  • シンプルさの必要性 · eed3si9n

    2013-06-24 2012年4月23日にテキサスの Austin で行われた RailsConf 2012 での Rich Hickey (@richhickey) さんによる基調講演、Simplicity Matters を書き起こして翻訳しました。 Rich Hickey さんは Clojure や Datomic の作者です。 この翻訳は Creative Commons Attribution ShareAlike 3.0 ライセンスに基いて公開します。 Rich Hickey 講演 e.e d3si9n 訳 談: こんにちは。ご招待いただきありがとうございます。 聞く所によると RailsConf はいつもコミュニティーからかなり外れた人を選ぶらしく、今回は僕ということになりました。 僕の電話ボックスは外に駐車してあります。(会場、笑) だけど、今日は言語の壁を越える話題を持

  • 例外設計の話

    例外設計の話。 こんな指針がいいのかなー 2013 夏 ver. 例外の目的とは? 「例外をキャッチする主な目的は、エラーの原因を取り除いて、回復すること」 via http://dobon.net/vb/dotnet/beginner/exceptionhandling.html .NET の「例外のデザインのガイドライン」にもこう書いてある。 特定の例外が特定のコンテキストでスローされる理由を把握できている場合は、その例外をキャッチするようにしてください。 回復可能な例外だけをキャッチする必要があります。たとえば、存在しないファイルを開こうとした場合に発生する FileNotFoundException は、アプリケーションで処理できる例外です。それは、アプリケーションがユーザーに問題を知らせ、ユーザーが別のファイル名を指定したり、ファイルを作成したりできるようにすることが可能だからで

    例外設計の話
    Kiske
    Kiske 2013/08/02
    例外設計の便利情報gist!!
  • メモリリークとは何か - kuenishi's blog

    メモリリークに悩まされている技術者は多いだろう。メモリリークが嫌でGCという技術が開発されたといっても過言ではないし、歴史的にはC++からJavaへシフトが起きた大きな理由のひとつといっていい。Unix系の簡単な定義でいえば、ヒープ領域を指すポインタ(アドレス)をロストしてしまえばそのメモリはもう漏れたといってよい。たとえばこういったコードだ。 struct { int i; char c; } spam; int main(){ void* p; int i; for(i=0; i<1024; ++i){ p = malloc(sizeof(struct spam)); } pause(); } このコードではpause(3)の時点で約5KBのメモリが漏れている。free(3)を使えばメモリをOSに返却できるが、アドレスが分からないので返却できない。 ところが、ここでいいたいのは、メモリ

    メモリリークとは何か - kuenishi's blog
  • なんで多重継承はそんなに嫌われるのか? ちょっくら分析してみるか - 檜山正幸のキマイラ飼育記 (はてなBlog)

    多重継承を嫌う人は多いですよね。「複雑だからダメだ」ってことらしい。でも、「複雑=ダメ」はちょっと乱暴。必然性/必要性がある複雑さなら、それは受け入れざるをえないのですから。それに、どの程度の複雑さなのか、その複雑さはどこから来るのかを知らないと「ダメ」かどうかの判断はできないと思います。 という次第で、多重継承の複雑さを調べてみます。ダメかどうかの判断は僕はしません。圏論の道具を使うのだけど、事前の知識は一切不要です(最後の節を除いて)。最後にまとめて圏論的な解釈をしますが、ここは省略可能。 内容: クラスとその例 多重継承は集約と単純継承の組み合わせ 嫌われる理由 1:名前のバッティング 嫌われる理由 2:ダイアモンド継承 ダイアモンド継承の対処 とりあえずのまとめ 圏論からのアプローチと整理 クラスとその例 多重継承の話をするので、もちろんクラス概念は仮定します。でも、複雑さの話を複

    なんで多重継承はそんなに嫌われるのか? ちょっくら分析してみるか - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • 卜部昌平のあまりreblogしないtumblr

    どうも。グリーのアカウントは持ってる1けどモバゲーのアカウントは持ってない卜部です。 ところでPerlリスクですか。まあ、あるんじゃないですか。ぶっちゃけ。でもさあ、さすがにPerlしか書けない人たちは転職先の選択肢のなさくらい自覚してると思う。なのでPerlがどうとかいう話はしないです。各自でどうぞ。 でね、ポイントはそこじゃないだろうと思うわけですよ。どんな選択をしても同様のリスクはあるんですよ。たとえばMacromedia ShockwaveでLingoで作ってたソフトとかさあ。今ではだれもメンテできないでしょう? だから今隆盛をきわめてる技術で作ったものが、何年か後にリスクになるってのは、それはそういうものなんですよ。べつにPerlに限らん。Perlはたまたま今そういうフェーズってだけで、明日は我が身ですよ。hamlとかsassとか。 だからまあ、こう言ってしまうと身も蓋もないかも

    卜部昌平のあまりreblogしないtumblr
    Kiske
    Kiske 2013/03/04
    「今動いてるそのシステム、それが動き出した瞬間から、すでに技術負債になっているのです。」固執するとホント悲劇
  • Perlオブジェクト指向プログラミング

    -> 趣旨と注意書き -> 身近なpackage -> なんのためのpackage ? -> What's `new' ? -> bless ( reference => package ) -> Hello, Module World! -> オブジェクト? -> main パッケージと関連付けてみる -> クラスとメソッド -> オブジェクト指向 -> オブジェクトがリファレンスなら… -> -> を連続する -> 継承 -> 多重継承 -> 多重継承をやめる -> 多重継承をやめる(もう少し簡単に) -> 情報源(書籍等) <- モドル 趣旨と注意書き これを読んでも、あんまりきちっとした知識は、身に付きません(^^; オブジェクト指向の概念はほんの少ししか説明しません。ここで述べるのは、Perlでどうやるかってのが主です(それも不十分&嘘まじりかも)。 とりあえず、モジュールを作り

  • C言語のポインタはメモリを想像できれば理解できる | 100% Pure NEET

    最近、C言語のポインタは難しいって話をプライベートでして、そのときにした説明をまとめてみた。 コンピュータのメモリがどのようになっているか想像する これはHex Fiendというソフトを使ってあるファイルのHexダンプを見たものだけど、コンピュータのメモリも同じような構造になっているのでこれを使う。類似のソフトはHex Editorなどで検索すれば出てくるだろう。 コンピュータのメモリはこうしたずらずらと数値が記録されたマス目の連続のような構造をしている。Hex Editorなのでこれは16進数で表現されている。1バイトは16進数2桁で表現される。Hex Editorでは普通は1バイトごと、あるいは4バイトごとに区切って表示する。このエディタは一区画ごとに8桁の16進数があるので4バイトごと。 ポインタを使うのに重要なのはたぶん、こうしたメモリの内容を頭の中で思い浮かべることができることだ

  • 米国人からコーディングについての怒りのメールを頂戴した - その手の平は尻もつかめるさ

    "米国人からコーディングについての怒りのメールを頂戴した" の補足 - その手の平は尻もつかめるさ ↑の方で補足いたしました。(2012.09.04 追記) 最近、英語のメールでよく怒られます。moznion です。 海を隔てて共同作業しているアメリカ人から、僕のコーディングについてお叱りのメールを頂いたので、 自戒の念を込めて邦訳して記します。 書いてあることは「当然」とも言うべき内容ですが、僕はその「当然」も守れていなかったのかぁ〜と反省。 以下、邦訳(意訳)です。 1. 郷に入っては郷に従え 既にソースコードが存在しているって事は、そこには同時にコーディングスタイルも存在しているってことだ。 その既存のソースコードに手を加える場合、別のコーディングスタイルを導入してはならない。 もし君がバックエンドのソースコードを弄っているなら、バックエンドのコーディングスタイルで記述するんだ。 フ

    米国人からコーディングについての怒りのメールを頂戴した - その手の平は尻もつかめるさ
  • ORMがアンチパターンである11の理由

    サンフランシスコのプログラマLaurie Voss氏が書いた見逃せない記事が賑わっています。近年のフレームワークやライブラリの定番中の定番ORマッパーが既にアンチパターンなのではというのが彼の主張です。この記事を書くきっかけになったのはこのツイートだそうです。 I cannot overstate the degree to which ORM is a dangerous antipattern. — Laurie Voss (@seldo) June 9, 2011 ORM が危険なアンチパターンだっていうのはどれだけ言っても言い過ぎることはない このツイートに対して各方面(ActiveRecord, Doctrine, Hibernate)から多くの(激しい)返信が寄せられて書かれたのが問題のエントリです。まずはアンチパターンとは何かの定義として下記の2つを挙げています。 当初は有益

    ORMがアンチパターンである11の理由
  • はてなは「絶対すべきでないこと」をやらかしたのか?

    おっと、タイトルだけ見て、先週から話題になっているはてなブックマークボタンのトラッキング問題の話かと思われたかもしれないが、文でははてなブックマークの問題はほとんど扱わない。また、この問題について未だご存じない方は、ARTIFACT@ハテナ系のエントリの後半にあるこれまでの流れを辿ると分かりやすいだろう(ワタシ自身の認知にも近い)。 はてなが新サービスとしてはてなブログをリリースして4ヶ月以上経つ。当初は招待制だったが、昨年末にオープンベータに移行して現在にいたっている。 ワタシもリリース時に招待されたので少し触ってみたが、機能が何から何まで足らないことにびっくりしたものである。そして、はてなは「アレ」をやらかしたのではないかという疑念が頭をよぎったが、まさかと思う気持ちと、短時間触っただけの印象で間違った批判をしてはいけないという自制、何よりそのあたりはじきに解決するのだろうという楽観

  • 名前のつけ方

    4. 事前準備 •そのメソッドがどのような役割 なのかをよく考える • 役割を日語で言い表せる、他 人に説明できる状態にしておく 株式会社 万葉 2012年3月9日金曜日

    名前のつけ方
  • プログラミングは「名前」が9割。 - このブログは証明できない。

    プログラミングというのは、名前をつける行為なんだと思う。 プログラミングで一番大切なこと。 もしも、プログラマーじゃない人に、「プログラミングで一番大切なことは?」と聞かれたら、迷わず「名前」だと答える。もちろん、人それぞれだし、自分はスキルの高いプログラマーじゃないよ、と前置きして。 名前が9割と言ったときの、9割という部分は人によってだいぶ差があるんだと思う。もっと小さいかもしれない。けれど、名前が重要だという点に関しては、反対するプログラマーはいないんじゃないだろうか。 時代や環境で変わる名前。 いま僕がイメージしてる名前というのは、変数名だったり関数名だったりクラス名だったり、とにかくいろいろ。さらに、JavaScriptとか高階関数をバリバリ使うような場合など、名前をつけないという選択肢もある。 なんとなくJavaScriptと書いたんだけど、名前はプログラミング言語や開発環境や

    プログラミングは「名前」が9割。 - このブログは証明できない。
  • Rを使えるようになるための10のこと - Issei’s Analysis ~おとうさんの解析日記~

    Rは統計解析を行うことができる強力なツールです。計算上の信頼性はとても高く、世界中の分析者が日々分析用パッケージを公開しております。近年では行政機関で使われているという事例もちらほら聞きます。 ・姫路市役所での事例 これまでSASは使ってきたけどRは全く使ったことがない!JAVAとかC++とかガリガリ書けるけどRはよく分からない!という方々がすんなりRの世界に入れるよう、資料の探し場所や導入部分をまとめておきます。 ※まだ不完全ですが情報を入手し次第アップデートしていきます。 1. 資料を探す場所 CRAN R体、パッケージ、PDF資料などの置き場 Task Viewに分野ごとのまとめ Searchでパッケージや資料の検索 CRANの読み方は「しーらん」派と「くらん」派でわかれる(どっちでもいいw) Rjpwiki 日語で書かれている、これまでのRに関する資料の集大成 データの加工技、

    Rを使えるようになるための10のこと - Issei’s Analysis ~おとうさんの解析日記~
  • ソースコードの品質向上のための効果的で効率的なコードレビュー

    3. 自己紹介 1992年~1997年 某ゲーム会社 プログラマ SFC,GB,PS1,N64のゲーム開発経験 1998年~現在 日工学院八王子専門学校 @mozmoz1972 専任講師 プログラミング教育を中心に担当 twitterもfacebookも実名です。よかったらフォローしてください。

    ソースコードの品質向上のための効果的で効率的なコードレビュー
  • プログラミング用フォント Ricty

    お知らせ Ricty および Ricty Diminished は、2010 年代前半には欧文・和文合成プログラミング用フォントとして先駆的でしたが、現在は前時代的な存在となっています。不具合もいくつか確認されています。良質なプログラミング用フォントが数多く登場していますので、それらの利用をおすすめします。 序文 Ricty(リクティ)は Linux 環境での研究・開発を想定したプログラミング用フォントです。テキストエディタやターミナルエミュレータ、プログラミング言語やマークアップ言語に対する使用に適しています。Inconsolata と Migu 1M の合成、および、プログラミング用フォントとしてのいくつかのチューニングを行う生成スクリプトを配布しています。Inconsolata 作者の Raph Levien 氏、Migu 1M 作者の itouhiro 氏、M+ M Type-1

  • 典型的PHPerの13の悪癖

    はてな匿名ダイアリーで不穏なことが書かれていたが、職場などで見かけない事も無いので解説をつけて内容を転載しておく。 典型的な“嫌なタイプ”のPHP使いの特徴を「典型的PHPerの13の悪癖」というタイトルでまとめてあるものだ。PHP育ちの叩き上げの人が陥りやすい問題も含まれていると思うので、紹介したい。 1. パスワード認証sshでサーバーにログインし、vimemacsで開発をする。 PHPerは、生産性が低く、セキュリティ的に問題のある開発環境を愛用しているケースが多々ある。セキュリティ向上の為にはsshは公開鍵認証で使うべきだし、生産性向上のためには、一般的にはローカルに開発環境を用意して、Eclipse/PDT等の統合開発環境を使うべきであろう。 2. SVNなどのバージョン管理システムで、使い方が分からないのでブランチを切った事が無い。 開発ツールの学習に無頓着なPHPerは少な

    典型的PHPerの13の悪癖
    Kiske
    Kiske 2011/03/30
    3つ当てはまり。DISるならこれくらい遠慮ない方がいい。
  • What is the best comment in source code you have ever encountered?

    Ask questions, find answers and collaborate at work with Stack Overflow for Teams. Explore Teams Collectives™ on Stack Overflow Find centralized, trusted content and collaborate around the technologies you use most. Learn more about Collectives

    What is the best comment in source code you have ever encountered?
  • 幸せ倉庫

    マイカーが故障したり、修理が必要になったりすることは、車を所有している限り避けられない出来事です。特に大きな修理や部品の取り寄せが必要な場合、車が長期間入院することも珍しくありません。突然の故障や事故などで車が使えなくなると、日常生活に大きな支障をきたします。通勤や通学、買い物や家族の送迎など、車がないことで多くの不便が生じるでしょう。 そんな時に非常に便利なのが長期で借りられるレンタカーです。短期間のレンタカーでは費用がかさむことがありますが、月単位での長期レンタカーを利用することで、経済的に負担を軽減しながら、車を持つのと同じように利用することができます。特に、修理に1ヶ月以上かかるような場合、長期レンタカーは最適な解決策です。 この記事では、車の修理が長期間に及ぶ場合に、長期レンタカーがどのように役立つかを詳しく説明します。車が使えない間のストレスを軽減し、生活のリズムを維持するため

  • モダンなプログラミング言語の開発環境の構築方法まとめ - ネットサービス研究室

    随時更新していきます。 モダンなPerlの開発環境の構築方法 モダンなPHPの開発環境の構築方法 モダンなPythonの開発環境の構築方法 モダンなJavaの開発環境の構築方法 モダン(かもしれない)なEclipse環境(Java)の構築方法 モダンなC, C++の開発環境の構築方法 モダンなMySQLの開発環境の構築方法

    モダンなプログラミング言語の開発環境の構築方法まとめ - ネットサービス研究室
  • [Neta]真・新ジャンル:回文プログラミング - 葉っぱ日記

    参考文献: 新ジャンル:回文プログラミング - TAKESAKOのはてな出張所 回文つくるのに真ん中に「//」いれるのは卑怯な気がするので回文javascriptを書いてみた。記号だけじゃないけど。 "'\"+'+", alert(1),',)1(trela ,"+'+"\'" おなじ構造でPerlもいけますね。Perlindrome. "'\"+'+". print(1).'.)1(tnirp ."+'+"\'" 追記: id:TAKESAKOさんに「卑怯な気がする」と言ったら「厳密には文字列の reverse になっていない鏡像」な回文スクリプトしかできあがらなかったので書いてみた。ブラウザのアドレスバーに「javascript:」を打ったあとに貼り付けてお楽しみください。 "'\"+'+",$=~[];$={___:++$,$$$$:(![]+"")[$],__$:++$,$_$_:

    [Neta]真・新ジャンル:回文プログラミング - 葉っぱ日記