先日のエントリー 「TLSとSPDYの間でGoogle Chromeがハマった脆弱性(CVE-2014-3166の解説)」で予告した通り、今回不正なSSL証明書を見破る Public Key Pinningの機能について解説します。 Public Key Pinning は2種類の方法があります。あらかじめブラウザーのソースコードに公開鍵情報を埋め込む Pre-loaded public key pinning と、サーバからHTTPヘッダでブラウザに公開鍵情報を通知するHTTP-based public key pinning (HPKP)の2つです。 Chromeは既に両者の機能を実装済ですが、ちょうど近日リリースされる Firefox 32 の Stable バージョンから Pre-loaded public key pinning が実装されました。Firefox32リリース記念と
November 17th, 2011 Filed under: Xcode | 12 comments This post contains the material on custom file templates I had prepared for the book. I decided not to put this material in the book because it wasn’t strong enough for me to support. But information on creating custom file templates in Xcode 4 isn’t easily available so I’m making it available here. I hope it helps you create your own file templ
nilとは何か? nilとNULLの由来 どちらも、「何もない」という意味 NULLの由来は、ラテン語で「無」を意味するnullus nilの由来は、ラテン語で「無」を意味するnihil Objective-Cにおける、nilとNilとNULL いずれも「ポインタが何も指していない」ことを示し、実体は0です。 それぞれ、想定されている型が異なるため、コンテクストに応じて使い分けるべきです。 nil : (id)0 -> オブジェクトを何も指していない Nil : (Class)0 -> クラスを何も指していない NULL : void * -> ポインタを何も指していない id nullObj = nil; // 空じゃない場合に実行したい!! if(nullObj){ //OK } if(nullObj != nil){ //OK } if(nullObj != 0){ //OKだけど、
恐らく先日実施されたBootcampのWindows 10対応以降問題が発生しています。 上記の問題を解決する方法を紹介したいと思います。 手順 OS Xで再起動 BootcampでWindows 7などのisoファイルからインストール用のUSBメモリを作成。 正しいBoot Camp Support Softwareをダウンロード インストール用USBメモリを修正 インストール 1. OS Xで再起動 上記のエラーが表示された方は、まずこの画面から脱出しましょう。 電源キーを長押しするとシャットダウンできます。続いてOptionキーを押しながら電源キーを押すとブートするOSを選択出来る画面になるので、そこでMacを起動してください。 2. BootcampでWindows 7などのisoファイルからインストール用のUSBメモリを作成。 上記のエラーが表示された方は、このステップは飛ばして
さて、前回、スプライトの表示まで行ったわけですが、今回はこのスプライトをアニメーションさせてみようと思います。 CCSpriteFrameに登録しよう 前回、切り出したテクスチャからスプライトへ登録したわけですが、 アニメーションしようとした場合は、「CCSpriteFrame」に変更しないといけません。 なので、まず、前回のコードを「CCSprite」から「CCSpriteFrame」に書き換えます。 // キャラクタ表示 CCSpriteFrame* pSpritesCharacter[12]; // スプライトフレームの数 const int WIDTH_SIZE = 96; // 一つのスプライトの幅 const int HEIGHT_SIZE = 64; // 一つのスプライトの高さ //「character.png」からスプライトフレームへの切り出し int i=0; for
ホーム < ゲームつくろー! < C++踏み込み編 その18 最低限のカスタムメモリアロケータ メモリアロケータは、「メモリ欲しいんだけど~」という要求に応えてメモリを分け与えてくれる人です。C言語だとこれはmalloc関数、C++だとnew関数がその役を担ってくれます。カスタムメモリアロケータは、その機能を自前で実装した物を指します。 「え?何でそれを自前で実装するの?」と不思議に思うかもしれません。例えば、コンシューマ機での開発ではおおよそメモリアロケータを換装します。それはメモリ確保と解放の速度、耐久性、詳細なデバッグ情報を得るためと移植性を高めるためです。PC用のゲームを作る場合も、自分がどれだけのメモリを消費しているのか、メモリリークはしていないか、誰がいつどこでメモリを確保したのか、そういうメモリのデバッグ情報を見られるというのか安定したゲーム開発に必要になってきます。そういう
11. メモリリーク • std::freeやdeleteを書き忘れると発生する • メモリ解放を他のプログラマに委ねるインターフェースでも メモリリークは発生しやすい void Sample() { void* pBuffer = std::malloc(1024); Player* pPlayer = new Player(); }//メモリリーク発生 void Register() { m_pPlayer = new Player(); } //呼び忘れるとメモリリークする void UnRegister() { delete m_pPlayer; } 12. RAII • Resource Acquisition Is Initialization • オブジェクトの生存時間とリソースを結びつける • 基本的にこの設計を守ればメモリリークは起きない • 実装の一例として、share
by Doug Lea [A German adaptation and translation of this article appears in unix/mail December, 1996. This article is now out of date, and doesn't reflect details of current version of malloc.] Introduction Memory allocators form interesting case studies in the engineering of infrastructure software. I started writing one in 1987, and have maintained and evolved it (with the help of many volunteer
その1:Ubuntu上でのmallocの性能について¶ Ubuntu上でマルチスレッドプログラムを開発していたところ、マルチコアCPU のマシンにも関わらずスレッド数を増やすと遅くなるという問題に遭遇しました。 あれこれ試したところ、mallocを置き換えることでスレッド数に応じて高速化するようになりました。 そこで、簡単なベンチマークでいくかのmallocの実装について性能の比較をしてみたいと思います。 比較したmallocの実装は以下のとおりです。 GLIBCのmalloc: Ubuntu Linux標準のもの jemalloc [1] : FreeBSDのmalloc。なんとなく安心して使えそう。Firefoxでも採用されている tcmalloc [1] : Googleが作った高速malloc 実験を行った環境は以下のとおりです。 OS: Ubuntu 12.4 CPU: Inte
inline void* operator new( std::size_t size, TGL::Memory::AREA_TYPE newFlag,const char* pszFile,s32 nLine ) throw() { void* ptr = TGL::Memory::Allocater::Malloc( size ,newFlag,pszFile,nLine); #if 0 #ifdef _USE_EXCEPTION // 例外処理を許可しているときのみコンパイル if ( NULL == ptr ) { throw std::bad_alloc(); } #endif #endif return ptr; } inline void* operator new[]( std::size_t size, TGL::Memory::AREA_TYPE newFlag,con
前回、前々回とNSURLSessionを取り扱ってきた。 [iOS] NSURLSessionを使って通信を行う [iOS] NSURLSessionでマルチパートデータを送信する NSURLSessionはとても便利だが、しっかりとセッションの後処理をしないとメモリリークが発生するようだ。 公式ドキュメントにこのように書いてある。 NSURLSession Class Reference The session object keeps a strong reference to the delegate until your app explicitly invalidates the session. If you do not invalidate the session by calling the invalidateAndCancel orresetWithCompletio
innodb_lock_monitorを有効にする 有効にする場合 CREATE TABLE innodb_lock_monitor (a INT) ENGINE=INNODB; そして、 SHOW ENGINE INNODB STATUS; と打てば、TRANSACTIONSのセクションの中に、ロックの詳細情報が入るようになる。 終わったら、テーブルを落とす。 DROP TABLE innodb_lock_monitor; 項目 TRANSACTIONの項目をみてみる サンプルのテーブル CREATE TABLE `test_lock` ( `id` bigint(20) unsigned NOT NULL, `count` tinyint(3) unsigned DEFAULT 0, PRIMARY KEY (`id`) ) ENGINE=InnoDB; 試したSQL UPDATE t
こんにちは。 今回エンジニアブログを執筆します新卒の長屋です。 今回は初めてCocos2d-xを扱う上ではまりやすい参照カウンタ周りを解説したいと思います。 Cocos2d-xの参照カウンタとは? ・そのオブジェクトが参照されているポインタの個数を持っている。 ・そのオブジェクトの参照カウンタが0がなったときそのオブジェクトは解放される。 Objective-Cを触っていた方はなじみ深いと思いますが、そうでない方で実際につまづいている方を何度か見かけました。 以下のソースをご覧ください。 // HelloWorld.h class HelloWorld : public cocos2d::CCLayer { //スプライトへのポインタを持ちます cocos2d::CCSprite *m_pTestSprite; public: //初期化処理 virtual bool init(); //
画像のはcocos2d-xのCCObjectの中身ですよ。 cocos2d-xはC++を使っているのですが、基本C++にはJavaやC#にあるようなガベージコレクションといった便利なものがなく、本来はインスタンス生成で確保したメモリは自分で解放しなければなりません。ただcocos2d-xの場合はObject-Cと同じようにリファレンスカウンタでメモリ管理をする仕組みが実装されており、おかげでそこまで意識しなくてもcocos2d-x側が自動で使わなくなったものを削除してくれるようになっています。 とはいえ、その仕組みをある程度理解しておかないと思わぬところでメモリが解放されてクラッシュしたり、メモリリークを起こしてしまったりしちゃうので、既に何度もクラッシュさせたりメモリリークを起こしちゃった自分の為にちょっと詳しくまとめておきます(´・ω・`) あとどういう風に実装してるのかなっていうのも
(追記あり:【完全版】2013mid Macbook AirにbootcampでWin764bitインストールできねえええええええ!って人に【毎日更新その033】 - Roll Play My Life) (間違った方法1)USB DVDドライブから直接導入しようとすると、インストール途中にキーボード・トラックパット、外部USB入力機器も使えなくなり、インストールが続行できない、以前はこの方法+USBメモリでBoot Campが問題なくできた(MacBook Air 11" Mid 2012、IvyBridge) (間違った方法2)USB DVDドライブとWindows サポートソフトウェアの入ったUSBメモリを使用してインストールしようとすると、そもそもインストール前の導入するボリュームの選択でハマって先に進めない (正解)Boot Camp アシスタントを使って、Windows 7のイ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く