2012年10月27日土曜日

日記

  • どうも休日にやろうとしてもまあ仕事に繋がることはなかなかできないものだ
  • プログラム作業には適度な放置とつなかった時間が必要なので休日はよいのだけれどそこまでモチベーションがあがらないんだよね。というか遊ぶものがたくさんあるのが困る。
  • 人は何にお金を払うのかということを風呂に入りながら考えた。
  • でも人は何にお金を払うのか、たいていの場合人付き合いに関してはあまり人は金を惜しまない。ゲームでいえばいわゆる英雄がいたらできることを協力をするし、英雄になるのにも金を払おうとする。これがオンゲでお金が支払われる動機のひとつだと思う。
    • つまり金を払う理由はプライドだよねえと
  • ドスパラあたりで見ると二年前くらいのスマホはすでに捨て値なのでいろいろ利用価値がありそうだ。
  • とりあえず今日は久しぶりに外出してご飯
  • いろいろ考える。また今月末に動きがありそうなのでそれなりに覚悟はしておく。
  • 内省するのにも日記を書くのはよいこと 、コメントとかはずしているのはあくまで自己振り返りのためのブログゆえのことですな。

2012年10月26日金曜日

開発はまり(日記)

  • 今日はUITableViewCellにWindowsでいうところの、いわゆるOwnerDrawをかけて見栄えをかえてるライブラリを使おうとして四苦八苦。結論はこりゃ使えない
  • ARC以前のライブラリで対応がされていないのかどうでもいいところでばつばつ落ちるし最新のiOSだと見栄えが悪くなる。プロジェクトオーナーも放置気味。よさげなのだがなあ。
  • 一年単位で互換性をあやしくしていくAppleがいかんと思うんだよ。うん。
  • プラットホーマーとしてはMicrosoftが一番ですというのは昔からそう思っている。
  • まあたまにはそんなこともある。こういうときは早めに対案に移るべきすな。確認が必要なこととか準備すべきスタブはまだたくさんあるし思考停止はまずい。
  • これで開発はじめてまる四週間かー微妙な進捗だなー。

2012年10月25日木曜日

Kindle

  • 買いますよええ、個人的にはpaperwhiteの方を、検証用にはfireを
  • amazonはまあもちろんですが、docomoが勝負に出てますね。
    • 回線費はAmazonが負担でどのくらいdocomoに利益が出るのか
  • 値段は安いが新たなandroidが増えたところでもう市場が飽和してるよねー
  • ストールマン先生の言ってたことももっともだが、 技術書の重さには耐え切れない
    • バックドアの問題以外はいたしかたない話でマネーがなければ何もはじまらないのだから個人情報とかは諦めるしかない、消せるんであれば有り難いが。
    • それを深刻に考える人が十分な数になればプリペイドカードでという話にもなろうよ
      • それを考える人が十分な数にならないのが多分問題そのものなんだろうけどね
    • 貸与っつーんなら端末を貸せばいい、e-inkはコピー機で複写できるよと、突っ込みどころはたくさんありますね。
  • ストールマン先生の言うところの問題はすべての書籍がe-bookにとってかわられ紙の書籍がなくなったときの問題もあると思う。データフォーマットがプロプラ云々。まあ、でもエロ本と同人誌があるから平気じゃね?
  • 一般的な流通を考えると書籍なんてものは中世から近代にかけてずっと市場や政府に規制されつづけてるものでオープンじゃないからだめという話にはあまりうなずけない。
  • 電池の寿命や、記憶装置の容量や、電子部品の寿命が一定以上になった場合、本を紙で読む文化が消失する可能性は十分ありえる
  • それは誰にとっての問題か
  • 一般的には不人気なものが電子書籍として読めるのは素直にありがたい話
  • 検閲、恣意的な操作など政治的問題になる可能性はありうる
  • 流通と本屋と出版業が一層厳しくなる、またひとつアメリカ企業がふくれる
  • 所有欲という観点からいくとデジタルデータとしての本は装飾としての属性を大幅に減少させたか、ポータビリティを持たせたものという理解ができなくもない。
    • たくさんゲームがDLされた3DSにはまあ、見せびらかして多少の装飾性はあるじゃないですか的な意味で装飾性は失ってないよ言説

