FC2ブログ

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

ねんがんの iPhoneアプリをアップしたぞ!

ようやく、最初の iPhone アプリをアップしました。
現在 Waiting for Review です。
アプリの名称を書いてしまうとネタばれしてしまうので、公開されるまで伏せておきます。
まあ、時計アプリです。
スポンサーサイト

SELinux の本 捨てていいよね・・・

昔、Fedora Core 4(ぐらいだったかな?)が出たぐらいの頃、Linux系の仕事をやっていたので VMware で環境を作ってみました。
なんか Apache がうまく動かなかった。特にCGIが全然ダメだった・・・

調べてみたら、SELinux というものがあるらしい。
なるほど、セキュリティを強化か。
ちょうどセキュリティに関することが叫ばれている時期だったので、これは身につけないといけないなと思い、本を買いました。

SELINUX システム管理 ~セキュアOSの基礎と運用~
オライリー・ジャパン




時は流れ2010年。その本が出てきました。
真ん中ぐらいに しおり がはさまっていました。

あれから Linux のサーバ構築の仕事とかいくつかありました。去年もやったな。
でも、SELinux は使いませんでした。
じゃあ、あの本は役に立たなかったのかというと、そうでもない。
なにかあったら
『あ、SELinux 無効にしなきゃ』
といった感じでスムーズに作業をこなせています。

今はセキュリティよりも仮想化の方が流行っています(あ、でももう落ち目かな?)。
ユーザひとりひとり、プログラムひとつひとつに強いセキュリティを施すよりも、
ユーザひとりひとり、プログラムひとつひとつに仮想マシンをあげちゃう感じです。
一人のユーザしか使わないマシンにそんな強いセキュリティはいらない。
デメリットの方が強すぎる。

  • 設定が超面倒。誰もメンテナンスできないよ
  • リソースの無駄。(本によるとCPUリソースの約7%を消費とある)


もう、この本捨てちゃっていいよね。
たぶん、SELinux を無効にする方法だけ知っていればいいと思うので、メモ。

  1. /etc/sysconfig/selinux を開く
  2. SELINUX=disabled にする
  3. 再起動

以上。

でも、この本に書いてあるように軍事レベルでは使われているのかな?
軍事レベルのしごととかやることあるかなぁ?
そういえば、昔、MI6でスパイ募集とかちょっと話題になった時に、入りたいとか思ったな。
そこではこの技術必要かな?

耐久テスト

007 トゥモロー・ネバー・ダイ 見て思った。
悪の組織のコンピュータとか、銃で撃たれたぐらいで誤作動しちゃダメだよな。

耐久テストちゃんとやってないよね。
日本人からしてみれば、あんな事態は想定外だろうけど、悪いことしている人たちのシステムなんだから、どこかの国の諜報部員が来て壊すとか想定内なんじゃないのかな?

あの映画、中国の諜報部員(だったか?)の隠れ家みたいなところに置いてあるパソコンのキーボードが漢字しか書いていなくて、ボンドがお手上げになるシーンがある。中国のキーボードってあんな感じなの?

それと、あの映画に出てくる人、スティーブ・ジョブズに似ていると思ったのは私だけ?

UITextView のキャレットの位置を設定する方法

やりたいこと

  • ビューが表示された時に UITextView が入力できる状態にする(キーボードが出てる)
  • その UITextView にはじめからテキストが入力されている
  • そのままだとテキストの後ろにキャレットがあるのだが、キャレットは先頭に持って行きたい
  • UIは Interface Builder で作る


MyViewController.h
@interface MyViewController : UIViewController
<UITextViewDelegate>
{
NSString * text;

IBOutlet UITextView * tv;
}

@property (nonatomic, retain) NSString * text;
@property (nonatomic, retain) UITextView * tv;

@end


MyViewController.m
#import "MyViewController.h"

@implementation MyViewController

@synthesize text;
@synthesize tv;

/**
* ビューがロードされたときの処理
*/
- (void)viewDidLoad
{
[super viewDidLoad];

// 初期表示するテキストを設定
// viewDidLoad 以降でないと、UITextView が生成されていない
if(text != nil)
{
tv.text = text;
}

// キーボードを表示
[tvMessage becomeFirstResponder];
}

