ブックマーク / codezine.jp (31)

  • 護衛艦のシステムはスマホの普及で変化した――護衛艦プログラマーに聞く、艦船を動かすソフトウェア|CodeZine×サイボウズ式

    国防の要である「護衛艦」。護衛艦の動作にもソフトウェアは重要な役割を担っています。護衛艦を動かすシステムはどのようなものなのか、システムにどんなトレンドがあるのかについて、「護衛艦プログラマー」こと、三菱スペース・ソフトウエア株式会社の中島康貴さんにお話を聞きました。 中島康貴(なかしま・やすたか)さん 三菱スペース・ソフトウエア株式会社 鎌倉事業部第一技術部に所属。横浜国立大学工学部卒業、専門は航空宇宙工学。入社後は防衛分野の大規模組み込みリアルタイムシステムの新規開発及び保守改修のプロジェクトに携わり、現在、同社でエンジニアとして活躍中。 護衛艦のシステムは、ほぼ「組み込みリアルタイムシステム」 ――護衛艦を動かすシステムにはどのようなものがあるのでしょうか。 護衛艦の航行を導く航法統制システム、レーダーや武器の統制システム、そして艦内情報の共有システムなどがあります。これらシステムの

    護衛艦のシステムはスマホの普及で変化した――護衛艦プログラマーに聞く、艦船を動かすソフトウェア|CodeZine×サイボウズ式
  • OpenGLを使った地図描画エンジンの作り方(2)

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

  • OpenGLを使った地図描画エンジンの作り方(1)

    初めに 従来のYahoo!地図アプリは、社内ではラスタ形式地図アプリと呼んでおり、サーバ上で生成された地図タイル画像(ラスタデータ)を端末側で貼り合わせることで、地図を表示していました。 しかし、画像でやり取りを行うために、次のようなデメリットもありました。それは、通信の帯域を多く占有したり、地図の回転をする場合に地名などの文字も回転してしまい、読みづらくなったりする点です。 そこで、今回フルリニューアルしたAndroidYahoo!地図アプリでは、サーバからベクトルデータを受信して、端末側で地図を描画するベクトル形式地図アプリに移行しました。 ベクトル形式地図アプリに移行したAndroidYahoo!地図アプリは、従来版と比べ、以下のような点がメリットとして挙げられます。 通信の軽量化 回転拡大縮小のスムーズ化 3Dなど新しい地図表現の追加 ベクトル形式地図アプリ ラスタ形式のデータ

  • マルチスレッドを意識しないマルチスレッド・ライブラリ「Intel Concurent Collections」がおもしろい

    「Intel Concurrent Collections for C++」(CnC)とは 実際並列処理はややこしいしおっかないです。大きなキッチンで大勢のコックが包丁とフライパン振り回しているようなもので、ほっとけばしっちゃかめっちゃかになっても不思議じゃない。各人はそれぞれの役割に専念し、他人のふるまいを気にせず勝手に働きながらも全体としては統制のとれた動きを作り出さにゃなりません。mutexで排他制御したりjoinで完了を待ったり、さまざまな道具を駆使して統制のとれた動きを作り出しているのはプログラマであり、そこがいちばん難しく悩ましいところです。 C++,C#あるいはVB,Javaもそうですが、コードは原則的に並べた順に実行されます。 と書けば、まずf()、それが終わればg()、しかるのちh()の順で呼び出されます。たとえこの3つをどの順にやっても(あるいは同時にやっても)構わない

  • オープンソースのコンパイラ「LLVM」が、NVIDIA GPUをサポート

    NVIDIAは、オープンソースのコンパイラ「LLVM」が、NVIDIA GPUをサポートしたことを、9日(現地時間)に発表した。「LLVM」によるNVIDIA GPUのサポートによって、GPUアクセラレーションを利用可能なプログラミング言語が大幅に増えるとともに、そのメリットを享受できる研究者や独立系ソフトウェア・ベンダー(ISV)が、劇的に増えることになる。 「LLVM」は、幅広く使われているオープンソースのコンパイラ・インフラストラクチャで、モジュール型の設計によってサポートするプログラミング言語やプロセッサ・アーキテクチャを簡単に追加できる。C/C++、Objective-C、Fortran、Ada、Haskell、Javaバイトコード、 PythonRuby、ActionScript、GLSL、Rustなど、多彩なプログラミング言語とフロントエンドに対応している。 同社は、「LL

    オープンソースのコンパイラ「LLVM」が、NVIDIA GPUをサポート
  • Visual Studio 11 : C++ Unit Test Framework ── C++単体テストの決定版(かもしれない)

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    Visual Studio 11 : C++ Unit Test Framework ── C++単体テストの決定版(かもしれない)
  • x86系CPUのネイティブコードを解析する

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    x86系CPUのネイティブコードを解析する
  • ハッシュテーブルに対する攻撃手法のはなし

    ハッシュテーブル実装に対する攻撃とは 昨年12月末にドイツで開催されたCCC(Chaos Communication Congress)において、"Effective Denial of Service attacks against web application platforms"(Webアプリケーションに対する効率的なDoS攻撃)と題した発表が行われました。タイトルに「Webアプリケーション」とついてはいますが、この問題はWebアプリケーションに限ったものではありません。以下の三つの条件が揃ったアプリケーションであれば例外なく、DoS攻撃の餌となる危険があります。 ハッシュテーブルというデータ構造を使っている ハッシュ値を計算するアルゴリズムが「脆弱」である ハッシュテーブルに登録するデータをプログラム外部から指定できる ハッシュテーブルとその問題 Wikipedia(日語版)

    ハッシュテーブルに対する攻撃手法のはなし
  • 「膨大なデータを分析して見えてくること」ニコニコ動画データ分析研究発表会

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    「膨大なデータを分析して見えてくること」ニコニコ動画データ分析研究発表会
  • 3DCGツール「MikuMikuDance」のエフェクトを拡張する「MikuMikuEffect」 はじめてのエフェクト制作

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

  • 創活ノート 第52話「ARマーカー認識」

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    創活ノート 第52話「ARマーカー認識」
  • インテルTBBの同期メカニズム

    先日から愛機の調子が思わしくありません。突然フリーズ/リセットかかるんです。頻度はさほどに多くはないけどおっかなくて仕方がない、そこそこ動いているうちにもう1台新調することにしました。こんなこともあろうかと以前から少しずつ揃えていたパーツたちのおかげで予算にかなりの余裕があり、思い切ってイマドキのi7-2600Kに16GBのメモリを積んだゴキゲンな2号機ができあがりました。目下作業環境の引越中です。 CPUを奮発したおかげで論理8コア、8つのスレッドが同時に走る素敵な環境。遊ばせておくのはもったいなく、しばらく遊んでほったらかしになっていたインテルTBB(Threading Building Blocks)を再度試してみたくなりました。TBBはこれまでに何度かネタにしてきましたが、今回はスレッドの同期(Synchronization)のお話です。 前準備:スレッドの起こしかた TBBでのス

    インテルTBBの同期メカニズム
  • グリーCTOが語る、大規模ソーシャルゲーム開発の舞台裏

    9月1日、ゲーム開発者向けカンファレンス「CEDEC 2010」において、SNSGREE」を運営するグリー株式会社(以下 グリー)が『大規模ソーシャルゲームのつくりかた ~60分でわかるサーバサイド技術~』と題するセッションを講演した。 一日あたり億単位のトラフィックを捌くインフラはどうなっているのか。技術者2名が解説したインフラ構築のノウハウや、ソーシャルゲームと一般のオンラインゲームとの違いについて紹介する。 オンラインゲームとソーシャルゲームとの違い 最近テレビCMでも目にする機会が多くなってきたSNS(ソーシャルネットワーキングサービス)の「GREE(グリー)」。2010年6月時点の数字で、会員数2059万人、月間353億ページビューという言わずとしれた大人気サイトだ。中でも携帯電話向けソーシャルゲームが特徴的で、専用機向けのゲームと比べるとコアゲーマー以外のプレイヤーも多く、利

    グリーCTOが語る、大規模ソーシャルゲーム開発の舞台裏
  • 400万行のコードを15分で見える化! プログラム解析ツール『Understand』で開発効率アップ

    システムの多機能化により、プログラムの内容が複雑化している。テクマトリックスの『Understand』は、プログラムの構造を可視化することで、ソースコードの解析時間を大幅に削減できる開発支援ツール。今回は同社の福永一寛氏に、Understandの機能や特徴について聞いた。 システムの多機能化により、プログラムの内容は複雑化している。既存コードの改修や多人数での開発における情報共有のためには、プログラム構造の理解が必須だが、ドキュメントと実装内容とが乖離している場合も多く、解析自体に工数がかかることもある。テクマトリックスの『Understand』は、プログラムの構造を可視化することで効率的なソフトウェア開発をサポートするソフトウェア開発環境。「組込みシステム開発技術展(ESEC)」にて、同社の福永一寛氏にその特徴を聞いた。 ソースコードの解析作業時間を大幅に削減する『Understand』

    400万行のコードを15分で見える化! プログラム解析ツール『Understand』で開発効率アップ
  • mixiアプリ「記憶スケッチ」の開発者が語る うけるソーシャルアプリ制作7つのコツ

    現在ユーザー数は約127万人、画像の投稿数は約1023万枚で、オープンしてから半年強で画像投稿数の合計が1000万枚を突破した。月間の最大PVは約1億4千万、8秒に5枚ずつ画像が投稿されている計算となり、投稿型のサイトとしては世界最速と中西氏は自負している。 OpenSocialアプリケーション開発の経緯 開発環境はLinux/Apache/MySQL/PHPという基的なLAMP構成で、クライアントサイドにはFlex3、opensocial-jqueryを利用。クラウドは利用せず、データセンターにサーバを設置した。 開発に関する作業は、デザインも含め全て中西氏1人で行った。OpenSocialの仕様調査やアプリの実験に2週間、実際の開発に2週間を費やし、約1か月で実装が完了した。 OpenSocialへの興味でためしに作ったアプリケーションが爆発的ヒットとなり、アプリリリース後、想定では

    mixiアプリ「記憶スケッチ」の開発者が語る うけるソーシャルアプリ制作7つのコツ
  • .NETでマンデルブロ集合を描く

    はじめに 先日、調べものついでに読まなくなって久しい古雑誌を整理していました。古雑誌の記事は今となってはいささか時代遅れのものがほとんどなんですが、中には今でも十分通用する貴重な資料も少なからずあるので手当たり次第に処分するわけにもいかず、一冊ずつ手にとって目次を確認してたんです。パラパラめくってた一冊に当時(おそらく20年以上前)に書いたであろうコードを打ち出したプリンタ用紙が挟まっていました。BASICで書かれたコードの先頭には10 '--- MANDELBROT-SET ---とコメントされていて……思い出しました。確かに当時、科学雑誌に掲載されていた数式を頼りにコードを書き、8bit-CPUとBASICインタプリタで実行し、マンデルブロ集合の全体像を描くのに丸一日かかったのを覚えています。今や当時に比べればCPU性能はケタ違い(どころの騒ぎじゃない)ですから、より綺麗なマンデルブロ

    .NETでマンデルブロ集合を描く
  • Visual Studioコマンドとショートカットキーの対応表を作成する

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    Visual Studioコマンドとショートカットキーの対応表を作成する
    Nao_u
    Nao_u 2009/03/12
  • C++0xのマルチスレッド機能

    はじめに C++の新しい標準規格である「C++0x」の大きな新機能の1つが、マルチスレッド処理のサポートです。 従来のC++では、マルチスレッド機能は標準規格の拡張としてコンパイラごとに提供されていたため、細かな部分がコンパイラやプラットフォームによって異なっていました。しかしC++0xでは、すべてのコンパイラが同じメモリモデルに準拠し、同一のマルチスレッド機能を利用できることになります(ただし、従来同様の拡張をコンパイラが独自に提供することも可能です)。 開発者の立場からすると、マルチスレッドのコードを別のコンパイラやプラットフォームへ移植するときの手間を大きく省くことができます。複数のプラットフォーム向けの開発を行う場合でも、種々雑多なAPIや構文をいくつも頭に入れておく必要がありません。 新しいスレッドライブラリの中心を担うのは、実行スレッドを制御するstd::threadクラスです

    C++0xのマルチスレッド機能
    Nao_u
    Nao_u 2008/12/02
  • あなたはC++ の発明者? それとも創造者?〜Bjarne Stroustrup氏との対話〜:CodeZine

    はじめに 「Bjarne Stroustrup氏との対話」連載を担当することになりました、豊田孝と申します。よろしくお願いいたします。 対話の相手であるBjarne Stroustrup氏は、プログラミング言語「C++」を設計し、最初に実装した人です。それだけでなく、同氏はC++を国際標準プログラミング言語の地位に付かせました。大変なエネルギーの持ち主です。 筆者はこの数年、「同氏の生き方から何かを学べるのではないか」と考えてきました。その考えは日毎に熱を帯び、「学べるはずだ!」、そしてついには、「わが国の開発者に、同氏の考え方と生き方ぜひお伝えしたい!」へと変化し今回の連載を始めるに至りました。 稿でのStroustrup氏との対話はメール交換を通して行われます。基的には、筆者が質問文を用意し、Stroustrup氏がその質問に対して高所からコメントを寄せることになります。C++言語

    Nao_u
    Nao_u 2008/07/30
  • ゲームAI連続セミナー「ゲームAIを読み解く」 第4回 レポート:CodeZine

    IGDA日は、株式会社フロム・ソフトウェアの協力、日デジタルゲーム学会(DiGRA JAPAN)の後援の下、6月30日(土)に東京大学郷キャンパス工学部新2号館(東京都文京区)にて、ゲームAI連続セミナー「ゲームAIを読み解く」の第4回「Halo2におけるHFSM」を開催しました。セミナーのコーディネータを務めました筆者がレポートをお届けします。 なお、連続セミナーの概要などについては過去のセミナーレポートをご覧ください。過去のセミナーレポート第1回 「KillzoneにおけるNPCの動的な制御方法」 レポート第2回 「F.E.A.R.におけるゴール指向型アクションプランニング」 レポート第3回 「Chrome Hounds におけるチームAI」レポート Halo2におけるHFSM 第4回は「Halo2におけるHFSM(Hierarchical Finite State Mach