2012年10月24日水曜日

日記

  • iPhoneアプリは、キーボードで入力フィールドが隠れた際の処理とか、ビューが組み合わさってると結構面倒。かと思うとアニメーションの追加はとても簡単だったり。うーん。
  • AuのiPhoneでWiFiを有効にするとくそな電波も拾ってしまって3Gのがマシで外にでてるときは切っているが、家の中や会社だとWiFiにしないといけないので、面倒。
  • iPad miniはiPadの縮小版らしいが、iPad2をまんま縮小しているのでiPad用に設計したUIとかこれサイズのまま縮んで相当タップしづらくなるけど、どうするよ問題。
  • バンダイチャンネルを契約してみたがスマホでは無理なのねこれ。WiFiで見てくださいとか。アプリ用意してくれればいいのに。まあでも電車の中でアニメ見るのは面倒そう。
  • というわけで未視聴のアニメを視聴。コードギアスとかスクライドとか。多分半年か一年くらいかけて見尽くしたら解約とかでいいすな。まあそれが終えたらHuluで海外ドラマでも。よい時代だ。
  • 読書、ワインバーグ「スーパーエンジニアへの道」。システム屋さん用自己啓発書といえなくもないですね。原題の直訳は「テクニカルリーダーへの道」。初版が1991年だから仕方ないが、現代だと直訳のがしっくりくる。技術リードということっすな。

2012年10月19日金曜日

xcode4.5におけるローカライズファイルについて

Q. xCode4.5でLocalizable.stringをローカライズしようとしたが情報ペインにローカライズ用の「+」がないのでどうしたらいいかわからないよ。

A. プロジェクトファイルをナビゲーターから選んで、"PROJECT"の下にある自分のプロジェクトをクリック。右側で"Info"ペインを選ぶと、"Localization"のパートがあるので、そこに新しい言語を追加するとうまくいくよ。これをやったあとはランゲージファイルを追加すると自動的にローカライズしたい言語が追加されていくようになるよ。

これはxCode 4.4.1からの機能だけどぼくも気づいたのは4.5からさ。

http://stackoverflow.com/questions/12546355/localize-localizable-strings-with-xcode-4-5

=========

  • ちなみに、一部だけローカライズするということができなくなったのは明らかな問題
  • いっぺんにstoryboardまで含めてローカライズされるので、ワークフロー的には全て出来上がってから最後にしたほうがよい。
  • storyboardはコードの内容にかかわってくるので、これを行ったとたんコードの修正がstoryboardの修正が二重化してしまうのだ。消すと特定言語の環境でのみエラーが発生するとか笑えない状態になる。
  • 結果的にローカライズの対応状況はよくなるかもしれないが・・・

2012年10月18日木曜日

RestKitの概要(翻訳)

RestKitについて検索しても国内であまりヒットしないのでトップページを翻訳。
使ってるけど、包括的にあんまり理解できてないので。冷静に読んでみると発見がある。
つか使い方覚えるまで、ちょっと違った書き方するだけで、BAD_ACCESSしまくるし、エラーメッセージが超曖昧。ばんばんAPIがObsolateしまくっていて、少し古い情報が役立たなかったりする、厄介なフレームワークですよほんとに。使いこなせれば便利そうだが。

http://restkit.org/
============================================================

RestKitはiOS向けのObjective-Cのフレームワークで、RESTful web serviceと、シンプルかつ高速に楽しく、対話することを目的としたものです。クリーンでシンプルなHTTPリクエスト/リスポンスのAPIと強力なオブジェクトマッピングシステムは製品作成において構築するべきコードを大量に減らしてくれることでしょう。

RestKitの第一目標はデベロッパが、リクエストの送信や、リスポンスのパース、リモートリソースの形式の構築に悩まされずに アプリケーションのデータモデルに注力できるようにすることです。

============================================================

RestKitがしてくれること

○シンプルで高レベルなHTTP Request/Response
RestKitはNSURLConnectionを基底としたHTTPクライアント と一緒にリリースされます。これはMIMEタイプやステータスコードの検査に関する便利なメソッドを含んでいます。フォームデータのサブミットもディクショナリによるパラメーターを指定することで簡単に行うことが出来、マルチパートデータの構築も容易に行うことが可能です。