/**
* UITextView に対するキーボードが表示された後の処理
*/
- (void)textViewDidBeginEditing:(UITextView *)textView
{
// キャレットの位置を先頭へ
// ここもやはり、textViewDidBeginEditing 以降でないとダメっぽい
NSRange range;
range.location = 0;
range.length = 0;
tv.selectedRange = range;
}

@end

iPhone の向きと UIImageOrientation メモ

iPhone で写真を撮影した時の端末の向きと、その写真を読み込んだ時の UIImage.imageOrientation プロパティの値メモです。

up.png
UIImageOrientationUp (0)




down.png
UIImageOrientationDown (1)




left.png
UIImageOrientationLeft (2)




right.png
UIImageOrientationRight (3)




ただし、この関係が成立するのは、

  1. アプリからカメラを起動して直接写真を取り込んだとき。
  2. iPhoneのカメラで撮影したときにカメラロールに保存された画像

の場合です。
アプリで生成した画像を UIImageWriteToSavedPhotosAlbum を使って保存するときは、向きの情報を入れられないみたいで、向きの情報は0(横にして撮影した)になってしまう。
iPhone を縦にして撮影した画像はどちらかというと特殊な扱い。
まあ、普通のデジカメは横長ですから・・・

でも、iPhone 的には縦長が普通なのではないかと思う。
UIImagePickerController で撮影したとき、使用するかどうかのプレビューが表示されるのだが、横向きで撮影した時のプレビューが納得いかない。
縦長の画面に横長の画像を押し込んだ感じのプレビューになる。

ショートカットで覚えてしまったため名称やメニューからの呼び出しが分からない Illustrator の機能

Ctrl + 5
 ガイド作成

Ctrl + 7
 クリッピングマスク作成
 たまに、Ctrl + 5 と間違える。

Ctrl + Y
 アウトラインとの切り替え。
 頻繁に使うのでわざわざメニューから呼び出すことはない。
 名称知らなくてもいいし。

Ctrl + U
 線とかアンカーポイントの上にマウスカーソルが乗ると
 「アンカーポイント」とか「交差」とかが出る機能のON/OFF。
 もはや名称が分からん。

Ctrl + J
 アンカーポイントの連結。
 「コーナー」「スムーズ」のダイアログが出る。

Ctrl + Alt + J
 アンカーポイントの位置揃え。
 「水平軸」「垂直軸」「2軸とも」のダイアログが出る。

負のスパイラル

退院してから一ヶ月以上、湿布+コルセットやってたら、
腰の部分の皮が剥けました。お風呂に入るとしみる。

昨日、今日とコルセットを少しゆるめにしました。

いつもより早く痛くなりました。

腰に負担がかからないように歩きました。

足が痛くなりました。

やべぇ。負のスパイラルだ・・・

ゆとり make ten

make ten とは、4つの数字に四則演算を使って10を作るってやつ。
切符の番号とか、車のナンバーとかでやったりするゲームです。
誰が先に解けるかとかやったりしました。
まあ、頭の体操にはいいです。
例)
 1234 → 1+2+3+4=10
 2222 → 2×2×2+2=10
        (2+2)×2+2=10 ※カッコもあり

で、今日出された問題が

 1199

実際やってみると、結構難しいんですよ。
眠れなくなるといけないので、答え書いときます。
この黒い部分をマウスで選択すると答えが見えます。
-- 追記 --
  iPhoneで見たら丸見えだった・・・

(1+(1÷9))×9=10


この make ten って数字の組み合わせによっては10にできないのとかあるんですよね。
たとえば、 1111 とか。
この 1199 も問題として出されなければ、10にできないものとして諦めたかも。

あ、こういうのはダメですよ。

1111 → 11+1-1=10

1+1=11 なんて、まるで・・・VBじゃないか・・・
そうそう。はじめてVBでプログラム書いたとき、
テキストボックスに入力した数字を連結してたよな・・・
コンピュータ的にはこれはこれで正しいのではないか?

1111 → int("1"+"1")+1-1=10

ということは、1199 もイケル

1199 → 1× int("1"+"9")ー9=10

まあ、ゲームなんだからこれぐらいゆとりあってもいいでしょ。

UIViewController の shouldAutorotateToInterfaceOrientation

UIViewController の shouldAutorotateToInterfaceOrientation は常に NO を返しちゃいかんようだ。
View 生成時に iPhone自体が全方向チェックしている。
Viewの向きは変えずに、iPhone の向きの変化をとりたいだけ。
加速度センサーでチェックするほどの精度はいらない。大雑把でいい。

