タグ

programmingに関するLoLoのブックマーク (68)

  • 第3回 Cの「ポインタ」を調査せよ!

    Cには「ポインタ(pointer)」という便利で厄介な機能がある。Cの学習者が最初に突き当たる壁だとよく言われる。百戦錬磨のベテランでさえ,ポインタがらみのバグは少なからず経験しているだろう。今回はCのポインタについて調べてみた。 アドレスを保持して何になる? ポインタは“point + er”→「ポイントするもの」→「指し示すもの」という意味で,メモリー上のデータを間接的に指し示すことが大きな役割だ…ってことは,ご存じだろう。 どのような変数も,使用する前に初期化しなければならない。ポインタ変数*1ももちろん変数のアドレスで初期化する必要がある。例えば,int型の変数をポインタを介して扱うなら,以下のようになる。 int *p;       ―― int型のポインタ変数pを宣言 int num;         ―― int型の変数numを宣言 num = 123;        ――

    第3回 Cの「ポインタ」を調査せよ!
  • ジャンル別ゲームの作り方とアルゴリズムまとめ - ネットサービス研究室

    ゲームの作り方とアルゴリズムをジャンル別にまとめてみました。ゲーム制作や、プログラミングの勉強用にご活用ください。言語別ゲームプログラミング制作講座一覧もあわせてお読みください。 リンク切れがおきていたものは、URLを表示しておくので、Internet Archiveなどでキャッシュを表示させてみてください。 RPG ゲームの乱数解析 乱数を利用した敵出現アルゴリズムの解説 各種ゲームプログラム解析 FF、ドラクエ、ロマサガのプログラムの解析。乱数の計算など ダメージ計算あれこれ(http://ysfactory.nobody.jp/ys/prg/calculation_public.html) ダメージの計算式 エンカウントについて考えてみる エンカウント(マップでの敵との遭遇)の処理方法いろいろ RPGの作り方 - ゲームヘル2000 RPGのアルゴリズム ドルアーガの塔 乱数の工夫の

    ジャンル別ゲームの作り方とアルゴリズムまとめ - ネットサービス研究室
  • プログラミング談義 - nodchipの日記

    今日大学で海外から研究室に来ている研究員の方とお話しする機会があった。最初は学術的な話ではなく単なる雑談だったのだが、雑談の内容が一転して研究員の研究分野の話になった。 話していた内容はプログラミングの事。特に日でのプログラミング教育はどのように行われているのか、自分がプログラミングを勉強したときはどのように勉強して行ったのかといった事だった。 そして、自分がプログラミングをするときにはどのように考えながら行うかという話になったとき、急に研究員の顔色が変わった。その研究員の研究内容は「プログラミングにおける知覚認識」だったのだ。 自分が話した内容はこうだ。 自分がプログラミングをするときには「中間言語」のようなものを使う。以下中間言語といったときは、自分の中での中間言語を指す。 中間言語は自然言語とコンピューター言語の間にある道具である。中間言語の中の一番細かい要素は「シーケンス」「条件

    プログラミング談義 - nodchipの日記
  • perl,javascript and more - evalは最後の武器 : 404 Blog Not Found

    2009年02月08日01:00 カテゴリLightweight Languages perl,javascript and more - evalは最後の武器 うーん、そうなのだけど.... メタプログラミングとは - Perl入門〜サンプルコードによるPerl入門〜 メタプログラミングとはソースコードを生成するプログラミングのことです。メタプログラミングによって生成したソースコードは、eval関数で実行することができます。 evalだけがメタプログラミングの技法ではないし、またevalはその威力ゆえ最後の選択肢とすべきだ。 #!/usr/local/bin/perl use strict; use warnings; use Benchmark qw/timethese cmpthese/; cmpthese( timethese( 0, { eval => sub { no warn

    perl,javascript and more - evalは最後の武器 : 404 Blog Not Found
  • http://lowlife.jp/yasusii/stories/8.html

  • On Lisp

    Paul Graham著,野田 開 訳 前書き 拡張可能なプログラミング言語 関数 関数的プログラミング ユーティリティ関数 返り値としての関数 表現としての関数 マクロ いつマクロを使うべきか 変数捕捉 マクロのその他の落し穴 古典的なマクロ 汎変数 コンパイル時の計算処理 アナフォリックマクロ 関数を返すマクロ マクロを定義するマクロ リードマクロ 構造化代入 クエリ・コンパイラ 継続 複数プロセス 非決定性 ATNを使ったパージング Prolog オブジェクト指向Lisp パッケージ 翻訳者 野田 開のサイト 原著者Paul Graham氏のサイト Copyright (c) 2003-2005 野田 開     NODA Kai <t50473@mail.ecc.u-tokyo.ac.jp>

  • Open-Closed Principle とデザインパターン

    1999/09/03 更新 石井 勝 さて,このセクションではデザインパターンを統一的に理解するために,「 Open-Closed Principle (OCP) 」 という設計ルールに基づいてパターンを眺めてみることにします.まず OCP の意味と解説を行い,その後デザインパターンを OCP の観点から見てみます.実は,デザインパターンのうちの多くは OCP を満たすために用意されたものと考えることができるのです.このセクションでは, OCP を理解し,数あるデザインパターンの中からどういう場合にどのパターンを使うのが一番効果的なのかを考えます. GoF のデザインパターンは,全部で 23 個ものパターンがあります.このデザインパターンは,多くの局面で繰り返し現れる設計を抽出したものですから,オブジェクト指向のエッセンスを集めたものだと言えるでしょう.オブジェクト指向には,カプセル化

  • 「『単調な仕事を自動化したい』という“態度”が技術者には必須」,永和システムマネジメント角谷氏 | 日経 xTECH(クロステック)

    「『単調な仕事を自動化したい』という“態度”が技術者には必須」,永和システムマネジメント角谷氏 Developers Summit 2006(デブサミ2006) 「キー入力がやたら速かったり,記憶力がよかったり,機械的な作業を間違わずにできたりすることは,優秀な技術者になるのを妨げるかもしれない」。永和システムマネジメントの角谷信太郎氏は2006年2月10日,東京・目黒で開催された開発者向けカンファレンス「Developers Summit 2006(デブサミ2006)」の講演でこう語った。技術者には,単調な仕事をコンピュータにより自動化する「プロジェクト・オートメーション(PA)」の考え方が必須だという。 角谷氏は,オブジェクト指向やソフトウエア設計に造詣の深かった故 石井勝氏が,技術者の必須項目として挙げていた2項目をまず紹介。石井氏が挙げる「同じことを2度しない(Only and O

    「『単調な仕事を自動化したい』という“態度”が技術者には必須」,永和システムマネジメント角谷氏 | 日経 xTECH(クロステック)
  • まつもと直伝 プログラミングのオキテ 第6回 メタプログラミング:ITpro

    今回は「プログラミングをプログラムする」メタプログラミングについて学びます。メタプログラミングを利用すると,動的にメソッドを追加するなど,実際のアプリケーション作成に役立つ処理が簡単に実現できます。メタプログラミングと小言語の関係についても解説を加えました。 今回はメタプログラミングを扱います。メタとはギリシャ語で「間に,後に,越える」などを意味する接頭辞「meta」に由来する言葉で,「超越」,「高階」などの意味があります。例えば,Rubyをはじめとする多くのオブジェクト指向プログラミング言語では,「クラスのクラス」のことを「メタクラス」と呼びますし,他のオブジェクトを支えるクラス・オブジェクトなどのことをメタオブジェクトと呼ぶこともあります。 メタプログラミングとは,プログラミングをプログラミングすることです。そんなことが何の役に立つのかと感じる方もいらっしゃるでしょう。今回は一見して何

    まつもと直伝 プログラミングのオキテ 第6回 メタプログラミング:ITpro
    LoLo
    LoLo 2009/01/24
    アプリケーションを作ることは,そのアプリケーションの問題領域の語彙をどんどん定義していき,最後にその語彙を使って問題解決手段を記述することにほかなりません。
  • 分裂勘違い君劇場 - 劇的に生産性を向上させるメタオブジェクト技術とRuby on Railsの陳腐化の宿命(Java、C#)

    ■この記事で取り上げているトピックハイライト■ なぜ、メタオブジェクトを自分自身で使いこなせるようになると、日常のプログラミング生産性が大きく向上するのか? なぜ、メタオブジェクト技術を使うと、分散オブジェクト、Rails、DI、ORマッピング、Webサービスなどの、大きく生産性を向上させる仕組み自体を自分でつくれるのか? C#のどのメタオブジェクト機能をどのように使えば、簡単に「C# on Rails」を作れるのか? なぜ「Ruby on Rails」は陳腐化してしまう運命にあるのか? 「Ruby on Rails」を陳腐化させるアーキテクチャとはどのようなものなのか? ■構成■ まず、Ruby on Railsと同様のフレームワークを、C#で作ったとしたら、どのようになるのかという例題を通して、メタオブジェクト機能、つまり、リフレクション、カスタム属性、CodeDOM、パーサジェネレー

    分裂勘違い君劇場 - 劇的に生産性を向上させるメタオブジェクト技術とRuby on Railsの陳腐化の宿命(Java、C#)
  • 頭の中にプログラムを入れる

    Paul Graham / 青木靖 訳 2007年8月 いいプログラマは、自分のコードに集中しているとき、それを頭の中に保持しておくことができる。数学者が取り組んでいる問題を頭の中に入れているのといっしょだ。数学者は学校で子供たちが習っているように、紙の上で問題の解いているわけではない。彼らは多くの部分を頭の中でやっているのだ。問題の領域をよく把握しようと努めることで、普通の人が記憶にある育った家の中を歩き回れるように、数学者は頭の中で問題空間を歩き回ることができる。最高の状態で行われるプログラミングもそうだ。プログラムの全体を頭の中に入れたなら、それを思い通りに操れるようになる。 これはプロジェクトのはじめにおいては特に価値がある。それはプログラムを作り始めるときに最も重要なことが、やっていることを変えられるということだからだ。単に問題の解き方を変えるという ことではなく、解いている問題

    LoLo
    LoLo 2009/01/22
    プログラマは 、少なくとも部分的には、書いている言語によってプログラムを考える。言語が簡潔であるほど、プログラムは短くなり、頭にロードして保持するのがより容易になる。
  • るびま

    『るびま』は、Ruby に関する技術記事はもちろんのこと、Rubyist へのインタビューやエッセイ、その他をお届けするウェブ雑誌です。 Rubyist Magazine について 『Rubyist Magazine』、略して『るびま』は、日 Ruby の会の有志による Rubyist の Rubyist による、Rubyist とそうでない人のためのウェブ雑誌です。 最新号 Rubyist Magazine 0058 号 バックナンバー Rubyist Magazine 0058 号 RubyKaigi 2018 直前特集号 Rubyist Magazine 0057 号 RubyKaigi 2017 直前特集号 Rubyist Magazine 0056 号 Rubyist Magazine 0055 号 Rubyist Magazine 0054 号 東京 Ruby 会議 11 直

  • 各種チートシートまとめ - goinger的日記

    なんとなく便利そうなのを探してまとめてみた。 リンク切れおそろしい プログラミング関連 C, CPP, C# Cheat Sheets C, CPP, C#のチートシートがたくさんある 249 Prototype Dissected prototype.js チートシート 347 Haskell Cheatsheet Haskell 130 command line ruby cheat sheet ruby commandline チートシート 680 ruby-on-rails-cheat-sheet/ Railsのチートシート 701 google関連 google guide 検索オプションの説明とか 1358 Google Guide Quick Reference Google検索ガイド 9657 google help: cheat sheet google家から提供 40

    各種チートシートまとめ - goinger的日記
  • 満足せる豚。眠たげなポチ。:TDD は企画には使うなってことでいい?

    あかさたさんの「TDD は新規性の高いサービス開発には適さない」にとても同意。 What(何を作るかっていうゴール) が決まっているかどうかに依存するってことだよね。つまり、naoya さんが言う「新しい機能を作っているときや、新しいサービスを作っているとき」は設計でも実装でもなく、質的に企画の状態だから TDD とか関係ないと。たまたまコードで表現できる人だから企画をコードで検証している(プロトタイプ作りながら取捨選択してサービスや機能をデザインしている)だけなんでしょう。 個人的に今まで一番「BDD/TDD すばらしい!」と感じたのは、ある機能用のライブラリを書いているとき。開発時の制約で VB6.0 を使っていたんだけど、Collection にイライラしたので Ruby の Array を移植した。 まず、要素の追加とか要素へのアクセスとかの基機能についてこつこつとテストを書い

  • 複数の ActiveRecord オブジェクトをまとめて扱う - ursmの日記

    台北市立動物園と迪化街めぐり 子連れ台湾#5 年越し台湾旅行5日目、レジャーや友人との事を楽しむ日です。前日の様子はこちら www.oukakreuz.com 台北市立動物園へ パンダ館 パンダが見られるレストラン 迪化街へ 林茂森茶行でお茶を購入 小花園で刺繍グッズを購入 黒武士特色老火鍋で夕 台北市立動物園へ 松…

    複数の ActiveRecord オブジェクトをまとめて扱う - ursmの日記
  • アスペクト指向ソフトウェア開発とそのツール

    情報処理 45巻1号、pp.28-33(平成16年1月号) 特集:モデリングとツールを駆使したこれからのソフトウェア開発技法 〜モデル駆動開発手法を中心として〜 「アスペクト指向ソフトウェア開発とそのツール」 千葉 滋 東京工業大学・大学院情報理工学研究科 オブジェクト指向は理想論? モデル駆動による開発手法では、まずはじめにモデリングありき、である。開発したいシステムをうまくモデル化できなければ、その先へ進めない。 一般に、モデリングはオブジェクト指向でおこなわれる。しかし、近年の研究により、オブジェクト指向では、必ずしも全てのシステムをうまくモデリングできないことが指摘されるようになってきた。 非常に直感的に説明すると、オブジェクト指向ではシステムを全体から部分へ階層的に分割する。システム全体は、いくつかのコンポーネントからなり、コンポーネントは、いくつかのサブコンポーネントからなり、

  • Request Denied

    Request Denied For Security Reasons The request has been denied by the web application firewall due to a security policy violation. Request information have been logged to investigate the incident. If you think this is an error on our side, please contact us.

  • Ruby on Railsの作者より:高まった生産性を仕事を余計にこなすためではなく自分の将来に向けて使おう - himazu blog

    IT ConversationsでRuby on Railsの作者デービッド・ハンソンが2008年5月にRailsConfでおこなった講演が配信されている。そして、以下でも聞ける。 RoRの思想についての言及が冒頭にあるが、大部分は開発者の身の処し方についての講演である。その部分の概要は以下の通りである。 RoRは他のフレームワークや開発手法に比べて生産性について依然として優位性があり、RoRを使って開発していると「余剰開発力」を享受できる。しかし、その状態は永遠には続かない。遅かれ早かれ以下のどれかが起こるから。 他の言語/フレームワークがRoRを凌駕する RoRを凌駕する新たなフレームワークが登場する RoRがメインストリームになる 幸い、どれもすぐには起こりそうになく、RoRでの開発はまだしばらく生産性の点で有利である。その優位性によって生ずる余剰開発力をいかに活用すべきだろうか。も

    Ruby on Railsの作者より:高まった生産性を仕事を余計にこなすためではなく自分の将来に向けて使おう - himazu blog
  • ライブドア、レコメンドエンジンをオープンソースで公開

    ライブドアは12月24日、開発者向けに汎用レコメンデーションエンジン「Cicindela」をオープンソースとして公開した。ソースコードはGoogle Code上でMIT Licenseにて配布している。 Cicindelaは、「このウェブページを見た人はこんなページも見ています」といったおすすめ機能を既存のサービスに追加できるように、ライブドアで独自開発したレコメンデーションエンジン。 PerlMySQLで作成する際のアプリケーションに適し、id値のみをやり取りするhttpベースの簡潔なAPI、数種類のフィルタを自由に組み合わせることができる高いカスタマイズ性が特徴だ。 ライブドアが提供する下記のサービスで稼動実績がある。 livedoor ニュース livedoor グルメ livedoor クリップ youbride DLsite 今後はCicindelaをサイトで導入したいという開

    ライブドア、レコメンドエンジンをオープンソースで公開
  • 【特集】iPhoneアプリケーション開発入門 (1) 2008年の一大トピックス | エンタープライズ | マイコミジャーナル

    2008年の一大トピックス 2008年のIT分野のトピックを振り返るときに、iPhone 3Gの登場は外すことができないだろう。3Gネットワークに対応して、広く世界中で販売されたこの携帯電話は、瞬く間にヒット商品となった。 注目すべきはデバイスとしての機能だけではない。サードパーティにアプリケーション開発の門戸を開くべく、iPhone SDKが公開。さらに、開発したアプリケーションを世界中で販売できるApp Storeもオープンした。これによりiPhoneはもっともホットなプラットフォームとなり、現在までに登録されたアプリケーションは10,000。ダウンロード総数は1億という、驚くような数字が記録されている。 iPhoneとApp Storeは、ユーザだけでなく開発者にとっても魅力的だ。個人や資金力のない会社でも、開発した製品を世界中に問うことができるのだ。アイディアと技術力を武器にし