Loading...
1. はじめに、 今年も Google I/O が開催されました。一度も現地に行って参加したことはないのですが、毎年セッションの内容は技術的に高度なものばかりでいつも注目しています。今年の一つ興味深いセッションで、 「Google I/O 2012 - Breaking the JavaScript Speed Limit with V8 (Daniel Clifford)」 スライド ,ビデオ というのがありました。(ビデオ・資料をすぐ公開してもらえるのはホントありがたいです。) ご存じの通り V8 は Chrome に搭載されているばかっ速い JavaScript エンジンで Node.js でも採用されています。このセッションは、 V8 の内部実装の解説を元にどう JavaScript の実行速度がパフォーマンスチューニングができるかという内容で、もうこれは必見で見逃せないものです。
そういえば C++ のヘッダファイルを #include するだけで使える GC を書きました。使い方は下のサンプルコードを見てもらえばいいとして、特徴としては、 ヘッダファイルを #include するだけで使える C++ の標準機能だけを使っているのでポータブル*1 mark-and-sweep, precise GC ってなあたりでしょうか。コードは GitHub - kazuho/picogc: a tiny, portable, precise, mark-and-sweep GC in C++ にあります。 C++ のプロジェクトで、ちょっとここだけは GC がほしいんだけど、ってなケースで使いやすいと思います。速度も、そこそこでるんじゃないかな*2。 というわけで、以下、サンプルコード。軽く説明しておくと、 GC を使うクラスは picogc::gc_object を継承する
マルチプラットホームライブラリを作ってみた。 ※リンク先pdf 有名なSEGA本の著者、平山さんによる今年のCEDECでの講演内容である。 ゲームプログラマになる前に覚えておきたい技術 作者: 平山尚出版社/メーカー: 秀和システム発売日: 2008/11/14メディア: 単行本購入: 112人 クリック: 3,473回この商品を含むブログ (193件) を見る 内容的には十分読み応えのあるのだが、一部釈然としないところもある。 主に4.9章の「標準ライブラリや言語機能について」というところから。 何故標準が嫌なのか ゲームプログラマはなぜかC++標準ライブラリを使わない。 いや、使おうとする人もいるが何かと理由をつけて使わない。 その理由が大体困ったような内容が多い。 リンク先でも書かれているが、vectorにはpush_back()やerase()がある。 そしてこれは安全性と性能の両
In Visual Studio 2022 17.10 Preview 2, we’ve introduced some UX updates and usability improvements to the Connection Manager. With these updates we provide a more seamless experience when connecting to remote systems and/or debugging failed connections. Please install the latest Preview to try it out. Read on to learn what the Connection ...
Boost C++ Libraries の紹介サイトです。 :: by Google はじめに ご挨拶 Boost のインストール方法 参考リンク集 ニュース ◆ Version 1.42.0 と 1.41.0 対応 (2010/03/14) 新規ライブラリに関する Let's Boost のページ…: property_tree (汎用木構造型コンフィグ管理) / uuid (ユニークID生成器) ◆ RSS つけました (2009/08/28) ◆ Version 1.40.0 と 1.39.0 対応 (2009/08/28) 新規ライブラリに関する Let's Boost のページ…: Signals2 (Signal/Slotライブラリ改良版) ◆ Version 1.38.0 と 1.37.0 対応 (2009/02/22) 新規ライブラリに関する Let's Boost のペー
公開初日に早速フェイスブックの映画、ソーシャルネットワークを見てきました。 サービスを作ってる人は、\1,800はらうだけでやる気を200%ぐらいにしてくれる映画だと思うので費用対効果は安いと思います。 映画の中で、ハーバード大学は2時間で22000アクセスのトラフィックを集めただけで落ちちゃうの?とかナップスターの作者さん遊び上手すぎじゃない?とか、新機能の実装に家かえってから1、2分とか早すぎない?等の、ツッコミどころなんかも楽しめます。 映画の中ではコーディングに関することは殆ど出てこなかったわけなんですが、膨大なトラフィックをさばくためにfacebook自体、多くのオープンソースを公開しているのでdevelopers.facebook.comから紹介してみます。 もうすぐ6億人に届くほどのユーザを扱うためには、想像を絶するインフラや高速化、サーバ間連携の仕組みが必要になるわけですが
こんにちは、人恋しい季節になってきましたね。 研究開発チームの祢次金(@nejigane)と申します。 本エントリではCinderというクリエイティブなコーディング向けのライブラリについてご紹介したいと思います。 Cinderとは Cinderとは、画像、音声、動画等を簡単に処理&可視化できる、主にビジュアルデザイン向けの強力なC++ライブラリであり、The Barbarian GroupのAndrew Bell氏が中心となってオープンソースとして開発が進められています。 同様の思想を持つProcessingやopenFrameworksによく似ており、C++で簡単に記述できるうえ、Windows、MacOSX、iOS(iPhone/iPad)といった複数のプラットフォームをカバーしています。 細かい機能/特徴の紹介は本家サイトに譲るとして、Cinderを極めるとどのぐらいクリエイティブな
「Kyoto Tycoonの設計 その四」改め、50行でWebサーバを書く方法を解説する。前回実装した「多重I/Oマルチスレッド汎用TCPサーバ」の上にHTTPの処理を行う層をつけて、「多重I/Oマルチスレッド汎用HTTPサーバ」を司るクラスを実装してみたので、それを使ってちょちょいとやる。 URLクラス HTTPと言えばURLが使えないと意味がない。URLは単なる文字列として扱ってもよいのだが、様々なシーンで分解や加工が必要になり、その処理はなにげに複雑で面倒なので、予めクラスとして導出しておいた方がよいだろう。 class URL { public: // 文字列のURLを解析して内部構造を作る void set_expression(const std::string& expr); // スキーム要素を設定する void set_scheme(const std::string&
フルタイムで働きはじめて4ヶ月。 いろんなことがありました。 今日はインターンが来ているということもあり日頃のC++コーディングライフの中で大変重用しているツールを紹介します。といってもどれも有名なツールでググれば解説がでてくるとは思いますので、一言ずつだけ紹介してみます。みなさんも何かよさげなライブラリ・ツールがありましたら教えてください。 - valgrind/callgrind/cachegrind プログラムの実行結果を解析するツール群。まぁ、王道であえて紹介する必要はないかもしいませんが.。valgrindはプログラムのどこかでメモリが漏れているかどうかのチェックに使います.コードのどの部分で確保した領域がどこで漏れているかまで追跡することができます valgrind --leak-check=full command プログラムのどのが計算量的にボトルネックになっているかを調べ
まだC, C++がないようなので書いてみた。主にLinux(DebianとかUbuntu)での環境構築について。 コンパイラ まずはapt-getでコンパイラをインストールする。UbuntuやDebianなら以下のコマンドでgccやg++および標準ライブラリ等がインストールされる。 $ sudo apt-get install build-essential デバッグツール デバッガおよびデバッグツールは少なくとも以下の三つは入れる。(あとltraceも欲しいかな?) GDB 言わずと知れたGNUのデバッガ Valgrind メモリリークや不正メモリアクセスの検出 strace システムコールのトレース $ sudo apt-get install gdb valgrind strace ビルドツール C, C++のビルドツールといえばまずmakeが浮かぶけど、最近ではSConsやCMak
未踏プロジェクトの支援を受けて開発していた、C/C++のための開発援助ツールGCCSenseをリリースしました。配布物やドキュメントは次のURLから入手できます。 http://cx4a.org/software/gccsense/index.ja.html 開発援助ツールと銘打っていますが、現状利用できる機能はコード補完と自動構文チェック(Emacsのみ)だけです。将来的には関数ヘルプ機能や型表示機能を実装する予定です。 GCCSenseはコード補完などの機能を搭載した独自のGCCを利用しているため、インストールがかなり面倒です。ドキュメントによってある程度カバーしたつもりですが、環境によってまちまちなのでインストール時に問題が出てくるのは必至だと思います。その際は私に連絡してください。 また、独自GCCを利用している関係上、現状ではWindowsでの利用はできません。自由なソフトウェア
アメリカ時間の昼ごろにTwitter上が一つのニュースで埋め尽くされました。 PHPをC++に変換して高速化する技術をFacebookが公開したというものです。世界中のPHPハッカーが注目する興味深いリリースという事でちょっと長いですが、リリースノートの和訳を行いました。 原文 http://developers.facebook.com/news.php?blog=1&story=358 Facebookにおいて重要なことのひとつが動作の速さです。過去6年間にわたって、PHPが提供する高速な開発ペースによって多くを成し遂げてきました。プログラミング言語としてみると、PHPはシンプルです。簡単に習得し、簡単に書き、簡単に読み、簡単にデバッグする事ができます。我々は他の言語よりも早くエンジニアを獲得し、それによってより早いイノベーションをすることができます。 今日、私は2年に渡って作業して
見ていただけるのは嬉しいですがこのエントリは十分古いため、新しい情報へアクセスをしてください。以下の本をお勧めします。 すごいHaskellたのしく学ぼう! 作者: MiranLipovaca出版社/メーカー: オーム社発売日: 2017/07/14メディア: Kindle版購入: 4人 クリック: 9回この商品を含むブログを見る 関数プログラミング実践入門 ──簡潔で、正しいコードを書くために (WEB+DB PRESS plus) 作者: 大川徳之出版社/メーカー: 技術評論社発売日: 2014/11/14メディア: 単行本(ソフトカバー)この商品を含むブログ (8件) を見る みんなHaskellやろうぜ!! ということで書きました。 CやJava、Rubyなど他言語を知っている人は、これを読むことでHaskellの大抵のことはマスターでき…ません。 特殊な構文が多すぎて他言語との類
Google が公開しているソフトウェアの解説シリーズ(→その1 , その2)の続きです。今回は google-glog を使ってスタックトレースを表示する方法についてご紹介します。 C++ でプログラムを書いているとよく遭遇するのがセグメンテーション違反というエラーです。不正なアドレスへのアクセスなどによりセグメンテーション違反が起きると、通常、 UNIX 系の OS では SIGSEGV というシグナルによってプログラムが終了するとともに、 core というファイルが作られます。 core ファイルにはデバッガから参照できるいろいろな情報が残っていますが、多くの場合に役に立つのは、スタックトレースという情報です。スタックトレースを見れば、プログラムがどこでクラッシュしたのか、どのような関数を経由してそこにたどり着いたのかがわかります。プログラムがクラッシュした箇所を特定できれば、単純な
はじめに Adobe から C/C++ で書いたコードを Flash や AIR で動かす Alchemy というものがリリースされましたね! Alchemy - Adobe Labs これはすごい!ということで、少し試してみたいと思います。 その様子をリアルタイムに書いていきます。ちゃんと出来るかな 環境 OS は Mac OS X で gcc 、 java は入っているものとします。 ホームディレクトリ(/Users/amachang)に AlchemyTest というディレクトリを作って作業します。 インストール まずは、いろいろインストールします。 Flash Player 10 Debugger Version Adobe Flash Player - Debug Downloads ここからダウンロードしてきて、普通にインストールします。 Flex SDK 以下から Flex
Project "Alchemy" is now the Flash C++ Compiler (FlasCC) FlasCC lets you bring existing C/C++ code to the web, with high performance, across browsers. Leverage the entire Flash Runtime API from C++, deliver full GPU accelerated graphics, and reach over a billion people with no install using C/C++. Learn more and start using FlasCC Adobe Labs: Home | Technologies | Download | Community | RSS Feeds
1.はじめに プログラミング言語とはシステム化する対象物を抽象化し、コンピュータで処理可能なコードを記述するために用いる人工言語である。プログラミング言語はコンピュータの機械語と一対一の対応をもったアセンブラから始まり、コンパイラを用いて機械語に翻訳することを前提としたコンパイラ言語、インタプリタと呼ばれるプログラムがソースコードを解釈し実行するスクリプト言語と、記述できる抽象度を高める方向へと進化してきた。 プログラミング言語はその存在理由から、より抽象度の高い記述が行えること、すばやい開発を行える事が求められる。抽象度の高い記述とは、プログラムがどういう処理を行うか(HOW)ではなく何の処理を行うか(WHAT)を記述しやすい構文、機能を持っていることを、すばやい開発とは記述性の高さ、コードの密度の高さ、バグの発生しにくい構文、機能を持っていることをさす。 この抽象度の高い記述、すばやい
これからゲーム開発を始めようと思っている方にオススメする本を集めてみました。 ここでは、C言語C++言語と理解していき、最終的にはVisualC++、DirectXを使ったゲーム開発ができるように選んであります。 まずは、プログラミングがどんなものかを理解し、動かしてみる 新版 明解C言語 入門編柴田望洋 ソフトバンククリエイティブ 2004-08-28 売り上げランキング : 2467 おすすめ平均 新版 明解C言語 入門編( 早く出会っていれば 解答が欲しかった Amazonで詳しく見る by G-Toolsプログラミングを一度も触ったことが無いという人は、C言語の入門書を一冊買いましょう。 本の選び方は簡単なものであること、練習問題がついていることです。 難しくて挫折するよりは、簡単すぎるぐらいの本の方がいいです。 上記の本でなくてもいいので、自分に合った入門書を一冊購入しましょう。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く