タグ

プログラムに関するayato0211のブックマーク (23)

  • yak shaving で人生の問題の80%が説明できる問題 - bkブログ

    yak shaving で人生の問題の80%が説明できる問題 つい最近、 yak shaving (ヤクの毛を刈る)、という言葉を知りました (原典)。これは「一見無関係に見えるけど、真の問題を解くのに必要な問題を解くのに必要な(これが何段階も続く)問題を解くのに必要な活動」という意味の言葉です。 yak shaving は、ようするに「ある問題を解こうと思ったら別の問題が出てきて、それを解こうと思ったらさらに別の問題が出てきて…」ということが延々と続く状況を表しています。ちなみに、ヤクとは毛が長い、牛の一種です。 yak shaving は、以前に覚えた bikeshed と同じくらい便利そうな表現です。というもの、プログラムを書いていると yak shaving 的な状況がすぐに発生するためです。 たとえば、「Amazon のほしい物リストを CSV 形式に変換して Excel で読み

  • ラムダ計算の勉強のしかた、プログラム意味論 - きしだのHatena

    先日のエントリで手続きを記述するという側面と、式を記述するという2つの側面があるということを書きました。 プログラムの理論とはなにか そして、手続きの性質として代表的な、アルゴリズムについての勉強のしかたについてまとめてみました。 アルゴリズムの勉強のしかた そこで、今回は、式を記述するという側面の勉強のしかたと、あとこの分野は自分でもまだ全然勉強してなかったので、これからどういうを読もうと思っているかをまとめてみます。 プログラム意味論 プログラムは必ずプログラム言語、少なくとも記号で記述します。*1 そこで、プログラムの勉強という点では、どのように動くかというアルゴリズムの勉強だけではなく、どのように書けるか、書いたものにどのような性質があるのかということも知る必要があります。 例えば、2005年あたりからRubyのような動的型付け言語が流行りだし、Javaなどの静的型付けの言語との

    ラムダ計算の勉強のしかた、プログラム意味論 - きしだのHatena
  • Gaucheのライブラリモジュールの依存関係のグラフ - 再帰の反復blog

    最初に書こうと思ったのはファイルの依存関係とタイムスタンプから実行の必要なテストを見つけるプログラムで、makefile風に書くと dependency-list: **/*.scm update-dependency dependency-list $? for test in $$(find-test --backward dependency-list $?); do \ gosh $${test} ; \ done のようなプログラムだったのだけど、とりあえずモジュールの依存関係をグラフ化してみた 追記: Gauche 0.9.7に対して再びグラフ化してみた。 グラフ化はGraphvizのtwopiで、 twopi -Tpng dotファイル -o 出力ファイル.png みたいにして、dotファイルの生成は以下のプログラム。 (use file.util) (use srfi-1)

    Gaucheのライブラリモジュールの依存関係のグラフ - 再帰の反復blog
  • 28歳からのプログラマー

    2. この発表をなぜやるの? ● 正直、28歳からプログラマーになるとするっていう 事例は誰か言ったりしているの? ● 探す→見つからない ● たいていは「高校生」とか「20代前半」とか、そう いう若い人向け ● プログラマー35歳定年説

    28歳からのプログラマー
  • アッカーマン関数 (Ackermann function) Ack(4,2) の 19729 桁: nouse

    しかし、 が 以上の場合では、と言うか、既に の段階だけでアッカーマン関数は、ジャーナリスト的な陳腐表現を使うと「凶暴な性を露わす」。それでも は可愛いものだし、 は つまり であって、ニゴロの 2 乗である から を引いた であると云うことにも「ソーユーことになりますな」などと乙に済ましていられる。しかし は になるのだ。「イキナリ何をする」と言いたくなってしまう。 関数電卓を引っ張り出してきて 2 の常用対数 に を掛けると になる。。。って、( 進法で) 桁の数と云うことではないか。 この対数計算で、 が で始まる数であるだろうことも推定できるが、それ以上のことは分からない。ここで「紙と鉛筆と電卓で計算」しようと云う気は失せて、後はコンピュータにお任せしようと、僅かながらも私が使える言語である xyzzy lisp でアッカーマン関数のプログラムを書いてみた。こんな感じだ。 (de

    アッカーマン関数 (Ackermann function) Ack(4,2) の 19729 桁: nouse
    ayato0211
    ayato0211 2012/11/27
    "僅かながらも私が使える言語である xyzzy lisp で"
  • 顔画像をもとに似た顔の人が出ている AV を検索するツールを公開しました | ぱろすけのメモ帳

    By RobertBy Robert McDon. 最近いろいろやってましたが、邪悪なツール、遂に完成しました!! 顔画像をもとに似た顔の人が出ている AV を検索します。検索対象の顔画像は35万枚です。使い方としては「この画像、AV 女優なんだけど誰だかよくわかんない」「このアイドルに似た人が出てる AV を探したい」など考えられます。「Facebook で流れてきた画像をとりあえず放り込む」「卒業アルバム」などはいろいろアレなのでやめましょうね!! というわけで今回はこのツールを配布します。 もともとは Python で Ubuntu 向けに書いたんですけど、ちゃんと Windows 版も作ったのでそれで。 まずは起動します。 ふつうに起動すれば良いですね。 とりあえず画像を選べと言われます。 画像を選びます。今回は紗倉まなの DMM のサンプル画像を選びました。(リンク先18禁サイト

  • 小数点の計算をやるからといってすぐにfloatやdoubleを使ってはいけない - かとじゅんの技術日誌

    おつかれさまです。 型を選ぶというのはプログラミングの基礎中の基礎ですが、以外に開発の現場でも注意が必要なのが、floatとdoubleの精度の問題があります。これぐらい当然と思っていたのですが、最近よく耳にしますので、あえて言及w これらの型の目的が科学技術計算のための用途。多少誤差が生じても高速に演算をすることを目的としています。グラフィックなどの描画系とかですかね。 このように、float型やdouble型は誤差を含む可能性があるため、科学・工学計算で多少の誤差は許容できる場合はよいのですが、金融・会計分野のように正確な値が要求される計算には向きません。 どうしても正確な値が欲しい場合は、BigDecimalクラスを使用することになります。基データ型のdoubleやfloatと比較すると不便かつ低速ですが、精度が保証されており、丸め方も指定できます。 ここで言及されているように、お

    小数点の計算をやるからといってすぐにfloatやdoubleを使ってはいけない - かとじゅんの技術日誌
    ayato0211
    ayato0211 2012/11/16
    コメントwww ->"金融系ならGroovyがお薦めです。"
  • デメテルの法則 - Wikipedia

    デメテルの法則 (Law of Demeter, LoD) または最小知識の原則 (Principle of Least Knowledge) とは、ソフトウェアの設計、特にオブジェクト指向プログラムの設計におけるガイドラインである。 このガイドラインは1987年の末にかけてノースイースタン大学で作成された。簡潔に言うと「直接の友達とだけ話すこと」と要約できる。基的な考え方は、任意のオブジェクトが自分以外(サブコンポーネント含む)の構造やプロパティに対して持っている仮定を最小限にすべきであるという点にある。 「デメテルの法則」という名前は、この法則がアダプティブプログラミングとアスペクト指向プログラミングに関する研究であるデメテルプロジェクトの成果であることに由来する。プロジェクト名は農業の女神であるデーメーテールにあやかっている。 オブジェクト指向における適用[編集] オブジェクト指向

  • 第3回社内LT大会に見た顕在化した失望と一握の希望 - ミッションたぶんPossible

    はじめに 10/06(土)に自社でLT大会を開催しました。社内でも発表の場を持って自分たちの発表力を上げていこうよ、もっと技術の話しようぜ(高稼働やデスマの話ばっかりしてないでさ)、もっと面白いことをやろうぜ!というのが狙い。企画・広報・運営は全てオレ1人でやりました。会場設営は参加者全員に手伝ってもらいました。多謝。 テーマ & ルール 今回のテーマは「遊び心」。今まで開発だの未来展望だのハードルを上げていたので、事前にネゴシエーションしとかないと登壇者が集まらなかったんですけど、今回はあんまりそういうことをやりたくなかったので、出来るだけハードルを下げて「好きにしゃべっていいよ」という雰囲気を作って発表するだけを純粋に楽しんでもらおうと、ユルいテーマで設定した次第です。 ちなみにルールはたったひとつ、「10分以内に発表すること」。ただし、プレゼン自体の練習の意味もあるんで、時間切れ→即

    第3回社内LT大会に見た顕在化した失望と一握の希望 - ミッションたぶんPossible
  • 自動改札機の運賃計算プログラムはいかにデバッグされているのか? 10の40乗という運賃パターンのテスト方法を開発者が解説(前編)

    自動改札機の運賃計算プログラムはいかにデバッグされているのか? 10の40乗という運賃パターンのテスト方法を開発者が解説(前編) ふだん何気なく使っている鉄道。改札を降りるときにICカードを自動改札にかざすと、「ピッ」という音と共に一瞬のうちに運賃を計算してくれます。けれど、複数の路線を乗り継いだり、途中で定期券区間が挟まっていたりと、想像しただけでもそこには膨大な組み合わせがあります。それでも運賃計算プログラムはわずか一瞬で正しい運賃計算が求められ、バグがあったら社会的な一大事にもつながりかねません。 爆発的な計算結果の組み合わせがあるはずの運賃計算プログラムは、どうやってデバッグされ、品質を維持しているのでしょうか? 9月12日から14日のあいだ、東洋大学 白山キャンパスで開催された日科学技術連盟主催の「ソフトウェア品質シンポジウム 2012」。オムロンソーシアルソリューションズ 幡

    自動改札機の運賃計算プログラムはいかにデバッグされているのか? 10の40乗という運賃パターンのテスト方法を開発者が解説(前編)
  • "Hello world!"

    このお話はたぶんフィクションです。実在の個人や企業とはあんまり関係ありません。そういうことにしろください。 10年前、20代になったばかりの頃の僕は、今思えば当に最低な生活を送っていた。高校を中退し、実家とは疎遠で、友達もなく、金もなく、夢も希望もなく、ただバイト先と自宅を行き来するだけの毎日。いつも視界には霞がかかったようで、底の見えない空虚さだけが僕の心を支配していた。 それでも趣味らしいものはあった。オンボロマシンにRedHatを入れ、ダイヤルアップの細い回線で自宅サーバを立て、Perlでガラクタのようなプログラムを動かす。そんな子供じみた遊びだけど、プログラムを組んでいるときだけは空虚さを忘れ、画面の中に没頭できた。 ただ、そのときの僕はもうすでにいろんなものに打ちのめされていて、若者にありがちな全能感などというものは霧散していた。自分がプログラミングで何かを成すだとか、それを仕

    "Hello world!"
    ayato0211
    ayato0211 2012/09/05
    最後の最後で"ぞくぞく"する。すげー!
  • LL Decade

    Lightweight Language Decadeの各セッションの映像です。来場された方は当日の振り返りとして、来場できなかった方は当日の様子を知るために、ぜひご覧ください。プログラム順にお届けします。 オープニング 基調講演 Language Update Decade プログラミング言語処理系を自作してわかったこと 俺たちの継続的hogehogeは始まったばかりだ! Lightning Talks エンディング

  • Island Life - 書かれなかったもの

    About 南の島のプログラマ。 たまに役者。 Practical Schemeの主。 WiLiKi:Shiro 最近のエントリ 無限cxr高校受験Defense振り返ってみると2019年は色々学んで楽...覚えるより忘れる方が難しい(こともある)眼鏡のつると3DプリンタIris Klein Acting ClassSAG-AFTRA conservatory: Voice Acting創作活動って自分を晒け出さねばならないと...ループを使わずに1から100までMore... 最近のコメント shiro on 歳を取ると時間が速く過ぎるのは、新しいことに挑戦しないから? (2023/03/14)1357 on 歳を取ると時間が速く過ぎるのは、新しいことに挑戦しないから? (2023/03/01)ベアトリーチェ on ハイポハイポハイポのシューリンガン (2022/04/02)ベアトリーチ

    Island Life - 書かれなかったもの
  • プログラマーは偉いのか?

    最近、プログラムが出来ることなんて偉くもなんともない、と改めて思っています。 偉くないとは言っても、誰でも出来て当然だからとか、プログラムなんで出来なくてもいいからとか、そんな事を思っている訳ではないです。 ただ何というか、当にごく一部だとは思うんですが、プログラムが出来ることやPCに詳しいことが偉いとか勘違いしている人がいるように思えるんですよね。 「コードも書けない癖に」みたいな事を平気で言う人。 親がまともにPC操作出来ない事を馬鹿にする人。 モダンなコードも書けないと見下す人。 あまり例が的確ではないような気がするが、要はこういう人たち。 自分の得意なプログラムとかPCとかの分野を引き合いに出して、それが出来ない人を馬鹿にするような連中。その実、人の能力も大して高くないことが多いから噴飯ものだったりするんですが。 僕も端くれながらプログラマとして日々飯をべているので、もちろん

    プログラマーは偉いのか?
  • コードレビューについて - camlspotter’s blog

    このところ立て続けにコードレビューについて話をする機会があったので 私が経験した最高のレビュー体制を簡単にまとめておこうと思います。 利点 何故必要か 何が嬉しいのか コスト うまく回すためには何が必要か 細かい運営方法 はっきり言って当たり前の事しか書きません。 私も当時は当たり前のことだと思っていましたから、特に気にもしていなかったのです。 ただ見聞するところによると、これをちゃんとやっているところはとても少ないようです。 ウォールストリート系のファンドでもろくにレビューしてないとかどういうことなんでしょう。 だから時々会社が吹っ飛ぶんですね… 結局は、ああだ、こうだ各論を言っても、ちゃんとやれるのか、それ一点に尽きてしまう話なのですが… 利点 レビューを何のためにするか、それはまず第一に自分達の書いているコードに潜在するバグによる損失をできるだけ少なくすることでしょう。 型システムや

    コードレビューについて - camlspotter’s blog
  • 「最強最速アルゴリズマー養成講座」関連の最新 ニュース・レビュー・解説 記事 まとめ - ITmedia Keywords

    最強最速アルゴリズマー養成講座: そのアルゴリズム、貪欲につき――貪欲法のススメ アルゴリズムの世界において、欲張りであることはときに有利に働くことがあります。今回は、貪欲法と呼ばれるアルゴリズムを紹介しながら、ハードな問題に挑戦してみましょう。このアルゴリズムが使えるかどうかの見極めができるようになれば、あなたの論理的思考力はかなりのレベルなのです。(2010/9/4) 最強最速アルゴリズマー養成講座: 病みつきになる「動的計画法」、その深淵に迫る 数回にわたって動的計画法・メモ化再帰について解説してきましたが、今回は実践編として、ナップサック問題への挑戦を足がかりに、その長所と短所の紹介、理解度チェックシートなどを用意しました。特に、動的計画法について深く掘り下げ、皆さんを動的計画法マスターの道にご案内します。(2010/5/15) 最強最速アルゴリズマー養成講座: アルゴリズマーの登

  • FizzBuzz問題を使って社内プログラミングコンテストを開催してみた - give IT a try

    はじめに 先日、社内で初めてプログラミングコンテストを開催しました。 お題はかの有名なFizzBuzz問題です。 全員楽勝で解答するだろうと思いきや・・・結果はいかに!? ちょっと長いエントリですが、このコンテストの顛末をお楽しみください。 開催の動機と経緯 メンバーの向上心を刺激するために、なにか面白くて技術的に意味のあるイベントを開きたかった。 以前からFizzBuzz問題を全員で解いてみたかった。 FizzBuzz問題はプログラマなら解けて当たり前、というようなWeb記事をよく見かけていた。 これぐらいなら誰でも解けるだろうと自分も思っていたが、実際にやってみないとわからない。 そこで社内プログラミングコンテストを開き、みんなでFizzBuzz問題を解いてみたいと思った。 マネージャーに話を持ちかけたところ、すぐに賛同してくれた。 FizzBuzz問題以外の追加問題も作成したが、第1

    FizzBuzz問題を使って社内プログラミングコンテストを開催してみた - give IT a try
  • コーディングチェック

    Coding コーディングチェックを行います。 ArrayTrailingComma 配列宣言時、最後の要素の後ろにカンマが「付いていないこと」をチェックします。 int[] a = new int[] { 1, 2, 3, }; 上の文が、このチェックを有効にしたときに正となります。 最後の要素である 3 の後ろにカンマが付いています。 これを付けないと、今後要素を追加しようとしたときに 「3の後ろにカンマを追加して、改行を入れて、要素を追加する」 という手順を踏む必要があり、少々面倒な上にタイピングミスをする可能性も高くなります。 int[] a = new int[] { 0, 1 }; ただし、上のように中括弧同士が同じ行にあるときは このチェックを行いません。 よって、この文は正となります。 AvoidInlineConditionals インライン条件文の使用を拒否します。 s

    ayato0211
    ayato0211 2012/04/27
    CheckStyleが何をチェックしているか。わかりやすい。
  • 「ねばならない」が「やりたい」に変わっていませんか?:竹内義晴の、しごとのみらい:オルタナティブ・ブログ

    「ビジネスマンは、英語ができなければならない」 「ビジネスマンは、資格を取らなければならない」 「ビジネスマンは、スキルを身に着けなければならない」 「ねばならない」 「ねばならない」 「ねばならない」 「ねばならない」 「ねばならない」 「しなきゃ」 「しなきゃ」 「しなきゃ」 「しなきゃ」 「しなきゃ」 「やりたい」 「英語が勉強したい」 「資格を取りたい」 「スキルを身に着けたい」 あれ? 周りから聞いた「ねばならない」ことが いつの間にか「やりたい」になっちゃった。 世の中には、たくさんの「ねばならない」があふれています。 「ねばならない」を何度も聞いていると 何となく、「自分もやるべきかなぁ」と思い それがいつの間にか、「自分がやりたいこと」に変わることがあります。 それが、当に「やりたいこと」ならいいのですが もし、そうでない場合は、結構しんどいです。 だからと言って、英語

    「ねばならない」が「やりたい」に変わっていませんか?:竹内義晴の、しごとのみらい:オルタナティブ・ブログ
    ayato0211
    ayato0211 2012/04/11
    "「ビジネスマンは、英語ができなければならない」 「ビジネスマンは、資格を取らなければならない」 「ビジネスマンは、スキルを身に着けなければならない」"
  • Lecture Notes

    1-5 構文解析2 前回は BNF による文法の定義の仕方を説明した。今回は、いよいよ yacc を使って構文木を組み立てる。 構文木 一般に元のプログラムをそのまま木構造に変換しものを、parse tree (構文木)という。Parse tree の場合、元のプログラムの token は省略されることなく、全て木に含まれる。一方、token の中には人間の見やすさのためや、文法をあいまいでなくするために存在するものもあり、そのような token は構文解析が済んだ後はコンパイルには不要である。 以降の処理に必要な token だけを残し、parse tree をより簡単にしたものを、abstract syntax tree (AST: 抽象構文木)という。構文解析する際、parse tree を作ってから、AST に変換してもよいが、コンパイルには parse tree は不要なので、今