○CoreDataのサポート
RestKitはオブジェクトマッピングレイヤの基底部分において、Appleのコアデータフレームワークとのインテグレーションを行っています。 このことにより、Restkitはリモートから読みこんだデータをローカルストアに直接永続化して、高速なローカルキャッシュとして、またはクラウドと定期的に同期するプライマリデータストアとして扱うことができます。
RestKitはCore Dataとの連携を用意し、データモデルをプロパティそのままの値を用いて、トラバースすることができます。また、コアデータのプリミティブに用意された良質なAPIを用いることで設定とユースケースの確認を省力化することができます。

○データベースシーディング
CoreDataをオブジェクトストアとして用いる場合、データファイルの集合としてデータベースをシードしておくことができます。このことによりAppStoreにサブミットする際に、アプリケーションバンドルにすぐに使えるデータベースを含めた形で提供することができます。

○サーバー及び開発環境の変更をフレームワークレベルでサポート
(development/production/staging)
RestKitは完全URLでなく、ベースURLとリソースパスの組み合わせでURLを管理します。このためターゲットとなるサーバーを容易に変更可能です。URL文字列の保管やNSURLオブジェクトの生成に頭を悩ませる必要はありません
 
○オブジェクトマッピングシステム
RestKitは、データのペイロードをネイティブのCocoaオブジェクトに宣言的にマッピングすることのできるモデリングレイヤを提供します。このことによりアプリケーションプログラマは、パース処理を行うことを考えずに、フレームワークに対してリモートリソースを非同期に呼び出し、結果をデリゲートを介して受け取ることができます。オブジェクトマッピングはキーバリューコーディングで実装されており、パースされたオブジェクトグラフを迅速にトラバースすることが可能です。リフレクション処理がプロパティに対して行われ、Stringに加工された日付をNSDateに復元することもできます。

○プラグイン可能なパーシングレイヤ
RestKitは現在JSON(SBJSON)とYAJLパーサーをサポートしています。パース操作はシンプルなインターフェースの背後に実装されており、容易かつ透過的に新規のデータフォーマットを追加することが可能です。
============================================================

なんでも屋さん

この3年くらいで業務で使ったスキルセット書き出し

プラットホーム: Android/iOS/Flash/Windows(Win32,Windows Forms)/HTML5
言語 : C#/Java/JavaScript/Objective-C/C、C++/
サーバー : Javaサーブレット/PHP/GAEJ/ASP.NET
専門知識 : 画像処理(OpenCV)、音声処理(OpenAL、Wave加工)、Geo spatial関連

DBとかライブラリがなんとかとかはめんどくさいので省くけどすっかりなんでも屋さんなあ
できることは多いけれどたいしたことはできてないのは反省しよう

2012年10月17日水曜日

グループ化されたUITableViewのセルを行単位でインデントする

  • 例によって、いい情報がなかったので。
  • iOS標準のアドレス帳(の編集画面)っぽく、UITableViewのCellインデントしたいケースがある。
    • ぶっちゃけ個人的に真似してみたかっただけ。
  • xibを用いる方法としてTableViewを含むViewを作って、TableViewを含むControllerに差し込む方法が考えられる。だがこの方法だとTableView自体に微妙にグラデーションがかかっているため見栄えが悪くなる。
    • なによりTableViewがふたつできて、delegateの呼び出すメソッドが二重になるという時点で泣きたくなるというかそもそも上手く動くのかすらわからない。
  • UITableViewCellのサブクラスを作成してStoryBoard上でインデントしたいCellに適用することでうまく動作した。
  • 掲示板でこんな感じにしたらーというやりとりがあったのでほぼ引き移し。とてもビューティフルとはいいがたいすなー。
  • コードは以下のような感じ
========================================
#import "IndentTableViewCell.h"

@implementation IndentTableViewCell{
    CGRect original;
}

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
    if (self) {
        // Initialization code
        original = CGRectMake(0,0,0,0);

    }
    return self;
}

- (void)setSelected:(BOOL)selected animated:(BOOL)animated
{

}

