2014-10-03

カーネル、私の読み方

アスキーのハイエンド書籍編集部解散らしいんで、BSDマガジンの記事貼っときますね。

買える本はアフィ貼っときますね。しかし、うーん。こんなに絶版になってていいんだろうか。

2014-09-27

英語

金曜日なので、アフィねらいブログを書いてみます。

英語について。

常に100%ネイティブの言うことがわかるわけでも、常に100%言いたいことを英語で言えるわけでもないですけど、まがりなりにも現地法人に現地採用されて、仕事では英語だけ、な状況ですんで、ちょっとくらい英語について書いてもいいかなと思ったわけです。というのは裏の理由で、表の理由はアフィねらいですが。

筆者の英語レベルは、2007年時点のTOEICで675点です。7年前のTOEICの点数かかれても今のレベルを判断しかねますか。判断しかねますね。最近Stack OverflowでReputation 10,000超えたんですが、Stack Overflowに書かれるような質問と、書くべき答えくらいなら、読み書き不自由ありません。でも、良い感じの(だと勝手に思い込んでいる)言い回しがしたいんで、書きたいフレーズを思い浮かべて、そのフレーズを検索して適切に使われているかどうか確認したりしてます。あとPacktPubの英語で書かれた技術書のテクニカルレビューをやりました。

読み書きは問題なくても、しゃべるのは、もっとがんばりましょうレベルです。それでも仕事上でのコミュニケーションは、台本ある舞台みたいなもんで、コンテキストも、想定されるセリフも決まってるようなもんなので、なんとかなってしまいます。レストランでの注文とか。

しかし、それではあらゆる状況には対応できないので、もっと聞き取れて、もっとしゃべれるようになりたいです。Big Bang Theoryを完全に理解するとか。スタートレックなどの知識も必要になりますが。てことで学習するわけですが、ここまでの学習を振り返ると、もっと効率的にできたよなぁ、と思うわけです。

そこでアフィです。これを使って学習すれば効率的にできたなぁ、と思われるアイテムにアフィリエイトリンクを仕込んで紹介することによって、いくばくかのAmazonポイントが得られるのではないかという淡い期待を抱けるのです。


まずは英文法。

プログラミング言語でも、ひとつひとつの細かいAPIを覚えるより、まず、そのプログラミング言語のSyntaxに注目するかと思います。アルファベットが使われているとか、カッコが多いとか、カッコが多いとか、カッコが多いとかですね。カッコが多いって書きたかっただけです。



3ヶ月トピック英会話 ハートで感じる英文法」NHK教育でやってた番組です。出演者のいとうあいこさんは、アバレンジャーの黄色で、鴻上尚史さんは、最近iOSでも出たドラクエ3の歌を歌っていることで有名ですが、この番組では、いわゆる受験英語で勉強した英文法そのものにも、実はニュアンスが含まれている場合があることに気づけます。過去形にすると丁寧さが出る("Can you" vs "Could you")、とか。聞いたことなければ、このDVD必須です。

大西泰斗先生の本/DVDなら、どれでもオススメです。どれでもオススメですが、やはりDVDの方がオススメです。アフィポイントが高いのもポイントですが、含まれているニュアンス自体を感じるには文章より映像+音声の方がいいですから。「ハートで感じる英文法」「ハートで感じる英文法 会話編」両方買っちゃいましょう。100歩ゆずっても、「ハートで感じる英文法」はゆずれません。


次はシャドーイング。「左を制する者は世界を制す」です。特に脈絡はありませんが。まぁそんな感じです。ネイティブがしゃべるのにかぶせて、そのままの音をだす。それだけです。素材は、アフィにならなくて大変残念ですが、"ESL Podcast"がいいです。しゃべってる内容がわからなくても、綴りがわからなくても、まったくかまわず、そっくりそのままの音を出す。自分の声が邪魔にならないようにヘッドホン使っときましょう。ここでノイズキャンセリングヘッドホンでもアフィ紹介すれば、さらにいいはずなのはわかってるのですけど、まぁiPhone付属のイヤホンでいいんじゃないでしょうか。

どうやって出せばいいかわからない音は、考えて試して、考えて試して、ですね。まぁ答えは「日本人のための英語発音完全教本」に載ってますけど。




そしてSkype英会話。シャドーイングで得られた音が通じるかどうか試します。DMM英会話が今年一杯半額なのでいいかもしれません。わたしはラングリッチをずーっと使ってます。

Skype英会話の重要な点は、いかに先生を楽しませるか笑わせるか、ではないでしょうか。笑われる、じゃなくて、笑わせる。

あ、Skype英会話には、アフィはる余地がない!


アメリカ的なこと。



English the American Way: A Fun ESL Guide to Language and Culture in the U.S.」を読むと、どうしてDMV(日本でいうところの陸運局+免許センター)が皆に"好かれて"いるのか、交通違反で捕まった時の具体例、緊急電話のかけかた、などなどがわかります。CDもついているので、シャドーイング素材としても使えます。



Fluent English」でも、どうやって交通違反して、どのように捕まるのか、捕まったらどうなるか、わかります。人は如何に自動応答電話でキレるのか、とか。

このへんは、普通に英語学習しててもわからないところ。


英単語。

ターゲット3000とか見ながら英単語カード作って、地道に覚えました。いや。すみません嘘をつきました。無理。覚えられませんて。単語帳買ったり、英単語記憶アプリ買ったり、語源から覚えてみたり、いろんなのをなんども試しましたが、英単語なんて覚えられません。無理。諦めよう。

多読がいいと思うんですよね。



多読の方が、単語覚えるより面白くて修行感が少ない。耐えられる。「多聴多読マガジン」に、いろいろ載ってます。


