タグ

programmingに関するjapo99のブックマーク (63)

  • The Nice programming language

    Nice is a new programming language. It extends the ideas behind object-orientation in order to better support modular programming and static type safety. It also incorporates features from functional programming, and puts into practice state-of-the-art results from academic research. This results in more expressivity, modularity and safety. Safety Nice detects more errors during compilation than e

  • L2Lisp in Ruby:CodeZine

    はじめに P.Graham著『On Lisp』に示されているように、現代的なLispプログラミングでは静的スコープ(字句的スコープ)と末尾呼出し(末尾再帰を含む)の最適化のもとでのマクロが重要な意味をもちます。しかし、今まで処理系作成の初心者が内部に手を入れやすい手頃な大きさの実装が事実上ありませんでした。 ここでは、そういったモダンな特徴を備えた小さなLispインタープリタL2LispをRubyで作ってみます。L2Lisp(Little Lambda Lisp)は、Lispの理論的背景であるラムダ算法(lambda calculus)に対し、有力なLisp方言であるSchemeと同程度に忠実である一方、その他の点では広く普及しているEmacs Lispのサブセットとしたオリジナルの小型Lispです。 実行例としてtak関数を定義し、実行する様子を示します。Ruby以外に必要なのはL2Li

  • Code Golf | Home

  • ワードサラダ技術について

    後半部分が重要で、未来の挙動が現在の値だけで決定され、過去の挙動と無関係である ということです。 さて、実例です。たとえば次の文章を考えてみます。 「通信販売大手セシールは9日、生命保険の販売に格参入する方針を明らかにした。」 まず形態素解析するとこんな感じになります。 通信 名詞,サ変接続,*,*,*,*,通信,ツウシン,ツーシン 販売 名詞,サ変接続,*,*,*,*,販売,ハンバイ,ハンバイ 大手 名詞,一般,*,*,*,*,大手,オオテ,オーテ セシール 名詞,固有名詞,組織,*,*,*,セシール,セシール,セシール は 助詞,係助詞,*,*,*,*,は,ハ,ワ 9 名詞,数,*,*,*,*,9,キュウ,キュー 日 名詞,接尾,助数詞,*,*,*,日,ニチ,ニチ 、 記号,読点,*,*,*,*,、,、,、 生命 名詞,一般,*,*,*,*,生命,セイメイ,セイメイ 保険 名詞,一般

  • javascriptを理解するためのたった2つの大切なこと:改

    9割ぐらいはハッシュ何がハッシュなのかjavascriptで存在するほとんどのオブジェクトの実体はハッシュだよ。 var arr = [0,1,2,3]; とかをみると配列(人によってはリスト)に見えると思う。でも実際は違うんだ。 これは var has = {0:0,1:1,2:2,3:3}; と基的には等価なんだ。ただちょっと束縛されているメソッド(インターフェイス)が違うだけ。 ためしに arr[4] = 4; arr['x'] = 'string'; arr[-1] = -1; としてみよう。 Firebugで確認してみると[0, 1, 2, undefined, 4]というような値がかえってくるよ。 でもarr[-1]やarr['x']の値は保存されてないのかな?そんなことはないちゃんとアクセスできるんだ。 それどころかarr.xで'string'がかえってくるんだ。 別の例を

    javascriptを理解するためのたった2つの大切なこと:改
  • 言語をドラえもん化 - Yappo::タワシ

    ジャイアン:Java スネ夫:関数型言語 のび太:PHP のび太のママ:Ruby ドラえもん:Shell あと続き誰か頼む

  • http://ja.doukaku.org/

  • Sbox Error

    The sbox program encountered an error while processing this request. Please note the time of the error, anything you might have been doing at the time to trigger the problem, and forward the information to this site's Webmaster (webmaster@www.ac.cyberhome.ne.jp).Stat failed. /usr/local/apache2/cgi-bin/~mattn: No such file or directory sbox version 1.10 $Id: sbox.c,v 1.16 2005/12/05 14:58:01 lstein

  • JSON

    https://www.JSON.org/json-en.html

  • 小野和俊のブログ:そして、ペア・プログラミングが始まる

    ここ数日、私はずっとペアプログラミングをしている。 ペアプログラミング自体は、これまでに何度も経験したことがある。 しかし今回の試みが今までと違うのは、 一日中、ペアプログラミングしかしないという点である。 1セット1時間半、15分の休憩を入れて、 ドライバーとナビゲーターを交互に入れ替えて毎日4セットやる。 このところ、これを何日も続けている。 こうやって、ある程度ストイックに続けてみることで、 わかってきたことがある。 それは、ペアプログラミングにはメガトン級の破壊力があるということだ。 プログラマーは絶えず誘惑にさらされている。 調べ物でウェブを見たついでに何時間もネットサーフィンしてしまったり、 考えたことをメモするついでに2時間かけてブログを書いてしまったり、 仕事の用事で知人に IM したついでにしばらくだべってしまったり、 Twitter に書き込んだついでに Friends

    小野和俊のブログ:そして、ペア・プログラミングが始まる
  • Part1 オープンソース/C言語に学ぶ「ソースコードの読み方」:ITpro

    「Code Reading―オープンソースから学ぶソフトウェア開発技法」(毎日コミュニケーションズ発行,写真1)というがあります。私はこのの監訳者ですから,やや自画自賛になってしまいますが,ソースコードの読み方を主題にしたはほかにはあまりありません。技法からツール,データ構造,アーキテクチャ,さらには実際にコードを読んで利用する実例まで紹介している網羅的で良いだと思います。 このの「はじめに」で「達人プログラマー」として知られるDave Thomas氏は以下のように書いています。 他人の作品を読まなかった偉大な作家,他人の筆づかいを研究しなかった偉大な画家,同僚の肩越しに技を盗まなかった腕のよい外科医,副操縦席で実地の経験を積まなかった767機長――果たして,そんな人たちが当にいるのでしょうか? たしかにその通りです。ソフトウエア以外の領域では修行することとはすなわち,他の人の

    Part1 オープンソース/C言語に学ぶ「ソースコードの読み方」:ITpro
  • アップル ヒューマンインタフェースガイドライン

    アップル ヒューマンインタフェースガイドライン 原文:Apple Computer Inc. 訳:かろでん☆みゅーあ 2006-06-28 はじめに アップル ヒューマンインタフェースガイドライン序文 アップルは、強力なコアファウンデーション、そしてアクアと呼ばれる、目の離せないユーザインタフェースを結びつけた、世界で最も先進的なオペレーティングシステム、Mac OS X を手にしました。 進化した機能と、美的に洗練された色使い、そして透過処理、アニメーションによって、Mac OS Xは新規のユーザにはコンピュータ操作をより容易に、同時にプロフェッショナルユーザには彼らがMacintoshに期待する通りの生産性を提供します。 ユーザインタフェース、すなわちふるまいと外見は、よく練られた緊密なユーザ体験を、Mac OS X向けに開発された全てのアプリケーションに利用できるようにします。 これ

  • 最速インターフェース研究会 :: つまらなくて役に立つ物を作るということ

    プログラミングできるひとは「ゲーム作れよ」と言われることが多いような気がする。 ぶっちゃけゲームとか作れないし、たぶんウェブプログラマの多くはそうだ。 PerlRubyJavaScriptとかで何万ポリゴン動かしたりできない。 XMLをパースしたり、正規表現で置換したり、そういうのなら得意だ。 ゲームの人らは秒間3億ポリゴンとかやってるのに、何でこんなちまちましたことやってるんだろうと思ったりもする。 なんでこんな事やってるのかというと、面白いからやってるのだけれど、 プログラム書かない人らから見ると何やってるのか全然面白さが分からない、 3Dポリゴンが動いたり(乳が揺れたり)する方が面白いに決まってると思ってる。 彼らは失礼極まりなくて、リーナストーバルズに対しても 「お前の作ってるものは良く分からないから、ゲーム作れよ」って言うだろうね。 そういう連中を皆殺しにしないことには俺の人

  • オブジェクト指向プログラム言語としてのJavaScript

    このページでは、JavaScriptのオブジェクト指向言語としての側面を研究します。 JavaScriptは、HTMLの拡張という側面が注目されていますが、 プログラム言語として見た場合にも、興味深い独自の特徴がたくさんあります。 このページでは、これらJavaScriptの言語としての特性、 特にオブジェクト指向言語としてJavaScript を見た場合の特徴について詳しく研究を試みます。 JavaScriptは、ほぼ完全なオブジェクト指向言語です。プログラマによるクラス定義、プロパティ定義、メソッド定義ができます。継承は、言語の基機能としては用意されていませんが、基機能の組み合わせにより実現できます。 メソッドのバインディング(binding)はレイトバインディング(late binding)です。これは、JavaScriptが変数の型のない言語だからです。 JavaScript

  • まつもと直伝 プログラミングのオキテ---目次 - まつもと直伝 プログラミングのオキテ:ITpro

    第0回 あらためてRuby入門 まつもとゆきひろ氏自身による「Ruby入門」をお届けします。日経Linuxの連載開始前の特別企画(2005年4月号)として,Rubyが他のスクリプト言語やオブジェクト指向言語とどこが違うのか,なぜ便利なのかを中心に解説してもらったものです。 ● 基と他言語との違い ● 実装とRuby誕生の秘密 第1回 プログラミングとオブジェクト指向の関係 プログラマを目指す人々の中にも,「オブジェクト指向は難しい」とか,「なかなか分からない」という印象を持つ方が多いようです。そこで,Rubyを題材にオブジェクト指向という考え方について説明していきます。 ● その1 ● その2 ● その3 第2回 抽象データと継承 オブジェクト指向プログラミングを構成する3原則のうち,前回は「ポリモーフィズム」を学びました。今回はオブジェクト指向の歴史を復習した後,残りの「データ抽象」と

    まつもと直伝 プログラミングのオキテ---目次 - まつもと直伝 プログラミングのオキテ:ITpro
  • Cocoa はじめの一歩

    Cocoa はじめの一歩    はじめに  MacOSXになってからプログラミング環境が無料で手に入るようになりました。学割でも数万円はするソフト(CodeWarriorなど)を苦労して買っていた昔とは隔世の感があります。 せっかくタダなんだからちょっとやってみよう!と興味を持たれる方は多いのではないかと思います。 現在Cocoaに関して優れたがいくつか出版されていますが、どれもプログラミング、特にCに関して基礎的な知識が要求されます。ではまずはCを勉強してみよう、と思ってもWindowsをベースにした説明ばかりで(コードそのものは同じなのですが)完全な初心者には「Macではどうすれば良いの?」と意外に敷居が高いのが現状です。 ここでは「完全な0から」始めたい人向けに簡単なガイドを提供したいと思います。 なお一概にプログラミングといっても現在Macデスクトップアプリケーショ

  • ふぃふmemo : 皆さんもゲームプログラマーになりませんか?

    最近はゲームプログラマーがどこも人手不足らしいので、いかにゲームプログラマーが素晴らしい職業かを現職の私が伝えて業界を活性化させてみよう!というアーティクルです。 これを読んでゲームプログラマーになろう!と思ってくれる人が一人でも増えてくれれば幸いです。 1.仕事と称してゲームが好きなだけ遊べます。 そりゃもう好きなだけ遊べます。 特に、締め切り前のクソ忙しい時期は、これでもかという程遊べます。 そして、運良くバグなんか見つけようもんなら、担当の方から温かいお礼の言葉を貰えるに違いありません。 2.オフピーク通勤が出来ます。 一般サラリーマンの方は満員電車で毎日通勤をしていて、ホントお疲れ様ですねーと思います。 我々ゲームプログラマーは、毎日がオフピーク通勤です。 帰宅ラッシュなんかに巻き込まれることはまずあり得ません。 ただ気を付けなくてはいけないのは、あまりにオフピークすぎて終

  • 第10回 麻雀の役を判定する:ITpro

    図1に示す(1)から(3)までの麻雀(マージャン)の手牌があります。「あがり牌」はすべて山からツモったものとし,リーチはかけていません。またドラやハイテイ*1なども関係ないものとします。これらの役を判定して,親の場合の点数を計算するプログラムを作ってください。 「ややこしや~ややこしや~」というのは野村萬斎ですが,思わずそううなってしまうことがプログラミングをしているとよくあります。今回の麻雀の役判定は,考えれば考えていくほどややこしく,そうしたものの代表と言えるでしょう。排他処理や優先順位が複雑にからんでいて一筋縄ではいきません。 今回はややこしい組み合わせを解決する方法を考えてみます。麻雀になじみのない方も,ちょっとしたパズル気分で試してみてください。 麻雀の役を考える 麻雀を知らない方のためにルールをおおざっぱに説明しておきましょう*2。麻雀の牌には,大きく分けて「萬子(マンズ)」「

    第10回 麻雀の役を判定する:ITpro
  • 「攻殻機動隊」「電脳コイル」の世界を実現! - ARToolKitを使った拡張現実感プログラミング

    仮想世界と現実世界を融合する技術は,拡張現実感(Augmented Reality:AR)と呼ばれています. おおげさな言い方をするとARは現実の世界に情報を「上書き」することができる技術です. アニメや映画にでてくる「電脳」を想像してみてください. 手のひらの上に3Dキャラクタを表示したり,現実の世界でデジタル・データに触れてみたり… そんな魔法のような技術です. ARToolKitは,ARアプリケーションの実装を手助けするC言語用のライブラリです. ARToolKitを使うと,紙に印刷されたパターンをカメラで読み取り, その上に3Dオブジェクトをオーバーレイ表示するアプリケーションが簡単に作れます. 来は非常に敷居の高い技術なのですが,このライブラリは「難しい部分」の処理を 全てやってくれます. …というわけで今回はARToolKitを使って近未来の技術 「拡張現実感」 を体験してま

  • Web::Scraper - naoyaのはてなダイアリー

    Today I've been thinking about what to talk in YAPC::EU (and OSCON if they're short of Perl talks, I'm not sure), and came up with a few hours of hacking with web-content scraping module using Domain Specific Languages. 使ってみたよ! #!/usr/local/bin/perl use strict; use warnings; use FindBin::libs; use URI; use Web::Scraper; use Encode; use List::MoreUtils qw/uniq/; my $links = scraper { process 'a.key

    Web::Scraper - naoyaのはてなダイアリー