-(void) layoutSubviews
{
   
    [super layoutSubviews];
    if(original.size.width==0){
        original = self.frame;
    }
    CGSize offset = CGSizeMake(120,30);
    CGFloat newX = original.origin.x + offset.width;
    CGFloat newWidth = original.size.width - offset.width;
    CGRect newFrame = CGRectMake(newX,original.origin.y, newWidth, original.size.height);
    self.frame = newFrame;
   
}

@end
========================================
  • 端末を回転したときとかはうまく動かないので回転対応する場合は追加のコードが必要になるが、はじめて二週間と半分なのでそこまで学習できてないです(><)素人ですみません。
  • やってることは至極当然のことっぽいですね。あーこんなのWindowsでも10年くらいまえにみたわー。おれやったことあるわー。
  • iOS5.1target+Storyboard+ARCで組んでます。
  • あとでBlogger用のコードフォーマッターさがそう。古いのが新しいテンプレートで使えなくなってるんだよなあ。

(追記)単にこれだけだとiOS5.1以前で表示が崩れることが判明。むーん。独自にビューを作るしかないかー。 ただまあ考え方は便利なので残しておく。

iPhone開発ぼちぼち

  • iPhone開発三週目
  • StoryBoardでの作り方を覚えつつ、セグエー、UITableViewの把握と、CoreDataをやって、RestKitを頑張るがまあ乗り越える壁は多いね。アニメーションも把握したいけど、腰すえてやらないと厳しそうなあ。
  • フレームワーク自体はそう大きくないことが日経ソフトウェアの付録で理解できてよかった。
  • メモリリークしてるくさくするっと落ちるが今気にすることでわないな。
  • カテゴリーは便利
  • MacOS Xのときすこし気張ってCocoaをちゃんとやってたらと仮定して空しくなるがMacOS Xのタイミングで一気にMac OS界隈のフリーソフトが消失して、今もMacのフリーソフトが微妙なことを考えるとそうでもないような気もまたする。

2012年10月15日月曜日

XCOM:Enemy Unknown

  • 基地イベントをクリアしてサイオニクス技術が見つかりようやく中盤戦突破といったところ
  • 武器も整ってきたけどまだまだ厳しい。
  • 不測のイベントが緊張感あって楽しい、というか高難易度だとひどいことになりそうね。
  • 車やUFOのエネルギーで思いがけず爆死。カバーをとってはいけないものの判別がUFO内ではつかないよ。
  • テロイベントでクリサリドが8体出現、民間人を助けようとしてゾンビ祭り。民間人がいなければ楽勝なんだけどねえ。全部ゾンビ化したら敵が27体になるとかどうしろと。しかもそんな状況になったら局地的には勝っても敗北。
  • クリサリドのゾンビ化とか、マインドコントロールが厳しいですね。隊列をみだしてきたり、カバーを破壊する奴がやっかいというのはなんかL4Dでも見たなあ。
  • 毒は時間で消えることがわかると大分気楽。

2012年10月14日日曜日

XCOM:Enemy Unknown



  • XCOM : Enemy Unknownはじめた
  • ターンベースの戦略SRPGだったり組織運営シムだったり
  • いまプレイ中はこれと世界樹4です。
  • 8時間プレイして 敵基地に潜入して育て上げた舞台が全滅してうわーっとなったところ。
  • 爆発の可能性のあるものにカバーを取って、そこから総崩れで全滅。シビア 
  • 日本語訳がところどころ残念なところがあるけど、英語でまくしたてられても、概要つかめるか掴めないか程度の英語力しかないので、ある程度の脳内補間をきかせて納得することにしている。
  • XBOX360からPCに以降しています。さすがにもう2000年代中頃のスペックでのゲームプレイはいいやと。次世代機はやくだしやがれですよ。
  • ゲームはすげえおもしれえですよ。
ターンベースのストラテジだが、70種類のミッションのうちいくつかはランダム要素をもって生成される

 初期キャラをカスタマイズして赤い人に。なんかこの配色でチームリーダーは日本人的に落ち着きますね。けど出撃するたびに怪我するせいでゲームが進行するほど目立たなくなってきた。
 

日記