本当にやりたいのは、ビューの外側は固定で
中身だけ iPhone の向きに合わせて回転させたい。
この辺はプログラムで座標設定しないといけないのかな?

-- 追記 --
viewDidLoad よりも先に shouldAutorotateToInterfaceOrientation 呼ばれるんだ・・・
ちょっとめんどいな・・・

-- 追記 --
return (interfaceOrientation == UIInterfaceOrientationPortrait);
で Portrait のみ有効にすると、どんなに回転させても、
以降 Portrait で shouldAutorotateToInterfaceOrientation が呼ばれない。
これでは、やりたいことができない・・・

-- 追記 --
でも、UIImagePickerController のカメラって
ボタンの位置は変わらず、ボタンの中身の絵だけ回転してるよな・・・

おもいやり

マミが提唱する実装パターンの一つ、「おもいやり」の実装パターンについて。


while(マミ.体力 > 0)
{
  マミ.仕事();
}

// 体力がなくなりループを抜けたら
救急車.搬送(マミ);


常に体力をチェックすることは大事です。
でも、0との比較はちょっと・・・


try
{
  // 馬車馬のように働く無限ループ
  while(true)
  {
    マミ.仕事();
  }
}
catch(HardwareException e)
{
  救急車.搬送(マミ);
}


体調管理を怠るような人は、try-catch の優しい目で見守ってあげましょう。
そして、できるだけ早く catch してあげましょう。
そうしないと Exception が上へ上へ昇っていき、昇天してしまいます。


On Error Goto 病院


VBならダメになったときの対処をあらかじめ宣言できます。

ダメになった時は病院がおすすめです。
無理して仕事させてはいけません。

On Error Resume Next

マミ.仕事()
マミ.仕事()
マミ.仕事()
' え?まだ続くの?
マミ.仕事()
マミ.仕事()
' スイマセン、ちょっと休んでいいですか?
マミ.仕事()
マミ.仕事()
' ちょっと頭痛がします...
マミ.仕事()
マミ.仕事()
' なんか、めまいがします...
マミ.仕事()
マミ.仕事()
マミ.仕事()
' あれ?何も見えないぞ...
マミ.仕事()
マミ.仕事()


「On Error Resume Next」直訳すると、
「何があろうと、とにかく仕事を続けろ」ってことです。
On Error Resume Next はおもいやりに欠けます。


for(成果 = 0; 成果 <= 目標; 成果++)
{
  マミ.仕事();
  目標 += 10;
}


ゴールの見えない仕事もいけません。



try
{
  マミ.仕事();
}
catch(体力的限界 e)
{
  マミ.休養();
}
catch(肉体的障害 e)
{
  医者.治療(マミ);
}
catch(精神的障害 e)
{
  カウンセラー.カウンセリング(マミ);
}


体力だけではなく、精神的サポートも必要です。
そして、それぞれの症状にあった処置が必要です。


try
{
  マミ.仕事();
}
catch(障害 e)
{
  マミ = null;
}


面倒だからと言って、例外処理をまとめてはいけません。



// 人を人とも思わぬ無限ループ
while(true)
{
  try
  {
    マミ.仕事();
  }
  catch(障害 e)
  {
    マミ = マミ.クローン();
  }
}


代わりはいくらでもいるんだ
そんな考えはやめましょう。
プロフィール

マミ

Author:マミ
寝たきり、車いすの入院を経験し、ユーザビリティ/アクセシビリティへの意識が変わったと豪語するコンピュータプログラマ。

現在、腰椎分離症と不眠症に悩まさせれながら仕事復帰に向けてリハビリ中

マイアプリ

色色色色 〜色の辞典〜
バージョン:1.0
価格:¥170
iTunesで開く サポートページ
色々な方法で色を探します。
500を超える色すべてに、その色にまつわる豆知識も記載してあります。
資料として、暇つぶしにも良いアプリです。



本気出す 本気出すマニュアル
バージョン:1.10
価格:無料
iTunesで開く サポートページ
怠けてばかりの自分を自分で弁護していませんか?そろそろ本気出しましょう。

そろばん時計そろばん時計
バージョン:1.0
価格:無料
iTunesで開く サポートページ
この時計読めますか?
そろばんで時刻を表してみました。

Twitter
 
リンク
カテゴリ
最新記事
月別アーカイブ
最新コメント
最新トラックバック
RSSリンクの表示
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。