タグ

Programmingと4に関するagxのブックマーク (51)

  • 型推論と型検査、静的な型つけと動的な型つけ、強い型つけと弱い型つけ - sumiiのブログ

    ついでに追加。 型推論:変数や式の型をプログラマが宣言しなくても、言語処理系が文脈から推論してくれる機構。MLとかHaskellとか。 型検査:変数や式の型が合っていることを言語処理系が(普通は静的に)チェックしてくれる機構。CとかJavaとか、MLやHaskellも。 静的な型つけ:プログラムの実行前に型を検査する機構。MLとかHaskellとかCとかJavaとか。 動的な型つけ:プログラムの実行中に型を検査する機構。LispとかSchemeとかPerlとか。 強い型つけ:検査を通れば、安全さ(safety)が保証される、という(普通は静的な)型つけ。MLとかHaskellとかJavaとか。Javaはバグがあったりしたので少し怪しいですが。 弱い型つけ:検査を通っても、安全さ(safety)は保証されない、という型つけ。CとかPascalとか。 安全さ(safety):プログラムが言語仕

    型推論と型検査、静的な型つけと動的な型つけ、強い型つけと弱い型つけ - sumiiのブログ
  • 論理的思考の放棄 - 登 大遊@筑波大学情報学類の SoftEther VPN 日記

    僕は、1 日に少なくとも 3,000 行程度、多く書くときで 10,000 行以上のプログラムを書くことができる。その結果、多い月で 10 万行 / 月くらいである。なお、言語は書くソフトウェアの性質上、大半が C 言語である。 また、プログラミングにはバグが付き物だが、ここ 2、3 年の間は、発生するバグの数を極めて少なく保つことに成功している。 とても大きく複雑で、かつレイヤ的に OS に近い処理をたくさんやるプログラムを書く場合は、プログラミングをするときでも、事前の設計が極めて重要となる。設計をうまく行わないと、後になって全面的に書き直しをしないといけなくなったり、パフォーマンスが低下したりする原因となり、開発者の苦痛の原因となる。 当然のことながら、これまで書いたいくつかの大きく複雑といえるソフトウェアの大半の設計も、自分で行った。いかなる場合でも、設計は、最初の 1 回目で確定

    論理的思考の放棄 - 登 大遊@筑波大学情報学類の SoftEther VPN 日記
  • 二流プログラマの三流な日常: プログラムの実行時間を計測する

    Windowsでプログラムの実行時間を計るのは簡単ではありません。他のスレッドが計測の邪魔をするからです。 最初に確認しなくてはならない事は、実行時間を計測するために、ソースコードを修正できるか否かです。 前者の場合は、Kernrateやパフォーマンスカウンタを使うのが一般的です。 ここでは後者の状況について詳しく検討していきます。 まず、よくある計算方法。 時間計測関数の以下を使います。(参考:その分解能) QueryPerformanceFrequency GetTickCount timeGetTime GetSystemTimeAsFileTime これらは特殊な状況を除いて不合格です。何せ、他のプログラムが動作している時間を全く考慮しません。Windows98なら以下が使えない為、仕方がない。 GetProcessTime GetThreadTime これが正解です。プロセスが複

  • 分裂勘違い君劇場グループ - 劇場管理人のコメント - 有能なプログラマの特徴を思いつくまま列挙してみる

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

    分裂勘違い君劇場グループ - 劇場管理人のコメント - 有能なプログラマの特徴を思いつくまま列挙してみる
  • オブジェクト指向プログラムでgetter/setterメソッドを使わなければならない10の理由

    オブジェクト指向プログラムで getter/setterメソッドを使わなければならない 10の理由 福盛 秀雄 fukumori at m.ieice.org JavaC++などのオブジェクト指向言語でプログラムを書いているときに、単純なメンバ変数を参照したり操作するために anObject.getX() [以後これをgetterメソッドと呼ぶ] とか anotherObject.setY(y) [以後これをsetterメソッドと呼ぶ] と書くのはなぜだろうと思ったことはないだろうか? int型の変数ひとつを操作するのになぜわざわざメソッドを定義するのだろう? 単純に代入を使えばいいじゃないか? この文章はそんなあなた(かつての僕も含む)が、getter/setterメソッドを使うべきである理由についてまとめたものである。 ということで早速論へ。 1. クラス内部のデータ表現を変えた場

  • IBM Developer

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    IBM Developer
  • 東大での講演 - squeakerのブログ

    (ちょっとだけ追記しました。その他1/25のあたりも見てみてください。) "Can programming be reinvented?"というタイトルでの発表。東工大と東大で似たような発表をしたのだが、ストーリーラインが比較的新しいため、先にやった東工大での発表には反省点がいろいろあり、それが東大での発表に生かされた形になったのは否めない、かもしれない。以下は、かなり再現性の低いメモ。詳細はさらに聞いてください。「私」はもちろんAlan Kayを指します。 近所の人から、「なんで新しいコンピュータのほうがWindowsの起動やMS Wordの起動が遅いの?」、「大きいディスクがついているはずなのに、なぜ使える容量が少なくなるの?」、「アップデートをしたら、何で再起動しなくてはいけないの?」という質問をされる。なかなか良い質問である。 私自身も、コンピュータに関する疑問がある。「なぜ、コン

    東大での講演 - squeakerのブログ
    agx
    agx 2007/01/27
    現在のプログラムは無駄な部分が多くて巨大すぎる。どのようなのが理想的なのか
  • 優秀な主婦はイベント・ドリブン(event-driven)方式でパンを焼く

    昨日のエントリーで、「人は一つの仕事を処理するときには、それを小さな仕事に分割して、順番に処理する」と書いたが、「パンを焼く」という仕事を例に取れば、こんな風になる。 1.イーストを30℃のお湯と一つまみの砂糖とまぜて15分間予備発酵させる 2.ボールに強力粉、予備発酵させたイースト、砂糖、塩を入れて良く混ぜる 3.こね板の上で生地をこねる 4.ボールにラップをして室温で1時間発酵させる(一次発酵) 5.適当な大きさに生地を分割し、丸めて形を作る 6.オーブンに入れ、30分発酵させる(二次発酵) 7.オーブンの温度を200度にして18分焼く これは、ソフトウェアで言えば「手続き型のプログラム」であり、人間が一連の作業を把握するのに最も適した記述の仕方である(その証拠に、実際のどのレシピブックを見ても、レシピは必ず「手続き型」で書かれている)。 興味深いのは、このレシピにおける、「15分予備

    agx
    agx 2007/01/23
    イベント・ドンブリ型を料理などの日常のことにたとえて説明
  • 終了いたしました。

    作者ホームページサービス(hp.vector)は終了いたしました。 長らくのご利用、ありがとうございます。 ご不明な点があれば、お問い合わせページをご覧の上、お問い合わせください。 ※15秒後にトップページに戻ります。 (c) Vector HOLDINGS Inc.All Rights Reserved.

  • ウノウラボ Unoh Labs: チームリーダーが心掛けるべき10のポイント(テストチーム編)

    GT Nitro: Car Game Drag Raceは、典型的なカーゲームではありません。これはスピード、パワー、スキル全開のカーレースゲームです。ブレーキは忘れて、これはドラッグレース、ベイビー!古典的なクラシックから未来的なビーストまで、最もクールで速い車とカーレースできます。スティックシフトをマスターし、ニトロを賢く使って競争を打ち破る必要があります。このカーレースゲームはそのリアルな物理学と素晴らしいグラフィックスであなたの心を爆発させます。これまでプレイしたことのないようなものです。 GT Nitroは、リフレックスとタイミングを試すカーレースゲームです。正しい瞬間にギアをシフトし、ガスを思い切り踏む必要があります。また、大物たちと競いつつ、車のチューニングとアップグレードも行わなければなりません。世界中で最高のドライバーと車とカーレースに挑むことになり、ドラッグレースの王冠

    ウノウラボ Unoh Labs: チームリーダーが心掛けるべき10のポイント(テストチーム編)
    agx
    agx 2006/10/18
    特にテストチームと限定しなくても、多くの場合に当てはまりそう
  • 動的PInvokeによる統合アーカイバ仕様DLLを使用した書庫の展開と作成:CodeZine

    また、記事内で「Unbel32.dll」(バージョン:0.45、著作権者:島田啓史)に触れた部分もありますが、これは対象外とさせていただきます。私が試した限りでは、正常な動作が確認できなかったためです。前提知識 この記事はプログラミング初心者を対象としていないため、基的な事柄については説明しません。不明な点はMSDNなどで調べてください。 またこの記事では、統合アーカイバDLLの使い方についてもある程度の説明はしていますが、各DLLを使用する前には必ずDLLと同梱されているドキュメントをお読みいただき、ライセンスや使い方などを確認してください。必要な環境 サンプルはMicrosoft Visual Studio 2005で作成されています。実行には、.NET Framework 2.0が必要です。また、すべてのサンプルを実行するためには、「Unlha32.dll」がインストールされている

    agx
    agx 2006/07/28
    DLLを利用した圧縮解凍ソフト
  • タスクトレイにアイコンとバルーンを表示する:CodeZine

    はじめに Visual Studio 2005を用いることにより、Windows Formアプリケーション作成時に多様な機能を実現できるようになりました。そこで、Windows Formアプリケーションを作成するにあたり、タスクトレイにアイコンを表示させる方法と、そのアイコンからさらに、バルーンTipsを表示させる方法を見ていきましょう。どちらも知っておくと便利な機能ですので、ぜひ実際に試してみてください。対象読者 Windows Formアプリケーションに興味がある方。必要な環境Visual Studio 2005Visual C# 2005 Express Edition NotifyIconの利用 タスクトレイにアイコンを表示するためには、Windowsフォームに対応したツールボックスにある[NotifyIcon]を使用します。Notifyは「~に知らせる、報告する、通知する」という

  • MPIチュートリアル

    MPI Programming samples (* 同じプログラムが gro.cc.titech.ac.jp:/tmp/mpitutorial/にあります *) 入門:同期通信 並列和計算 バリア同期 集合通信 bcastブロードキャスト scatter gather allgather reduce bcast.c column_move.c gatherv.c mat_mult.c mm.c mmopt.c move.c nblock.c reduce2.c row_move.cscatter2.c time.c time2.c リンク集 メッセージパッシングを使用した並列プログラミング(日語,MPIチュートリアル) Message Passing Interface(日語,MPI入門) Beginners Guide to MPI Message Passing Interfa

  • http://grape.c.u-tokyo.ac.jp/~moppy/archive/pc-cluster.html

    agx
    agx 2006/07/11
    PCクラスタの設定時のメモ
  • MPIの基礎

    【MPIの基礎】 吉井 健吾,廣安 知之,三木 光範 ISDL Report   No. 20050820002 2005年 6月 1日 Abstract MPI(Message Passing Interface)とは,分散メモリ型の並列計算機で複数のプロセス間でのデータをやりとりするために用いるメッセージ通信操作の仕様標準である.稿ではMPIを用いたプログラミングを作成する上で必要な基礎事項について述べる. 1  はじめに MPIはその名の通りメッセージパッシング方式に基づいた仕様であり,近年では分散メモリ型のメッセージパッシングライブラリの代表となっている.MPI の仕様に準じた実装ライブラリは複数存在するが,稿ではその中で最も普及しているMPICHとLAMを取り上げる. 2  MPIによる並列プログラミングの基礎知識 クラスタのような分散メモリ型の並列マシンでは,各プロセッサ上

  • http://grape.c.u-tokyo.ac.jp/~moppy/archive/mpi-programming.html

  • YAMDAS現更新履歴 - Joel Spolsky選定のマネージメントトレーニング用課題読書リストの邦訳版を作ってみた

    Joel on Software の翻訳 Wiki の話は以前にも書いたが、その中に Joel Spolsky の会社である Fog Creek Software におけるマネジメントトレーニングプログラム用の課題読書リストが公開されている。二週間に一冊読んでいっても二年間かかるという長大なリストである。 ちょうど Tech 総研で「この春に読みたい!TOPエンジニア推薦のIT技術書20冊」という記事が公開されているのを見て、件の読書リストで邦訳が出ているものだけ並べてもそれなりのリストになるのではないか、それにサポートページなどの情報を加えれば他の人の参考になるかと思ったのである。実際やってみると、邦訳だけでも50冊を超えるリストになり、正直死んだ(笑) 見やすいように著者や内容で大雑把に分類させてもらった(不適当な分類があったらすいません)。正直言って、このが入るか? というようなも

    YAMDAS現更新履歴 - Joel Spolsky選定のマネージメントトレーニング用課題読書リストの邦訳版を作ってみた
  • Photoshopのスクリプト制御:CodeZine

    はじめに Photoshopは、印刷、デザイン、Web製作、ゲーム開発などのさまざまな仕事の現場で利用されている画像加工・作成アプリケーションです。このPhotoshopは、バッチ処理を行う強力なアクション機能を備えています。しかし、少し複雑なことをさせようとすると、とたんに限界に行き当たるのが現実です。 Photoshop 7.0以降では、Scripting plug-inを使うことで、プログラミングで直接Photoshopを制御できるようになりました。この機能を使えば、アクション機能では実現できなかった細かな処理を行えます。 例えば、ファイル名の作成などの「文字列処理」、画像サイズを計算して求める「計算処理」、そして「条件分岐」といったプログラム特有の処理は、アクション機能では実現できないものです。 記事では、JavaScriptというWeb関連の技術者におなじみのプログラム言語を使

  • 例外を思いのままに発生できる「DevPartner Fault Simulator」レビュー(1/4) - @IT

    .NET Tools 例外を思いのままに発生できる 「DevPartner Fault Simulator」レビュー ―― 面倒な異常ケース/例外処理のテストを強力サポート ―― 株式会社ピーデー 川俣 晶 2006/06/10 プログラミングで厄介なもの、それは異常ケース 筆者が.NET Frameworkベースで(主にC#による)プログラムを書き始めてから遭遇した思い出深いトラブルは2つある。 その1つは、外部からの通信を処理する機能で発生した問題だった。通信を受け付けると、その通信を処理するスレッドを走らせる仕様だったのだが、どういうわけかスレッドの数が異常に増え、スレッド数の上限に達してそれ以上のリクエストを受け入れられない状態に陥ることがあったのだ。しかし、開発用の環境で問題を再現することができなかった。外部に公開された実運用サーバでのみ発生したのだ。 そこで、.NET Fram

    agx
    agx 2006/06/11
    異常ケースの再現シミュレータ
  • 負荷対策概論 - Y-110's Wiki

    最新文章 2018-12-26 17:10▪ 致敬英雄,致敬不朽的精魂 2018-12-26 17:10▪ 四十年来闵行人的文化生活史一幕幕回放 2018-12-26 17:10▪ “笔尖上的童画”——欢图学员作品成果展将在东方网文化活动... 2018-12-26 17:10▪ “金色热线”12月27日将迎来年终特别节目 2018-12-26 17:10▪ 北京市发布持续低温蓝色预警信号 2018-12-26 17:10▪ 北京市网信办推进自媒体账号专项治理关闭11万个 2018-12-26 17:10▪ 有创意的崇明“橘农”让梦想和情怀扎根农场 2018-12-26 17:10▪ 突发!上海地铁3、4号线晚高峰运行延误系人员进入线路 2018-12-26 17:10▪ 中国经济总量将达90万亿关键时刻传递重要信息 2018-12-26 17:10▪ 海底捞:"吃出卫生巾"系人为当事顾客

    agx
    agx 2006/06/07
    webアプリの負荷対策