一年ぶりの日記。というか一年前を見て状況変わったなあと。
むしろまだ一年しか経ってないのかという感もあり。
ていうかもうおっさんですし、時間がたってないのはありがたいんですけど。
とりあえず以降先のアカウントに名前移して続けよう。文章書くのはよいことデスよ。
そしてよいこともあったけど悪化してもう終わりかけてるよなあという感じ。

一年間の当たり障りのないトピック
  • iOSでもここ数週間せこせこやりはじめました。お仕事としては一年前からやってはいる。
  • 去年からの興味はcocos2d-x、enchant.js、ios+cocoatouchと遷移。
  • PCを新調したが、電源がいってただけで壊れたわけでじゃなかった。丈夫。
  • 周りにやる気のある人が増えてきて最近はよい感じ。
  • 見積もりとか開発工程とかを五、六年ぶりくらいか、人が増えたので見直す必要性にかられている。 
  • 見積もり手法をちゃんとお勉強して、何種類か使い分けられる立派なえすいーになりたいです。
  • やっぱりBlogで人気なのは技術系のノウハウを書き込んだたあたりなので、あれですね。世界はオープンソースでオープンテクニックで、もっと全開じゃなきゃいけないですよね(興奮)
  • Objective-C 2.0 + Cocoa Touchは適度に難易度高くてそこそこ水にあってると思うー。 
  • あとメモリ管理いらないしー
  • http://paranoid360.blogspot.com/2010/06/objective-c.html
  • 二年前の感想、すまんこと書いた。
一年間で考えたことと愚痴
  • 愚痴が増えてくると危険
  • だけど同時に技術って安く見られるよねというのはどうしようもないところ。
  • 何かが簡単に見えるほど、それは自分にもできるんじゃないかと思って見下す。で自分にできないことはこの世の中でどうでもよいのだと。だって俺十分稼いでますし。
  • プロダクツを維持して改善するにはよいものに追加投資していくしかない。システムやものは一発で完成することはほとんどない。完成したら衰えるしかない。
  • 人それぞれなので俺のやりかたに口出ししないでもらいたい。 
  • 他人がダメなときに俺も口出ししないようにしたいがそこが徹底できてないのは俺がダメなんだろうなと思う。
  • マネーをもっとマネーを
焼畑農業
  • 他人に利用されるのはある意味ものを作る仕事をしていれば仕方ない、絶対やってはいけないのは焼畑農業。
  • 安く出来ます。いくらで。○○円です。え、それ人件費出てなくないでも安いからOK。がんばりましたがやっぱりできませんでした。でもこのくらいのサイズでならできてるのでこれ使ってください。まあ仕方ないか追加で支払うお金もないし。
  • ポイントは客も評価できてないところ。怒りたくても難しいこと言われるとわからないし、怒るのにも体力がいるのだ。
  • この場合悪意のあるのは受けた側で、そもそも自分が出来ないことを知ってやってる、もしくは何も知らないで頑張ろうとしてる、もしくは他人にやらせようとしてる。
  • 業界の上部構造がおかしくなって、畑を燃やしてでも金を取ろうという組織や人が増えている。とりあえずでも金をとるのが成功という考え。畑を燃やせば、復活しないし業界は死ぬ。こんなもんかーとなって人はつかなくなる。
  • まあつまり物作る人はみんながハッピーになれるレベルまで勉強したいよね。組織としては三方よしを実現するために人材を育成していかないとね。
  • とても難しいことというのは分かるけど、いまやパーツを作るだけではお金を稼げないくらいに業界は燃やされてしまったような気がする。一本作って300万くらい? 困難。
  • 恐ろしいことに50万くらいで作ってくれませんかという依頼が8割くらいなんですよ。さすがにお断りするしかない。せめて150~200くらい準備してくれないと人を二ヶ月動かす根拠にならんのです。で普通の技術者が二ヶ月でできることって何かしらね。そも何も知らない人が二ヶ月でできることって? 50万だと営業費用とかも考えに含めると人を二週間しか動かせないけど、その期間でできることって何?
  • コストのカットをもっと意識したほうがいいのかもしれない。
  • お金が渋いのはウェブアプリからの以降のせいなんかしらね。いやウェブサイトのが金にはなっているのか。