サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
災害への備え
blog.cnu.jp
VMware Player は当初より「非営利目的の使用のみ」利用可能である。最新版のVMwarePlayer 5.0では、これがWindowのタイトルに表示されるようになった。 で、問題になるのが、この「非営利目的の使用のみ」とはどこまで指すのか?という点。いろいろ検索してみたりして、分かる範囲でまとめてみた。 コスミー報告書[社外秘] – VMware Player のライセンス(商用利用について) では、 私が知りたいのは以下だ。以下が商用利用に当てはまるのか否か。 ①会社の業務における作成するプログラムのテストをゲストOSで行う。 ②会社で個人の事務作業に使う。 ③個人事業主がプライベートで使う。 さんざんWebで検索したが、上記のEULAを読み解いたり、FAQの文言から推察したりではっきりした答えは分からなかった。 誰かサポートに聞けよ!と思ったが意外に誰もいない。(聞
コミケで技術系同人誌を売る方法をざっくりとまとめてみた。これを書いてしまうと、ライバルが増えて自サークルの当選確率が下がってしまうかもしれないが、それより様々な技術系同人誌を読んでみたい気持ちが勝っているので書いてみる。 基本的には二次創作的な同人誌の進め方と同じなので、詳細はコミケ 参加手順でググった方が早いかと。ここでは技術系同人誌の話をメインに書いていく。 ざっくりとした手順 ざっくりとした手順は以下の通り。 サークルを作る 申し込む 本を書く 印刷する コミケで売る サークルを作る まずはサークルを作る。サークルはいわばフリーランスの屋号みたいなものだと考えてもらえばOKかと。名乗った勝ち。会社を作るように、どこかに届け出をする必要はない。サークル名を決めて無くても申し込む事はできるけど、無いと割と不便なことが多いので決めておいたほうがよい。 申し込む とにかく申し込まないと先に進
研修などで、セットアップ済みのUbuntu10.04(64bit)のイメージを配布することがあるのだが、その時に問題になるのが「このマシンでVMwareのイメージが動作しないのですがー」。 これは、CPUが64bitOSの動作をサポートしているか、どうかというのが決め手となる。インストールされているWindowsが、32bit版、64bit版というのは関係がない。 で、64bitOSが動作するPCか簡単に判断できる方法がないかなーと探していたところ、VMwareが64bitOSの互換性チェックを判断するソフトを配布していた。ということで、そのソフトと手順を紹介。 ダウンロード まず、プロセッサの64ビット互換性チェックから、64bit互換性用プロセッサチェックのアプリをダウンロード。Windows版、Linux版があるのでOSに合わせてダウンロードする。 実行&確認 ダウンロードしたファイ
本年もよろしくお願いいたします、ということで、今年最初のエントリ。 最初のエントリーは何にしようか少し迷ったが、昨年末に発売になった日経ソフトウェアで書いたC/C++でiOS&Android同時アプリ開発の記事を書いている時の話を少し書いてみる。記事を書き進めている時の出来事など、記事に書けなかった事を。 最初はiOS向けに作るべし まずこれが最初にくる。iPhone/Android両対応のゲームを開発するなど、C/C++でコードを共通化する事が決まっているのであれば、最初はiOS向けに作成するのがよい。それは、XCodeで開発した方が効率がよいから。 Android NDKは、C/C++のビルド環境やライブラリなどは整っているのだが、それ以外まだ弱い面も多い。その一つにデバッグ環境が挙げられる(ネイティブコードをデバッグするためのツール、DS-5 Community EditionもAR
日経ソフトウェア2012年2月号の特集1Part2「C++でiOSとAndroidのプログラミングを共通化しよう」に寄稿した。 この記事では「Objective-C++とAndroid NDKのコードC++で共通化するためにはこうしたらいいよ」「OpenGLESみたいな共通なライブラリ使う場合は、こうしたらいいよ」といった解説がかかれてている。この記事では、ある程度C++の利用経験がないと読むのはツライかも。入門記事といった内容ではないので。 この記事を書くにあたって、XCodeをXCode4へバージョンアップすることに決めたのだが、XCode4のためにOSごとLionへバージョンアップするハメになったのが一番シンドかった。 過去の経験からも、OSのバージョンアップの際はクリーンインストールの状態からインストールする事にしている。そのため、サンプルコードを書く前にには、データのバックアップ
ってことで、AndroidNDKr7がリリースされたので、さっそく中身をチェックしてみた。リリースノートをまるごと翻訳するのは他サイトに任せて、ここでは概要だけを。 Linux版Android NDKr7の不具合(?) NDKr7を利用する前にひとつ注意することが。 Linux版Android NDKr7に含まれているawkのバージョンが古いものらしく、ndk-buildコマンドを実行するとエラーが表示される(MacOSX版では出てこないのだが) この対策としては、NDKにあるawkをrenameして、プリインストールされているawkを利用するように変更する。これは早急にNDKr7bがリリースされて修正されるのでは、と。 変更点の概要 AndroidNDKr7は、大きな変更として以下の点が挙げられる。 ICS(IceCream Sandwich, Android4.0)対応 CCache対
サンプルコード、検証用コードをgithubにUPしました(発売3ヶ月後にして…) リポジトリはhttp://github.com/demuyan/AndroidNDKbookです。 このサンプルコードは、以下の方法で実行するとよいでしょう。 EclipseではImport->Existing Projects into Workspaceで取り込む Import後、Eclipseからndk-buildを実行できるように設定する(参考:EclipseからAndroid NDKのコードをビルドする : Happy my life) なお、コードの詳細を知りたい方は、Android NDKネイティブプログラミングをお買い上げください。 サンプルコードの詳細 章ごとに分けて登録されています。 ch02/ CalcVal/ JavaからCの関数を呼び出す CalcVal2/ JavaからCの関数を呼
ジョブスの伝記も発売されたことなので、しばらく利用していなかったKindle3で原書を読んでみようかとふと考えた。ただ、Kindle3のデフォルト辞書は、英英辞書なので、日本人の私にはちょっと使いづらい。ということで、英和辞書を入れることにした。このエントリーはその顛末について。 ここでは、英辞郎第4版の辞書をもとにKindle3用英和辞書を作成した。この英和辞書の作成方法もいくつか方法があるようだが、今回は、mobipocketと英辞郎 for Kindle(4) | What I wanna talk ABOUTで紹介されているEijiro117.csv2html.pl(最新版はv3)を利用して作成した。 というのは、この方法だと、動詞の過去形、複数形、現在進行形などでもちゃんと対応して辞書を表示してくれるから。他の方法だと、Cameのような過去形は認識してくれないらしい。 今回利用し
Android NDKr6bでビルドしたC++のコード中でthrowで例外を投げると、いきなりアプリが落ちるという現象に遭遇した。 で、原因を先に言うと、Android 1.6&2.1環境向けに開発しているアプリだと、C++で例外を投げると落ちるという回答だった。 そのことの詳細はAndroid NDK R5 and support of C++ exception – Stack Overflowに書かれているまま。このページの中には I have a similar problem using JNI. All exceptions thrown from a JNI method are causing a SIGILL error under Android 1.6 and 2.1. It’s working fine under Android 2.2+ とあった。 一応Issu
ちょっと前からpythonを使い始めた。そもそものきっかけはDevQuizのスライドパズルを解くのに必要になったから、というのが一番大きな理由。スライドパズルを解いていると、そのタイミングを狙ったかのごとくPython指定の仕事依頼がくる事もあったり。 これまでも、Pythonのコードを見様見真似で解析することはあったけど、今後も利用することが多そうな気配なのでここは本腰をいれて勉強しようかと。 本屋に行っても、そもそもPythonの入門書は少なく。どれを読んでも心に突き刺さるものがなかったので、どうしようかなーと思案していたところ、ネット上にリファレンスあるよ、と教えてもらったので、まずはそれらを参考にしようかと。 教えてもらったサイトは以下のとおり。 Python チュートリアル — Python 2.6.2 documentation Python 2.4 クイックリファレンス Di
横浜PF部の勉強会に参加して、CPU内部の話を発表してきました。 発表に利用したスライドが以下のものです。今回はLinuxカーネルよりもっと低レイヤーの話を(笑) Androidでこういう低レイヤーな話ができる場所は、PF部しか無い気が。 他の方々の発表も、やはり他支部では聴けないような濃い話が大半で非常に為になりました。 あとは、NDK本にサインをしてきたりも。これは人生3度目ぐらいのサイン会です。そこでは一言書くのですが、「お前にはまだ早い」のフレーズが相変わらず人気が...。 今回は、高速バスで早朝に到着し、勉強会、懇親会に参加して、その足で夜行バスで戻るという強行軍での参加となりましたが、体力的にはまだ大丈夫だったような気がします。 懇親会では人生初の中華街での食事だったり、その後に行ったお店では、お姉さんにおデコでゆで卵を割ってもらうなど、人生初の経験がてんこ盛りの楽しい夜を過ご
結論からいうと非常に便利。特に日常的にgrepしてるような人はすぐに入れるべし。 何がいいって環境構築が楽なので(おいらがrubyに慣れているというのもあるけど) 構築方法 今回はUbuntu10.04LTSにて構築。 Rubyはrvmを利用してインストールした。このrvmってのは、複数バージョンのrubyを共存させることができる方法。今回はRuby 1.8.7をインストール。milkodeをインストールする場合、利用するruby実装系、インストール方法、OS環境によってはハマりが発生するようだ。今回のUbuntu10.04&rvmでは、インストール時のハマりがなかった。 ちなみにruby enterprise editionを使ってインストールするとちょっとハマったりする(将来的なバージョンアップで解決されそう) では最初にrvmとrubyのインストールから。rvmは以下の方法でインスト
ということで、Android NDKネイティブプログラミング(通称NDK本)が予約開始となりました。Android NDKr5cをあますことなく解説した内容となってます。 目次 1.Android NDKとは 2.JavaとAndroid NDK 3.NativeActivity 4.OpenGL|ES (1.0, 2.0) 5.サウンド(OpenSL|ES) 6.入出力(センサー、キーボード、ファイル) 7.ツール(コンパイラ、デバッガ) 8.アーキテクチャ 9.最適化 10.NEON 11.リファレンス NDKの情報って… このようなNDKr5を詳細に解説をした書籍、Webサイトというのは実は世の中にはほとんど無いです。そういう意味では本書はNDKr5を理解するにあたっては大きな助けとなるはず。とくにNDKに特化したOpenGL|ES(1.0, 2.0)とOpenS
以前から興味があったHoneyCombから含まれたRenderScriptについて調べてみた。ここでは、RenderScriptのドキュメントを読んで、ソースコード(サンプルのBalls)を見てみて動かしてみてのメモ(Android 3.2にて)。事実誤認も含まれている可能性があるのでその点は指摘していただけるとありがたい。 RenderScriptとは 簡単にいうと、GPU依存しないレンダリングエンジン。OpenGL|ESを利用するとGPU依存したコードになりがちだが、RenderScriptではそのようなGPUに依存せずにコードを書ける、ということらしい。 ただしOpenGL|ESよりは機能は少ない。RenderScriptの内部では、OpenGL|ES2.0が動作している。 RenderScript と OpenGL|ES RenderScriptとOpenGL|ESは似たような利用
Android Bazaar and Conference 2011 Summerに参加された方々、スタッフのみなさん、お疲れさまでした。 “Linuxカーネルから紐解くAndroid”という、かなり濃い話題にも関わらず多くの方に来ていただき、まあ正直驚きました。 いろんなところで話をしてきましたが、今回が一番人が多かったです。あー、緊張した。 ということで、開発トラック2で発表した内容を掲載しておきます。
Android NDKとJavaを併用した開発をしていると、どうしてもTerminalとEclipseをいったりきたりする必要がある。しかも、C/C++のコードを修正、ビルドしても、Eclipseを実行するだけでは、新しく作成したモジュールはapkファイルに含まれないという(Javaのコードは修正してないから、Eclipseは新しくパッケージングする必要なしと判断する) とまあ、標準環境のままではとにかくNDKとJavaの開発はしにくい。ということで、NDKのビルドコマンドであるndk-buildをeclipseからさせちゃおうという趣旨。 事前にEclipse, Android SDK, Android NDKr5がインストール済であること。Android NDKは、今回は/Developer/SDKs/android-ndk-r5cにインストールされているとする。 プロジェクト作成 ま
前回のエントリーの続き。ということで、実際にrowboatのgingerbreadをビルドして時間を計測してみた。ちなみに、インスタンスは64bitOSが利用できるものしか試していない。 測定方法 同一AMIを利用して、起動するインスタンスを切り替えて測定した。本来なら何度も測定してその平均を取るべきなんだろうけど、今回は1回のみの測定。マイクロインスタンスで時間がかかりすぎて、力尽きたというのが大きな理由…。 マイクロ インスタンス 最初は、一番安いマイクロインスタンスから。 613 MB メモリ 最大2 EC2 Compute Units (短期の定期的なバースト) EBS ストレージのみ 32 ビットまたは 64 ビットのプラットフォーム I/O 性能: 高 API 名: t1.micro ビルド中、メモリ不足によるOOM Killerが発生するのでSwapファイルの設定が必須となる
巷というかWeb界隈ではよく話題にあがるAmazon EC2。では、Androidのソースコード(gingerbread)をビルドすると、どの程度の時間でビルドが完了するのかなーと試してみたくなったので、やってみた。 Amazon EC2はインターネットサービスに限定せずに、ネットワーク接続されているPCとも考えられるので、リモートのLinuxマシンに見立てて、そこでAndroidのソースコードをビルドすることも勿論可能。EC2を利用することで、場所やマシンを限定せずにビルドできるようになるという。どこでもビルドできるって素敵だね(棒) ってことでビルド環境を仕立てたが、私はEC2自体よく知らない状況から始めたので、試行錯誤しながら進めていった。このエントリーが参考になればいいな、ということで。 基本的にUbuntu 10.04LTS Server(64bit)をEC2上に構築して、そこに
以前、WindowsがインストールされたVMwareのイメージを縮小するエントリーを書いたが、今回はLinux編。こちらもWindowsの時と同様に、利用していない領域をゼロで埋めてからcompactを実行するとかなり小さくなる。これは、VMwareのイメージファイルは内部で圧縮されて保存されているため。 特に、VMwareのイメージを配布するときはファイルサイズが小さい方がよいわけで。そのために以下の方法を試してみるのはよいかと思う。 ちなみにこの方法は、某巨大掲示板に書いてあった方法だが、見失いそうなのでblogに転記しておく。 手順 あらかじめ、縮小したいデバイス(/dev/sda1とか)を調べておく(dfコマンドなどで知ることが可能) 必要なものは、UbuntuのCDイメージ(まあ別にubuntuでなくてもいいのだが) UbuntuのCDよりLiveCD モードでUbuntuを起動
現在開発しているソフトにスクリプト機能を組み込む事になった。こういった場合、自分で言語を作成する人もいるけど、大抵の場合既存の言語を移植する事が多い。 スクリプト機能で実現する機能なども考慮した結果、Lua(LuaInterface)を組み込むことにした。あちこちでよく耳にするこの言語の最大の特徴は、組み込み用言語として開発された事。組み込み用なので、軽量かつ他言語からの呼出も簡単にできるように設計されている。 組み込み用言語といえば、通常のスクリプト言語に比べて文法が貧弱で、いまいち使い勝手がよくない言語もあったりするけど、Luaは単体でもプログラミング言語として十分成り立つので、その点は問題ない。しかも.Net Frameworkも問題なく呼びだせるのでこれで十分(そのためのLuaInterfaceなのだが) とここまではすんなり決ったのだが、その後、Lua(LuaInterface)
本を書いている途中でいろいろと見えてくるものがあったので、そのあたりを忘れないうちに書いておこうかと。それは何かというと 「本の編集に携わる人々は、編集のプロであってプロのプログラマではない」ということ。 あたり前の話ではあるのだが、制作中のテンパっているときにはつい忘れてしまうので自戒を込めて。 まず最初は、編集者さんに原稿を読んでもらって確認してもらうのだが、その時の技術的な指摘をいろいろ受けたので、つい通常のプロジェクトのメンバーと一緒に仕事を進めているような感覚に陥いってしまい、Javaのプログラマでは常識的な事の説明を省いてしまうことがよくあった。 ただ、それは自分勝手な錯覚に過ぎず、そのうちプロジェクトのメンバーとやりとりするのとは違う、より理解しやすいように原稿を書く、説明するしかないというのが分かってきた…。 制作の段階でも 次に注意を払う必要があるのは、制作の段階。原稿を
nginxとspawn-fcgi/php-cgiで運営していて以前から悩んでいる事が一つあった。なぜか2時間毎ぐらいにphp-cgiがハングしてしまうという問題が…。仕方ないのでハングする度に死活監視で復活させていた。 致命的な問題でもなかったが、死活監視から頻繁にメール届いてウザいなー、そのうち手を打たないと、と思いつつ今日まで来た。 で、Ubuntu 10.04 LTSに移行するついでにいろいろ調べていると、How to Stop Crashing / Hanging of php-cgi / spawn-fcgi with nginx / lighttpdという記事を見つけた。 同じ問題で悩んでいる人いるんだね。という事で読み進めてみるとヒントが書いてあった。 > We found out an important, but less advertised environment v
今回は、WCAF(福井のWebクリエイタさんの集まり)の勉強会でAndroidなお話をしてきた。 内容としては、Webデザイナ、ディレクタさん向けに、スマートフォン対応なWebサイト構築とかTitanium Mobile、アプリ設計とか。もうちょっと言うとWebをスマートフォンに対応させるには、こんな方法があるんだよーとか、こう確認する方法あるよと、か広く浅く。以下、その発表時のスライド。 今回は、ユーザ(主に自分だけど)が不満に思っていることをどうしたら解決できるのかを現場の人に伝える、といった内容になった気がする。 実際にAndroid端末から様々なWebサイトを閲覧すると、スマートフォン対応してないサイトもまだ多く、閲覧しにくいサイトって多いよね、ってのが状況な気がする。PC版Webサイトを拡大縮小してWebサイトを閲覧する機会はまだまだ多い。 で、親睦会でWebサイトのスマートフォ
ってことで、本書きました。もうすぐ発売になります。 今回は、GoogleAppEngine/JavaとAndroidをつかってアプリケーションを作るときは、こうしたらいいんだよー、といった内容となっています(ざっくりと説明) いきさつ この本の企画を思いついたのは、去年の夏の終わりごろ。 そのころ某SIerさんで、Androidアプリの講師をしていたのだが、Androidアプリの応用編で何か講習をして欲しいということで、AndroidからGoogleAppEngineと連携させるのを題材にしたのだが、その当時手頃なテキストがなかった。その時は、市販の本数冊を利用して解説したけど、あまり十分とも言えず。 そのあたりでモヤモヤしているところ、日経BPさんに相談し上梓することになった。 今後はAndroidとGAE(やWebAPI)を利用する業務系のシステムの需要が増えるのではないか、と推測のも
電子、電気系な雑誌であるInterfaceでお馴染のCQ出版さんですが。そのCQ出版さんが開催している講座の一つとして「Androidを利用した組み込みシステム開発の基礎」が開催され、私が講師をすることになりました。 場所は東京の巣鴨、期日は5/28(土)で10:00〜17:00と1日たっぷり組み込みAndroid漬けです。詳細は、Androidを利用した組み込みシステム開発の基礎 [講師による実験実演付き]にて。 概要 組み込みAndroidの基礎ということで、Androidそのものの解説からはじまって、組み込みAndroidを扱うのに必須なLinuxカーネルの知識、Android Frameworkの内部解説、開発環境の解説を、途中ソースコードの解説など実演を交えつつ行います。 後半には、BeagleBoardを利用して、実際にカメラなどのデバイスをAndroidで制御するための手順、
先日これに近い事を質問されたので、その方法について書いてみる。 通常のAndroidデバイスを使った開発であれば、AndroidとPCをUSB接続してEclipseから実行すると、設定しなくても実機へアプリが転送され、そのまま動作確認できるのだが、それと同じ事をx86版Androidをターゲットにしてやってみる。 方法 VMwareのネットワーク設定は、ブリッジ接続にしておくこと。そうしないと、ホストPCから接続できない(たぶん) 次に以下の事を行っておく。
先日から数年振りにC言語でコーディングしている。 その前はrailsだったのでコードを書く量が多くて、面倒な上、このうえなし。 それにしても、ポインタ使うの久しぶりだわ。 そんな事はどうでもいいとして。 その作成中のソフトで、外部から設定ファイルを読み込む仕様があったので、拡張性等も考慮しjson形式で定義することにした。 jsonを扱えるC言語ライブラリは、いくつかあるのだが、今回はJSON-Cをチョイス。 だが、JSON-Cのサンプルコードがググってもなかなか無い(他のライブラリでも似たようなものだが) それはそれ、こことか参考にしながら、とりあえずjsonフォーマットが自由自在にパースできるところまできた。 これで何とかなりそう。 ついでにテストで作ったコードを晒してみる。 こんな情報を知りたがる人がいるかどうか不明だが、ないよりは良いだろうということで。 あ、そうそう、コンパイラは
Android 2.3からビルド環境には64bit環境を要求されるようになった。そのため1から環境構築する必要があったのだが、それがまとまっているサイトが意外になかったので、ここでまとめておく。Ubuntu 10.04 64bit上で構築する様子を再現した。 下準備 ビルドにはJDK6が必要。今回はOpenJDK6を利用せずにOracleのJDK6を利用することにした(OpenJDKにはいろいろハマった苦い思い出が)。 JDK6は標準ではサポートしてないので、以下のようにして、取得先を設定する必要がある。参照元は、こちらInstall sun-java6-jdk on Ubuntu 10.04 (Lucid) %sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner" %sudo apt-get up
ABC2011WinterでDolaReportrについて発表してきました。さすがに3分ですべてを発表するのは無理だったので、ここで改めて概要の説明を。 DoraReportrとは AndroidアプリケーションにおいてBugReport,IssueReportを行うためのツール群を指す。DolaReportr, DolaReportr, DolaReportr plug-in for redmineに分れる。 メリット アプリ開発者には少ない負担で対応可能(ライブラリ組込+数行の呼出コード) Android ver1.6以上対応 ユーザからの要望の投稿にも対応 Android標準のレポートシステムとの違い Android 2.2から、アプリが強制終了すると、ユーザの任意でAndroid マーケットへ、エラーログ(StackTrace)のレポートを送る仕組みが整えられた(Android D
次のページ
このページを最初にブックマークしてみませんか?
『Happy My Life』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く