programmingに関するtomerunのブックマーク (158)

  • ソフトウェア/プログラミング/プログラミングコンテスト - vvphome

    2024-01-10 PC/DAS 2022-03-10 リンク/ハードウェア/Cool Handmade Hardwares このサイトについて 2021-01-31 PC/周辺機器/スキャナ/fi-5650c/fi-5750c 2017-10-04 Pukiwiki 2017-09-26 PC/X68k 2017-08-23 BBS 2017-08-14 ハードウェア/DS-8617 2017-07-12 PC/VAIO TypeT (VGN-TX90PS) 2017-06-21 VVPHOME

  • ICFP Programming Contest

  • C言語をブラウザで実行、Ruby/Python/Perlも然り | エンタープライズ | マイコミジャーナル

    Mozillaの研究部門に所属しているAtul Varma氏のブログにおいて、Running C and Python Code on The Webのタイトルで興味深い内容が紹介されている。タイトルだけ見るとWebアプリケーションでC言語やPythonのコードを実行すると言う話のようだが… 同氏のブログによれば、Adobe Systems, Scott Petersen氏が現在C言語で作成したコードをTamarin仮想マシンで実行できるようにするツールチェインを開発しており、近々オープンソースソフトウェアとして公開するという。TamarinはAdobeからMozillaへ寄贈されたJavaScriptエンジンだ。Firefox 3.0には取り込まれていないが将来的にはTamarinベースのJavaScriptエンジン実装がFirefoxに取り込まれるとみられている。時期は未定だがFire

  • 意味のわかるオブジェクト指向(1) プログラミング言語は、巨大なシステムを開発するために進化してきた - またお前かよ!

    プログラムは書けるけどオブジェクト指向がどうもよくわからないという人に オブジェクト指向の価値は多態性にある ことを理解してもらうためにこの連載を書きます。このことが理解できたら、次はデザインパターンに触れて多態性がいかに役立つかわかるようになると、ものすごく理解が深まることでしょう(この連載の中でも、少しだけデザインパターンを紹介する予定です)。 連載では、ずっと昔のプログラミング言語の紹介から始めて、オブジェクト指向に向けて進化する中で何が変わったのかを解説していきます。この過程は(デザインパターンを学んでいくところまで含めて)まさに僕がプログラミングを学んできた過程そのものにほかなりません*1。自分では、自分はちょうどいい時代に生まれてちょうどいい段階からプログラミングを習得できたと感じているので、この過程を紹介する次第です。 プログラミングの初心者にとって、オブジェクト指向プログラ

    意味のわかるオブジェクト指向(1) プログラミング言語は、巨大なシステムを開発するために進化してきた - またお前かよ!
  • プログラミングは目的でなくて手段であるべきか - 文字の洪水に溺れながら

    僕はプログラミングのプの字もわかりません。 ぎりぎりHTMLを2年ぐらい前にHPを立ち上げた時にいじってみたくらいで、それすら、もうすっかり忘れてるぐらいです。 正直、C言語?何それ喰えんの?見たいな感じです。 ただし、そんな僕でも重度のネットユーザーだからかプログラミングの便利さはわかります。はてぶに始まりちょっとしたアイディアでも自分の思い通りの指令を動かすソフトができるのならとても便利なんだろうなぁと、PCをいじっていると思うことがよくあります。 そんな中でこの頃考えるのがプログラミングというのはそもそも目的なのか、手段なのかっていうことです。 そもそも、僕の周りのプログラミングをやっている人になぜプログラミングをやっているのですか?と聞くと十中八九「面白いから」という返事が返ってきます。 正直な話、「便利だから」って言う答えは聞いたことがありません。 だからこそ、「あぁ、みんなはプ

    プログラミングは目的でなくて手段であるべきか - 文字の洪水に溺れながら
  • ガベージコレクションの実装法と評価

    1.はじめに プログラミング言語とはシステム化する対象物を抽象化し、コンピュータで処理可能なコードを記述するために用いる人工言語である。プログラミング言語はコンピュータの機械語と一対一の対応をもったアセンブラから始まり、コンパイラを用いて機械語に翻訳することを前提としたコンパイラ言語、インタプリタと呼ばれるプログラムがソースコードを解釈し実行するスクリプト言語と、記述できる抽象度を高める方向へと進化してきた。 プログラミング言語はその存在理由から、より抽象度の高い記述が行えること、すばやい開発を行える事が求められる。抽象度の高い記述とは、プログラムがどういう処理を行うか(HOW)ではなく何の処理を行うか(WHAT)を記述しやすい構文、機能を持っていることを、すばやい開発とは記述性の高さ、コードの密度の高さ、バグの発生しにくい構文、機能を持っていることをさす。 この抽象度の高い記述、すばやい

  • 無題ドキュメント

    今回は、もっとも基的であるわりには、意外と問題の多い「継承」について考えてみたいと思います. 型の拡張は、2つの機構を使って行われます.すなわち継承と総称です. 継承は下位型による多相性(Subtype Polymorphism)を実装し、総称はパラメータによる多相性(Parametric Polymorphism)を実装します. 継承は大きく型継承と実装継承(クラス継承)に分類できます.この場合、型とクラスの関係に注意が必要です. 型はオブジェクトのインターフェイス、すなわちオブジェクトの振る舞いの定義です.他方、クラスはオブジェクトの内部状態とオペレーションの実装を定義しています.クラスは同時に型を定義する場合もありますが、言語によっては必ずしもそうとは言い切れません. 型継承は所謂is-a関係の継承で特化specializeです.これは、インターフェイスの継承ともとれますし、

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

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

  • 言語のGC機能と参照カウント (前編) - moriyoshiの日記

    たまにはちゃんと書いたほうがいいかなと思って書いてみる。 あらまし 原始的な参照カウントベースのガーベジコレクションは、循環参照が発生すると、その参照に含まれるオブジェクトを回収できないという厄介な問題を抱えている。循環参照とは、1つ以上のオブジェクトが環状の参照関係を形成している状態のことで、このような参照を持つオブジェクトは、やがてルート (ある時点で言語ランタイムが管理しているすべてのスコープと考えてもいい) から辿りつけなくなって、解放されずにリークしてしまう。 この問題はいろんな LL 言語に見られる。 Perl の場合 use Devel::Peek qw(Dump); sub make_circular { my $foo = {}; my $bar = {}; my $baz = {}; $foo->{'bar'} = $bar; $bar->{'baz'} = $baz;

    言語のGC機能と参照カウント (前編) - moriyoshiの日記
  • 言語の進化について語る Bjarne Stroustrup 氏

    This browser is no longer supported. Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support. Interview++ Bjarne Stroustrup on the Evolution of Languages Howard Dierking Contents Thoughts on Language Language Trends Methodology and Best Practices Looking toward the Future Books and Phones Every once in a while, an evolutionary leap rapidly advanc

    言語の進化について語る Bjarne Stroustrup 氏
  • inforno :: Scalaでスタック指向言語をサクッと実装する

    Scalaにはご存知のとおり scala.util.parsing.combinator というパーサコンビネータライブラリがある。さらには scala.util.parsing.ast というのもあるわけだけど、これは激しく開発中な感じ。Scalaはバージョンがあがるとこういう開発中ライブラリはごそっと変わったりするので今はおいておく。ちなみに、2.7.1では前のパーサコンビネータは scala.util.parsing.combinatorold といういかにも使いたくない名前にされてしまった。 パーサコンビネータといえば言語処理系だ(そうか?)。というわけで scala.util.parsing.ast は置いておいて、とりあえずASTについてほとんど考える必要がない、簡単なスタック指向言語を実装してみることにする。実行はScala 2.7.1.finalで。 スタック指向言語とは

  • プログラム言語間の言語変換 - SCHWARZGEIST

  • Hadoop、hBaseで構築する大規模分散データ処理システム:CodeZine

    はじめに この連載では、大規模分散計算フレームワーク「Hadoop」と、その上につくられた大規模分散データベース「hBase」の仕組みと簡単なサンプルアプリケーションを紹介します。HadoopとhBaseは、Googleの基盤ソフトウェアのオープンソースクローンです。機能やコンセプトについては、Googleが発表している学術論文に依っています。 これらの学術論文によると、Googleでは大規模分散ファイルシステム「Google File System」、大規模分散計算フレームワーク「MapReduce」、大規模分散データベース「BigTable」、分散ロックサービス「Chubby」という4つのインフラソフトウェアが使われています。 図1にGoogleの基盤技術間の依存関係、そしてそれに対応するOSSの対応関係を示しました。まずは対応するGoogleの基盤技術それぞれの機能や特徴をざっくりと

  • 「怠慢はプログラマの美徳」というけれど - kなんとかの日記

    JavaJava信者とスクリプト言語屋の間には、「めんどくさい」と感じるセンスについて超えられない壁が存在している。 質的でない事柄に関する記述があったときに、スクリプト言語屋は「めんどくさい」と感じ、JavaJava信者はそれを感じないか、または「これは必要な冗長性だ」と気で思い込んでいる。 前にとり上げたけど、アクセッサの記述がその典型例。質的でない記述がずらっと並んでいることに、JavaJava信者はホントに何も感じないのだそうだ。あれがどれだけ readability を下げているか、まったく分かっていない。 また System.out.print() もそう。たかが print 文のくせして、なんで System.out.print() と書かないといけないのか。来であれば、Java1.5 のタイミングで package java.util; public clas

    「怠慢はプログラマの美徳」というけれど - kなんとかの日記
  • PofEAA's Wiki - (ファウラー | 読書会)

    PofEAAのWikiです。Martin Fowler氏とAddison-Wesley Pub Coの許可を得て、 パターンカタログの翻訳を行っています。bliki_jaと同じくどなたでも参加可能ですので、是非参加してみてください ;-) ※このサイトは書籍の邦訳とは一切関係ありません。 ■ PofEAAのパターンカタログ and PofEAAのパターンカタログ(邦訳版)ここから読み始めるとよいでしょう。対応表もあります。 ■ 読書会 第12回の開催予定は未定です。 ■ PofEAA読書会メーリングリスト読書会に関する話題を扱っていますが、読者会への参加を強制するものではありません。興味のある方の参加は随時受け付けています。

  • Programming Languages

    Programming Languages This course is a GIGA course in this semster. English(HTML) English(PDF) 日語(HTML)

  • http://www.wikiroom.com/tpircs/index.php?%A5%E1%A5%BD%A5%C3%A5%C9%A5%DD%A5%A4%A5%F3%A5%C8%B4%B9%BB%BB

  • セキュアコーディング:そこにある見えない大問題 - builder by ZDNet Japan

    この2週間ほど、私は漠然とソーシャルコンピューティング、クラウドコンピューティング、そして伝統的なプロセスに基づくシステムをつなげようと試みていた。この話には多くの切り口があるが、私の意識からすっかり抜けていたのがセキュリティの観点だ。私は特にこの分野の専門だと言うつもりはないが、これがビジネスソフトウェア開発で不可欠なコンポーネントだということは知っている。まずは最近の出来事や記事を追ってみよう。 4月8日に出た大きなニュースに、Googleがクラウドコンピューティングのためのアプリケーションエンジンを公開したというものがある。また、ラスベガスで開かれたGartner Emerging Technologies Conferenceについて書いた記事で、Larry Dignan氏は企業は確かにGoogleのクラウドに興味を持っているとしながらも、次のように記している。 しかし、問題点もあ

  • リソースをケチるための邪道Javaプログラミング | 株式会社シンメトリック公式ブログ - 携帯開発から生まれる技術情報

    リソースをケチるための邪道Javaプログラミング|株式会社シンメトリック公式ブログ - 携帯開発から生まれる技術情報| 携帯サイト開発から生まれる技術情報ブログ 現在のJavaでは資源の節約があまり意識されなくなってきていますが、 今でも少ない資源(メモリ・CPUVRAM等のリソース)の下でJavaを使ったプログラムのニーズはあります。 例えば、今では誰もが持っている携帯電話や家電製品等の組み込み系がそれに当たります。 ここでは、携帯電話でのJavaアプリケーションを例にとって、リソースが少ない環境下で、以前に私が行ったJavaとは言いがたいドケチ・プログラミングの一例を紹介します。 携帯電話のスペック 下記のURLに、NTTDoCoMoから発売されている携帯電話のスペックが載っています。 下部へ行くにつれて新しくなるのですが、この記事を書いている時点での最高は、アプリサイ

  • 申し込みブラックとは

    キャッシングの申し込みを行うと信用情報機関に申し込みが在った事が記録されることになります。また、キャッシングの利用を開始する事でここでも記録が行われることになります。 信用情報機関と言うのは、キャッシングの申し込み履歴、借入履歴、事故歴などを管理する機関です。 そのため、キャッシングの申し込みを過去に行ったことが在るのかや、借入額がどれくらいになるのかは信用情報を照会する事で一目瞭然となります。 キャッシングの申し込みを頻繁に行う事でお金に困っている人と言う風にみられてしまうのは、申込件数が明確になっているからなのです。因みに、申し込みブラックと言うのは1か月の中で3か所以上申し込みを行っている事を意味しています。 申し込みを行う度に信用情報が追加されていきますので、申し込みを行った金融会社は信用情報を見た時に、短期間に申し込みを多数行っている事が解ります。これにより、お金に困っていると言

    tomerun
    tomerun 2008/04/12
    VBのAnd、Orは短絡評価しない