てな感じにアフィってみました。

2014-08-24

dispatch_group_enterとdispatch_group_leaveの呼び出し回数が揃ってないとクラッシュ?

dispatch_group_enterとdispatch_group_leaveの呼び出し回数が揃ってないとクラッシュするという、えー、それホント?的な質問がstack overflowに上がってました。

Why is it necessary to call dispatch_group_leave the same number of times as dispatch_group_enter?

こんなコードを試してみると、実際クラッシュ (要ARC)。

/* test.m */
#include <dispatch/dispatch.h>

int main()
{
    {
        dispatch_group_t group = dispatch_group_create();
        dispatch_group_enter(group);
        //dispatch_group_leave(group);
    }
    return 0;
}

dispatch_groupはdispatch_semaphore使ってて、dispatch_semaphoreはsignalとwaitの呼び出し回数が揃ってない状態でdispatch_releaseするのは禁止(実装上そーなってて強制クラッシュされる)。てな感じでした。

Tumblrから帰ってきてみた

Google Domains移転記念に、TumblrからBloggerに帰ってきてみた。なんかblog投稿とは別にページ作れるようになってたり、いろいろ変わってた。

2011-05-03

いまどきの2Dゲームエンジン

スクリプト言語でiPhoneやAndroid用ゲームを作れる2Dゲームエンジンをまとめてみる試み。


name Corona moai Imapct Kobold2D
link
link
link
link/iOSImpact
link
desc
Corona is the world’s most advanced mobile development platform.
The mobile platform for pro game developers.
Impact is a JavaScript Game Engine that allows you to develop HTML5 Games in no time.
Kobold2D™ is the expert's choice for Cocos2D game development.
license proprietary OpenSource
(CPAL)
proprietary OpenSource
(MIT License)
language Lua Lua Javascript Lua
native ?(C++) C++ ?(Objective-C) Objective-C
iOS available available available available
Android available available not yet -
price $199/year Free $99 Free
release released private beta beta 2011 summer

2011-03-30

MacVim-KaoriYa 20110330

MacVim-KaoriYa 20110330版をリリースしました。

今回はSparkleによる自動更新を設定していません。(2011/04/01 Sparkle情報を更新しました)

http://code.google.com/p/macvim-kaoriya/

http://macvim-kaoriya.googlecode.com/files/macvim-kaoriya-20110330.dmg

Xcode 4でビルドしています。

Mac OS X 10.5 Leopardを使用されている方、Intel、PowerPC 問わず、動作確認にご協力いただけますと幸いです。

Vim 7.3.146、MacVim Snapshot 57、香り屋パッチ 20110323ベースです。


(2011/04/01 追記)
実験的レンダラを使用していない場合、半透明設定(set transparency)が効かなくなります。半透明設定を使用している場合は、「環境設定」「詳細」の「実験的レンダラを使用する」「インラインインプットメソッドを使用する」の両方をチェックしてみてくださいませ。

2011-03-25

Xcode4でPowerPC


$ sudo ln -s /Developer/Platforms/iPhoneOS.platform/Developer/usr/libexec/gcc/darwin/ppc /Developer/usr/libexec/gcc/darwin
$ sudo ln -s /Developer/Platforms/iPhoneOS.platform/Developer/usr/libexec/gcc/darwin/ppc /usr/libexec/gcc/darwin


Xcode 4.0.1でも治ってませんでした。バグレポート忘れてたんですが。

これやっとくと、MacPortsでLeopard用のuniversal buildも可能になります。


$ sudo port install ncurses +universal macosx_deployment_target=10.5 configure.cc=/usr/bin/gcc-4.2 configure.cxx=/usr/bin/g++-4.2

『iOS 4プログラミングブック』 第5章マルチスレッド 補遺 その8



本屋にも並んでます『iOS 4プログラミングブック』。

補遺その8、というか、間違いのお知らせです。ごめんなさい。

iOS 4プログラミングブック 第5章
190ページ 図5-2-5「ヒープからヒープへのコピー」の先頭行に間違いがあります。

(誤) block_t block3_on_heap = Block_copy(block_on_stack);
(正) block_t block3_on_heap = Block_copy(block_on_heap);


@eyesrobe様に発見していただきました。ありがとうございます。

2011-03-03

『iOS 4プログラミングブック』 第5章マルチスレッド 補遺 その7



そろそろ浸透して話題にも上がらなくなってきた(?)『iOS 4プログラミングブック』。

補遺その7では、BlocksのObjective-C支援機能に切り込んでみます。

191ページに書いてあるとおり、Objective-Cのオブジェクトは、Block_copy時に自動的にretainされます。


NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];

NSString *string = [NSString stringWithFormat:@"score = %d", score];

void (^block)() = Block_copy(^{

NSLog(@"%@", string);

});

[pool drain];

/* stringはblockからretainされてるから、まだ生きてる */



これどういう仕組みなんでしょう?


Objective-Cのオブジェクトは、みなNSObjectの子供。

NSObjectは、C言語としては、__attribute__((NSObject))アトリビュートの付いた変数。


てことで、Block_copy時に__attribute__((NSObject))のついた変数をretainして、Block_release時にreleaseするコードを、コンパイラは簡単に生成できるわけですね。


http://clang.llvm.org/docs/Block-ABI-Apple.txt
2.2.1 Importing __attribute__((NSObject)) variables.



しかし、この自動retainする機能。便利なのはいいのですが、実は気づかないうちに、循環参照してdeallocされない状況に陥ることもある諸刃の剣。

Blockが、Blockをretainしているクラスのselfを自動retainしちゃう、という落とし穴。

詳しくは『iOS 4プログラミングブック』の193ページに!