タグ

ブックマーク / thinkit.co.jp (46)

  • プログラミングは楽しくて仕方がない! 世界三大権威の競技プログラミングコンテスト「AtCoder」を運営する高橋直大氏インタビュー

    プログラミングは楽しくて仕方がない! 世界三大権威の競技プログラミングコンテスト「AtCoder」を運営する高橋直大氏インタビュー 8月27日(木)、「Codeforces」(ロシア)、「Topcoder」(米国)と並ぶ、世界三大権威の競技プログラミングコンテスト「AtCoder」を運営するAtCoder株式会社の高橋直大社長に、オンラインインタビューを行った。 AtCoderをはじめとする競技プログラミングとは、問題の採点方法が事前に示された上で、全員が同じ問題を解くためコーディングを行う。「実際のプログラミング技術」に基づいて点数が付けられ、獲得した点数で順位が決定する。 一方、中高校生向けに開かれているTech Kids Grand PrixやU-22プログラミング・コンテストなどを代表する一般的なプログラミングコンテストでは、社会的課題に対するアイデアをプログラミングし、その成果物

    プログラミングは楽しくて仕方がない! 世界三大権威の競技プログラミングコンテスト「AtCoder」を運営する高橋直大氏インタビュー
  • AI最前線の現場から【スクウェア・エニックス】ゲーム・キャラクターはどのように意志決定するのか

    はじめに 第1回では「キャラクターAI」(キャラクターの頭脳)の全体像を解説し、その中には5つのモジュール(部品)である「認識」「意思決定」「運動生成」「身体」「記憶」があることを見てきました。今回はその続きとして、これらのモジュールを活用して「キャラクターがどのように意思決定しているのか」について見て行きます。 「認識」モジュールのつくり方 世界から知能に情報を取り入れる部分である「センサー」(感覚)は、視覚を「レイキャスト」や「視野領域」によって作ります。レイキャストでは、キャラクターから対象に向かってレイ(直線)を引き、対象との間に障害物があってレイと障害物が交差すると「見えない」と判断します。例えば、キャラクターの頭部からモンスターの中心に直線を引いて岩にぶつかるのであれば、キャラクターからモンスターは「見えない」と判断するのです。もしぶつかるものがなければ、キャラクターからモンス

    AI最前線の現場から【スクウェア・エニックス】ゲーム・キャラクターはどのように意志決定するのか
  • AI最前線の現場から【スクウェア・エニックス】デジタルゲームのための人工知能入門

    はじめに 今回から全4回にわたって、デジタルゲームにおける人工知能について解説します。デジタルゲームとはゲーム機や携帯電話で動くゲームのことで、その世界は水たまりに虫たちが群れるように、湖に貝や魚が息づくように自律した人工知能が息づく場所です。さまざまなキャラクターたちが意志を持って行動し、目には見えなくてもサポートする人工知能たちもいます。連載では、そういったデジタル世界の住人や生き物たちの人工知能を紐解いていきます。 第1回の今回は、この分野の入門を解説します。第2回では、この分野の中心的課題である「キャラクターの意思決定」、つまりキャラクターたちがどうやって自分の行動を決定しているかを見ていきます。さらに第3回ではキャラクターの身体や運動をどのように作って行くか、第4回ではゲームAI分野の特有AIである「メタAI」を中心について解説します。 第1回 デジタルゲームのための人工知能

    AI最前線の現場から【スクウェア・エニックス】デジタルゲームのための人工知能入門
  • Amazon S3のライバル? Google Cloud Storageに触れてみる

    Google Cloud Storageとは Google Cloud Storage(以下、GCS)はGoogle Cloud Platform(以下、GCP)のストレージサービスの1つです。ファイルの静的配信に利用できるほか、GCPの各種サービスのデータストアとしても利用可能です。 大容量でも利用可能であるほか、冗長性の高い構成をしており、99.9%の可用性を保証しています。さらに高い一貫性をも備えており、ファイルをアップロードすると即座に利用可能になり、削除も瞬時に反映されるようになっています。 データを置く位置(データセンターの所在)はアジア、ヨーロッパ、アメリカから選択できるため、利用しているサービスの位置にあわせて配置を変更可能です。 GCSにはWebインターフェース、コマンドライン、API、その他各種プログラミング言語用のクライアントが用意されています。GCSにアップロードし

    Amazon S3のライバル? Google Cloud Storageに触れてみる
  • Google Compute Engineで仮想マシンを作る

    はじめに:Google Cloud Platformとは 「Google Cloud Platform」(以下、GCP)とは、Google社が提供するIaaS(Infrastructure as a Service)です。GCPを使うと、Googleが利用しているものと同一のインフラ上で、Webサイトのホスティングやアプリケーションのデプロイ、データの保存、分析などが行えます。同種のサービスとしてはAmazon Web Services(以下、AWS)や、IBMのSoftLayer、MicrosoftのAzureなどが挙げられます。 Google Cloud Platformの特徴は、「プロジェクト」という単位で横断的にGoogle Cloud Platformの他サービスを利用できることにあります。同じプロジェクトの中で、Googleの各種サービスとの連携ができるのです。例えばデータベー

    Google Compute Engineで仮想マシンを作る
  • 一流のエンジニアが集まるクックパッドで聞いたエンジニアのライフスタイルと求められるスキル

    ソーシャルゲームブームを皮切りにしてエンジニア不足が叫ばれるなか、主婦向けのレシピサイトという一見エンジニアからほど遠いWebサービスに、なぜ一流のエンジニアが魅力を感じて次々と集まってくるのか。その秘訣とエンジニアのスキルセットについて、クックパッド技術部長の小川伸一郎氏に伺った。 重力に引かれるように、いいエンジニアが集まってくる ――なぜクックパッドには優秀なエンジニアが集まるのか、その秘訣をお聞きしたいと思います。まず、小川さんはどうしてクックパッドに入られたのでしょうか。 外から見た時には、Rubyの業界で知れ渡った、優秀で知名度の高いエンジニアが、数多く在籍していたから、ということがあります。2010年頃に、当時技術部長だった井原さん(編注:井原正博氏)が、優秀なエンジニアを多数採用するという方向に舵を切りました。その頃から、RubyのコミッターやRuby界隈で知名度のある優秀

    一流のエンジニアが集まるクックパッドで聞いたエンジニアのライフスタイルと求められるスキル
  • 統計解析向けのプログラミング言語「R言語」の魅力と汎用言語との違い

    こんにちは。NECラーニングの山崎と申します。今回は、ビッグデータに興味がある技術者の方であれば一度は耳にしたことがあるR言語の概要とその魅力を、弊社の名物インストラクターである横垣と米倉にインタビューしながらご紹介していきます。 R言語は技術者の皆様がよく使われる、C言語やJavaPHP、などの汎用開発言語ではなく、統計解析言語です。よって、R言語の勉強を始めたときに汎用言語を習得してきた人は戸惑うことが多いと思います。R言語は統計解析言語ですので、技術的な背景以外にも基礎的な統計学の知識も必要となります。もしかしたら統計学と聞いて、専門外と考え毛嫌いしてしまう人もいらっしゃるかもしれませんが、あくまで基礎的な統計学の知識が必要なレベルであり、弊社がご提供しているビッグデータ概説(1日コース)を受講いただくだけでも十分習得できるレベルです。 また、昨今の市場の流れを見てくと、ビッグデー

    統計解析向けのプログラミング言語「R言語」の魅力と汎用言語との違い
  • [ThinkIT] 第1回:Samba2.2→ Samba3.0への移行 (2/4)

    Samba2.xの時のsmb.confをそのままSamba3.0で利用することはできない。表2にSamba3.0で削除されたパラメータをあげたので、これらのパラメータを使用している場合は削除し、必要に応じて代替パラメータを指定する必要がる。また、表3に新しく追加されたパラメータを、表4に規定値や動作(振る舞い)に変更のあったパラメータをあげる。現在指定している内容にあわせてパラメータを見直して欲しい。 重要度:A:対処必須、B:要確認、C:利用を推奨されなかったパラメータ

    agw
    agw 2012/12/11
  • マルチタスク化したiOS

    iPhone OS 3までのアプリ動作 iOSのいわゆる「マルチタスク」について今回は取り上げたいが、「マルチタスク」の意味が一般には誤解されているので、まずはここから説明したい。 iPhone技術的な意味ではマルチタスクに当初から対応しているが、WindowsMac OS Xのように、ユーザーが明示的に複数のアプリケーションを起動することができないことや、サードパーティ開発者によって作られるアプリケーションに別のアプリケーションが稼働する背後で何かをさせるといったことができないことを総称して「マルチタスクに対応していない」といういわれ方をしている。正しくは「アプリケーションの複数起動やバックグラウンド動作ができない」ということである。 iPhone OS 3では、これがユーザーの不満であったことは確かだ。Appleの考えるコンセプトは、アプリケーションが終了する時、その状況を残してお

  • [ThinkIT] 第4回:yumレポジトリサーバの設定 (1/3)

    Red Hat Enterprise Linux 5からRPMパッケージ管理システムとして「yum(Yellow Dog Updater,Modified)」が採用されました。このyumというのは、主にパッケージのアップデートに利用されます。ほかにもメディアに収録されているRPMパッケージのインストールやシステムにインストール済みのRPMパッケージのアンインストール、グループ管理などにも使われます。これに伴いRed Hat Enterprise Linux 4で採用されていたup2dateは、Red Hat Enterprise Linux 5において廃止されています。 yumによってRPMパッケージのアップデートやインストール、アンインストールを行うには一般的にyumレポジトリと呼ばれるパッケージを体系立てて保管したファイルサーバを利用します。このyumレポジトリによるパッケージ情報を保

  • Googleガジェット導入編

    Googleガジェットとは 連載では、Googleガジェットの魅力と使い方、そして作り方を解説していきますが、まず題のGoogleガジェットに入る前に、「ガジェット」の簡単な説明をします。 連載では、Googleガジェットの魅力と使い方、そして作り方を解説していきますが、まず題のGoogleガジェットに入る前に、「ガジェット」の簡単な説明をします。 「ガジェット」は、目新しい小物(例えば携帯オーディオプレーヤやPDAなど)を指す言葉として使われています。最新グッズを紹介する雑誌をめくってみると、「ガジェット」という言葉を見つけることができます。その「目新しさ」や「小物」の意味が転じて、あるプラットホーム上で動作する小さなアプリケーションのことを「ガジェット」と呼ぶようになりました。 ここでの「小さな」とは、機能が絞り込まれているという意味、もしくは表示領域が小さいという意味のことで

  • [ThinkIT] 第3回:VACUUMの活用によるチューニング (1/2)

    VACUUMは他のデータベースにはないPostgreSQL固有のコマンドであり、使い方次第でPostgreSQLの性能を左右する重要な役割を持ちます。 PostgreSQLでは、削除や更新が行われても古い行は消えません。VACUUMコマンドは、このような古い行の中から、どのトランザクションからも参照されていない安全に再利用できる行を探して、FSM(Free Space Map)という共有メモリ上のデータ構造にその位置と大きさを記録します。追加や更新など、新しく行を追加する場合はまずFSMを検索して、新しいデータを保管するのに適当な大きさの行が見つかればそれが再利用されます(図3)。

  • [ThinkIT] 第5回:高度なインデックスの活用 (1/2)

    ここまでは単一の列に対して作成するインデックスを前提にお話ししてきました。しかし、インデックスは同一テーブルの複数の列に対してまとめて設定することもできます。検索条件に複数列を指定する場合などは、このようなインデックスを使えばさらに効率よく処理を行うことができます。

  • [ThinkIT] 第4回:インデックスの活用によるチューニング (1/2)

    インデックス(index)は検索処理を高速化するデータ構造です(日語で「索引」と呼ばれることもあります)。インデックスを使うと、検索処理が高速化する一方、更新処理時のオーバーヘッドが増加して、処理速度に悪影響を与えます。したがって、インデックスは作ればよいというものではありません。必要十分なインデックスを作ることが基です。 PostgreSQLにはB-treeインデックス、ハッシュインデックス、R-treeインデックスなどがあります。R-treeインデックスは幾何データ型専用です。デフォルトで使用されるのはB-treeインデックスです。実装が一番洗練されているので、特に理由のない限りB-treeインデックスの使用をお勧めします。稿でも以下「インデックス」と言えばB-treeインデックスを指すことにします。 B-treeインデックスを有効に利用するためには、その動作原理を理解しておくこ

  • [ThinkIT] 第2回:ドメインUのI/Oパフォーマンスチェック (1/3)

    第1回ではXenのドメインUにおけるCPU性能について解説しましたが、今回はI/O性能について解説してみましょう。なお、ハードウェア的な検証環境および、ドメインUの基的な環境については第1回と同様です。

  • [ThinkIT] 実践!OpenLDAP活用術 | 第1回:LDAPとは何をするもの? (1/3)

    はじめに 皆さんはLDAP(Lightweight Directory Access Protocol)という言葉をご存知でしょうか。 ここ数年で、LDAPを実装したサーバソフトウェアの知名度は上がってきていますので、ご存知の方も多いかもしれません。 例えば、Microsoft社のActive DirectoryやSun Microsystems社のSunONE Directory Server、Red Hat社のRed Hat Directory Server、そして連載で取り扱うOpenLDAPなどが代表的なLDAPを実装したソフトウェアです。しかし、これらのソフトウェア名を知っていても、実際にどんなことができるのか、というところまでご存知の方はまだまだ少ないのではないでしょうか。 連載では、LDAPの概要からOpenLDAPのインストール、設定、アプリケーションとの連携などを通し

    agw
    agw 2009/01/23
  • [Think IT] 【深きプログラミング言語】続・アルゴリズムで頭の体操

    1980年立命館大学理工学部卒、独立系ソフトハウスに入社。CやFORTRANコンパイラなどの言語処理系の設計・開発に約10年間従事。その後ユーザ系企業でUNIXによるクライアントサーバシステムの設計・開発を主導。同時に企業の内外で人材育成に注力する。現在は神戸情報大学院大学で講師として教鞭(きょうべん)をとる。「ソフトウエア工学の基礎を勉強してオールラウンドプレーヤーを目指せ」が技術者育成についての口癖。 http://www.kic.ac.jp/professors/sudo/index.html

  • Pythonを選んだワケ

    Pythonを選択した理由 通常のプログラマの皆さんと同様に、筆者もいろいろな業務や私的なプログラミングにおいて複数の言語を利用しています。組み込みシステムの業務をするときはC言語を使用しますし、最近の私的なプロジェクトではErlangを使っていますし、趣味においてはMathematica、Rなどを使用します。 過去、システムインテグレーションを業としていた時期は、C++Javaも利用していましたし、現在もそれらを利用することに強い抵抗を感じるわけではありません。このように目的に応じて利用するプログラム言語を変えているのですが、総じてみると、Pythonを利用する頻度が高くなっています。筆者が日常的に利用する言語として、Pythonを選択する理由は大きく次の2つがあります。 ・アイデアをすぐに実現できるから。 ・Zopeで利用しているから。 以降、この2つの理由について説明しますが、一言

  • iPhone特有の技術いろいろ

    特殊リンクとは 今回は、iPhone向けWebサイト制作での特有の技術について紹介します。 その前に、Apple Developer Connection(https://developer.apple.com/webapps/)(開発者登録が必要)の「Web Dev Reference Library」にiPhoneでのWeb開発に必要なリファレンスがそろっていますので、参照してください(2008年10月現在)。 iPhoneのSafariではプラグインやFlashが使えない代わりに、~のリンクからネイティブアプリケーションを呼び出せます。 まずはメールリンクですが、hrefに「mailto:foo@example.com」のように指定すれば、「dest@mail.addr」あてのメールを書くようにメールアプリケーションが起動します。「mailto:foo@example.com?cc=

  • lighttpdを知っていますか?

    lighttpdとは? Webサーバーソフトウエアといって思い浮かべるのは、代名詞的な存在の「Apache」でしょうか、それともMicrosoft社製の「IIS」でしょうか。 今回、紹介する「lighttpd(http://www.lighttpd.net/)」は、軽量かつ高速性を重視して設計された比較的新しいWebサーバーソフトウエアです。 lighttpdは、BSDライセンスで公開されているオープンソースソフトウエアで、無料で利用することができます。そのため国内外を問わず、多くの著名な大規模Webサイトで利用されており、特に画像や映像などといった静的コンテンツの配信に使われることが多いようです。 さらにCGIやFastCGIといった外部プログラムのインターフェースもサポートしているため、近年流行のWebアプリケーションフレームワークであるRuby on Railsや、Python(Dj

    agw
    agw 2008/08/08