2009/10/31

[C]putsとputcharの違い

会社の昼休み中、Objective-Cに触れないので、これを機会に今、↓をやっています。


で、今、for文の部分をやっているんだけど、その中で、putcharという関数がでてきました。

そこで疑問に思ったのですが、puts関数とputchar関数の違いって何でしょうか?

putsが文字列を表示できるのに対して、putchar関数は文字しか表示しないという認識でいいのかなととりあえず納得させています。

ここらへんの深い話も、本書に登場してくるのか?乞うご期待です。

2009/10/30

[iPod touch]NASAアプリがインストールできなかった

@ NASA が公式 iPhone アプリを出したというエントリーでNASAが公式アプリをリリースしたそうで、興味深かったので、インストールしようとしたら、なぜかインストールできませんでした。

理由はわかりませんが、ひょっとしたらiPhoneのみ対応とか。。。

追記
OSのバージョンは、3.1.2です。

2009/10/29

[php]submitボタンにおける考察

当たり前と言っては、当たり前なのかもしれませんが、inputタグのtype属性がsubmitの場合でも、submitした後、$_POSTでvalueの値を取得できるみたいです。

以下、サンプルプログラム

<form action="./hoge.php" method="post">
<input type="submit" value="送信" name="go">
</form>
//hoge.php側
<?php
//変数が宣言されていない場合
if($_POST["go"] == ""){
print("変数が宣言されていません
");
//変数が宣言されている場合
}else{
print($_POST["go"]); //送信と表示
}
?>

こうしてテンプレートのようにまとめておけば、いつでも使えるようになるので便利かなと。

2009/10/28

[html][css]safariのtextareaが自動的に動く

今、サイトのメンテナンスをしていて、作ったページをsafari(ver 4)で開いたら、なんと、なんと、textareaの大きさを手動で変更できちゃったのです。

まがいなりにも3年間ぐらいhtmlを書き続けてきましたが、こんな現象初めてです。

だって、↓だけ書いただけだよ。

<textarea cols="30" rows="30">safari version 4で動作確認中</textarea>


最初に開いたとき、↓が表示されました。
Photobucket

で、右下にある模様をドラッグしたら動いちゃったよ。
Photobucket

ちょっと試してみたところ、大きくすることはできるのですが、最初に表示された大きさよりも小さくすることはできないみたいです。

これはバグではなく、safari上の仕様だと思われる。

ちなみに、Safari 3 で textarea のリサイズを制御する方法をみたところ、この現象は、safari3からあるみたいです。

で、回避方法なのですが、CSSから制御するみたいで、先ほど紹介したサイトによると、
style="resize:both;"→縦横両方動く
style="resize:horizontal;"→横方向だけ動く
style="resize:vertical;"→縦方向だけ動く
style="resize:none;"→両方動かない
でオッケーみたいです。

ここで問題となるのは、普段、IEだけしか対応していないサイトを開発していると、html version 5によって拡張されたブラウザの仕様がわからなくなってしまうこと。

確かに、イントラなどは、企業内のサイトなので、当然、導入されているOSがmicrosoftのwindowsだからそんなことは関係ねーっと思っていると技術的にドンドン遅れていく懸念が想定されます。

他のブラウザのことも意識することが大切なのかなと。
日々精進ですね!!

追記
上で紹介したテキストエリアを表示するので、safari3または、safari4をインストールされている方は、是非、試していただきたいです。


2009/10/27

[php]文字列としてYYYYMMDDHH24MISS形式の日付を出力

今、iPhoneのサポートサイトの全面改定のために、久しぶりにphpを触っています。

今回、db設計から見直して(レンタルサーバーでmysqlが使えるので)いるのですが、その中で日付データを文字列でかつ、oracleでいうところの「YYYYMMDDHH24MISS」形式でほしかったので、リファレンスを見ながら、その取得方法を調べました。

ずばりいうと下記の関数でいけちゃうみたいです。

print(date(YmdHis));

実行してみたところ、確かに取得することができました。

これで日付に関して困ることはないのかなと。

See also:[php]システム日付をyyyymmddで表示

2009/10/26

[iPhone sdk]iTunes Connectに提出時の注意点その1

iTunes Connectに作成したアプリケーションを提出する際に、Xcodeで「アクティブな構成」を「Distribution」を選択してビルドします。

ビルドするだけで実行する必要がないのも注意するべき点の一つですが、その他にも、ビルド結果を見た時に、何も表示されないという現象が発生します。

もし何も表示されないようだったら、まず一回、「ビルド」→「すべてのターゲットをクリーニング」を選択して、一度リセットをした方がいいかもしれません。

現に、今、新しいアプリケーションを提出したのですが、上のような悩みを抱え、クリーニングしたら解決できましたので。

2009/10/25

[iPhone]iPhone Tech Talk World Tour 2009に申し込み

12月15日(おもいっきり平日なのですが)にiPhone Tech Talk World Tour 2009が開催されるみたいです。

お知らせメールがキタ瞬間に、そっこー申し込みしました。
当日は絶対に参加します。

今年のgoogleのイベントに参加できなかったので。

超楽しみー♪

[Blogger]bX-9d2tegというエラー

おとといだったと思いますが、bX-9d2tegというエラーメッセージが表示されてブログが見れない現象がありましたが、今は無事に復旧しました。

原因は不明ですが、お手数をおかけしました。

2009/10/24

[photoshop]ラスタライズ

これも最近、photoshopで聞かれるのですが、ラスタライズってなんぞや??

ラスタライズとは、コンピュータが扱う文字や画像を、プリンタで印刷したりディスプレイに表示できるように、色付きの小さな点の集まりで表現すること。

via:ラスタライズ

なるほどねー。
なんかこの手の単語(イラスト系)に弱いので、photoshopを使いながら慣れていきたいなーっと。

2009/10/23

[Blogger]labelの限界値

へー、一度に投稿につけられるラベルの数って、20個で、ラベル数は2000個だったんだ。

クリボウの Blogger Tips: Blogger のラベル数上限

2009/10/22

[photoshop]インターレースとは

よくphotoshopをいじっている時に、psdファイルからpngファイルに変換して保存を行う際に、インターレースをどうするか聞かれるのですが、そもそもインターレースって何??

インターレースとは、テレビやディスプレイなどが、1回の画面表示を奇数段目と偶数段目の2回の走査に分けて行なうこと。


via:インターレース

単純に表示するってことではなくて、2段階に調査を行って表示するってことなんだと理解した。

で、肝心のphotoshopの保存の際は、特に2段階で調査をしてもらう必要もないので、ノンインターレースでいいのかなーっと。

2009/10/21

[gauche]プログラミングGauche3回目読了

ついに3回目が読了しました。


ここにきて、「やはり、webアプリケーションを書くのにschemeを使うのは??」という気持ちがフツフツと。

当初の購入理由としては、「schemeを学びたいから」、「後々、JavaScriptで役に立つから」と、ある種、教育用言語とみなして読んでいたのですが、いざ、これでwebアプリを作れと言われてしまうと、うーん???と唸ってします。

サーバーサイドの言語は、asp、CF、phpしかさわったことがないので、perlやrubyをやるとまた違った視点で、gaucheでwebアプリケーションを作る事に対する見方が変わるのかなと。

でもまー、schemeの学習は、まだ続くので、あまり深く考えずにやっていこうかなと

2009/10/20

[Objective-C][iPhone sdk]UIWebView上で別ウィンドウを開く

UIWebViewを使ってwebページを開いときに、aタグのリンク先をtarget="_blanck"として設定しても、リンクをクリックした後に別ページ(window)にリンク先を表示することはできないらしい。

そのための解決策として、属性をはずす処理を発見しましたが、どうしても別ページにリンク先を表示させたい。
(属性をはずす処理は、
UIWebViewから target="_blank" や window.open() のページを開く方法や、
Mike Weller's Blog: UIWebView doesn't open target="_blank" links.
UIWebView と target="_blank"
にあります。)

[iPhone SDK] Avoid target="_blank" problem
UIWebViewから target="_blank" なリンクを開く方法パート2
それを避けるコーディングが記載されているのですが、これを使って実装した場合に、はたして審査に通るのかなーっという不安があります。
(原因として、webkitの設定で起きているみたいです。)

やはり、UIWebViewを使ってページを開いた時は、別ウィンドウにリンク先を飛ばすことってできないんですかね??

うーん、確か、iPhone用のgoogleアプリで各メニューを選択するとsafari上にメニューが表示されるアプリが公開されているのですが、あれってどうやって実装しているのだろうか??

あれと同じ要領でやれば解決できると思うのですが。。。

また悩むよー。

[oracle]dbms_output.new_lineで改行

メモとして、dbms_output.putを使ってデバッグしまくる時、途中で改行したくなることがあるのですが、その際は、dbms_output.new_lineで改行できるみたいです。

Oracle PL/SQL 編16 - デバッグメッセージ表示、dbms_output.put_line

2009/10/19

[lifehack]逆進性とは

消費税には逆進性があるからだ。

via:ワープアのあなたが消費税アップに断固反対するべき理由

上の文章を読んで、逆進性を調べてみた

・・・省略・・・
このように、ある目的を達するために行われた行為が、実質的にはその目的とは逆の効果となって表われてしまうことを逆進性といいます。

via:逆進性


なるほど、本来意図しない方向に行ってしまうことを言うのですね。

勉強になるなー。

2009/10/18

ストーカーされました

先週の話ですが、実は、ストーカー被害にあいました。

板橋区にある某デニーズで、晩ご飯を妻と一緒にしていた時。
その日は、新居に関する不動産屋さんとの打ち合わせで、帰りが夜中になってしまい、夫婦ともにものすごく疲れていた日。

注文が完了して、一息ついたちょーどその時、遠くの方から、トコトコとおばさんが近寄ってきて、

「あなたの、名前はなんっていうの??」



「○○さん、なんじゃーないの??」



と、ものすごくしつこく聞いてきて、最初は無視していたのですが、それでも、一向に引く気配がなかったので、

「そんなことどうでもいいじゃーないっすか」

「関係ないでしょ」

と突っぱねたのですが、それでも、聞いてくるので、適当な名前を言って、途中でそのやりとりをとめに入っていた店員さんが、そのおばさんをもとの席に座らせて、その場を、一時的に解決することができました。(すごく気持ちに悪い白髪のおばさんだったんですよー)

ですが、問題は、ここからで、その後、どうしても、トイレにいきたくなりました。

でも、トイレに行くには、そのばあさんの席の横をどうしても、通らなければならず、どうしよーっと悩んだあげく、トイレに行く事にしました。
(オシッコの方です。)

トイレでようをたしていると、後ろから、コトコトと、物静かな音をたてて、こちらにやってくる感じがしました。

まさか、男トイレだし、こないだろーっと思ったら、なんと、そのトレイのドアの隙間から、おばさんの足が、こちらにむいて足音が止まったのです。

そしたら、ガバーッと、ものすごい音をたてて、男トイレに入ってきました。

トイレの入り口は、背後にあったので、確実に、フォークに刺されて死ぬなーっと、すっげー怖かったのですが(汗の量もハンパではなかったです)、そのおばさんは、

「本当にさっき言った、名前だったの?」



と男トイレで聞いてくるのです。

僕は、まだオシッコが終わってない状態だったのですが、二人で、せまいトレイにいるのがヤダだったので、半ば漏らした状態で、急いでトイレがでて、店員さんが、急いで駆けつけてきてくれて、そのおばさんを元の席に座らせて、解決しました。

結局、スーツにちょっとオシッコがかかった状態で、ものすごく恥ずかしい思いと同時に死ぬほど怖かったです。

で、そこで、思ったのは、女性を襲うストーカー被害にあったことは、おそらく、もっと死ぬほど怖いんだろうなーっと、感じました。

夜外に出歩くことすら怖くなると思います。
ものすごく心理的に傷つくと感じました。

後、まとめとして、この事件から学んだことして、以下のことがあげられます。

1:男性もストーカー被害にあう可能性がある。
(自分は、大丈夫だろーっと思っていても、いざ何が起こるのかわからないのが、人生。現に僕もまさかと思って生きていました。)
2:日本だからといって、もはや安全とは限らない
(最近、夜、パトロールする人が増えている気がする。)
3:警察はすぐに助けてくれない。
(ここが一番肝心なところなのですが、妻が、店員さんに、「警察呼んでくれないんですかー」と聞いてくれたのですが、実際に、何かあるまで来てくれないみたいなのです。
実際に、襲われる、口論になるなどがないと、警察も動くに動けないようです。)
→自分の身は自分で守れということなのか!!

参考になるかどうかわかりませんが、少しでもお役に立てればと思い、書きました。

2009/10/17

[本]エジソン—魔術師といわれた発明王

大学生の時に、読んだマンガ



なぜなぜアル
お母さんが先生
走る実験室
電信技手エジソン
放浪時代
お母さんの死
メンロパークの魔術師
エジソン電灯を発明
発明は次から次へ
世界の英雄エジソン

via:目次

先日、エジソンの本を紹介したので、機会があったので、この本も紹介しようかなと。

マンガで学ぶ伝記ですが、すごく読んで楽しかったです。
前回と違って発明家エジソンとして描かれています。

電球の開発で有名になったことは、なんかで知ったのですが、その他にも、映画や音楽プレーヤーの開発など、現代生活に必要不可欠なものをたくさん開発されていたんですね。

しかも本作は、マンガなので、読んでいるぞーっって意識することなく、ラフに読むことができるので、心理的にだいぶ楽です。

老若男女問わず楽しむことができる作品です。

2009/10/16

トモダチが、戻るボタンコンテストに出品

以前、PHP講座に参加した際に、トモダチになったT君が、heteml主催の戻るボタンコンテストに作品を出品したそうです。

初めて聞いたコンテストなのですが、どうやら、戻るボタンをテーマに見て楽しいwebページを作成するみたいなのですが、T君は、テーマとして、シャーロックホームズに出てきそうな馭者(馬車をひく親父)をイメージしたページを作成されたそうな。

こちらから試すことができるので、是非、興味のある方は。
(※Internet Explorer には、対応していないみたいで、ページを開く際に音がなるのでその点注意が必要)

後、要望ですが、やっぱりalertはびっくりするよ。

2009/10/15

[iPhone sdk]SIGABRTの謎??

今、iPod touchの実機で最新のアプリケーションの動作確認を行なっているのですが、その際に、Xcodeが「SIGABRT」というメッセージをキャッチする時があります。
(この時、当然のことながら、iPod touchとmacを接続している時かつアプリが動作しなくなった時に発生)

で、ぐーぐる先生に伺ってみたところ、どーやら、Xcodeのバグと思われる記事を発見しました。
(以下、その記事)

uncharteddev:I just installed 3.0 and everytime I run something on the device I get a SIGABRT message right of the bat. Any ideas?

Desert Sun:This is an Xcode error... not your code. I am having the same problem and am fixing it now. I will let you know what to do if no one else knows before then. You can fix it yourself or wait for the patch from Apple. Hope this helps.

via:SIGABRT?!?!?!?!?

なので、掲示板に書かれてあるとおりパッチを待つか、修正するかどちらかにするしかないのですが、せっかちなので、修正するしかないんだろうなー。

2009/10/14

[miniGoogle]goo辞書検索追加

google gadgetでリリースを行ないましたminiGoogleですが、新たに、goo辞書を追加しました。

Photobucket

サポートしている検索項目は、

・国語辞書
・英和辞書
・和英辞書

をそれぞれサポートしました。

使い方はちょー簡単で、検索ボックスに検索したいキーワードを入力して、アイコンをクリックするだけ。

検索結果は、別ページに表示されるので、何度でも検索をすることができます。

より便利になったminiGoogleを是非!!

2009/10/13

[iPhone sdk]OS 3.1.2で実機テストする場合の注意点その2

昨日に引き続き、実機テストについてなのですが、やはり、Xcodeを最新にしたらビルドすることができました。

これで、最新のOSでテストできるぞと。

2009/10/12

[iPhone sdk]OS 3.1.2で実機テストする場合の注意点その1

今作っているアプリをOS 3.1.2で実機テストをしようと思ったら、

「供給されたiphone osデバイスが接続されていません」

というエラーが発生して実機でテストを行なうことができませんでした。

なぜかなーっと思って、google先生に聞いたところ、

ERROR「供給されたiPhone OS デバイスが接続されていません。」云々CommentsAdd Star
供給された iPhone OS デバイスが接続されていません
供給された iPhone OS デバイスが接続されていません(2)

がヒットしたので、参考にして試してみたのですが、いまいちうまくいきませんでした。

最終的な結論として、XcodeのバージョンとiPhone sdkのバージョンが古かったため、実機に移すことができなかったんじゃーないかと。

新しいバージョンのXcodeのダウンロード及びインストールは完了しているので、今度こそうまくいくかどうか試してみたい。
(ちなみに、Xcodeのバージョンは、3.1.4。iPhone sdkのバージョンは、3.1.2。)

[iPhone sdk]アプリ名を日本語にする

デフォルトでは、ホームスクリーンに表示されるアプリケーションの名前は、英語なのですが、日本語に変更したい場合があります。

そんな時は、Info.plistの「Bundle display name」の値を日本語にセットすれば、アプリの名前を日本語に変更することができるみたいです。
(参考サイト:[iPhoneSDK] iPhoneアプリを作ってみよう:第1回 じゃんけんゲーム(#6.まとめ編))

実際に、今、作っているアプリのInfo.plistを変更したら、ちゃんと日本語で表示することができました。

これでアプリ名の日本語化にも困らなさそうです。。

2009/10/11

[Objective-C][iPhone sdk]ハイライト表示時にiPhoneが固まってしまった現象について

昨日の記事で、UIViewControllerのviewWillAppearメソッドをオーバーライドし、そこで、違うセルをハイライト表示しようとすると、なぜかiPhoneが固まってしまう現象がみられました。

で、やっとこさ、謎が解けました。

原因がわかったのは、下のサイトを読んで、使っているメソッドが違うことに気づいたからです。

- (void)viewWillAppear:(BOOL)animated {
[self.tableView reloadData];

if (detailViewController.data) {
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:[datas indexOfObject:detailViewController.data] inSection:0];
[self.tableView selectRowAtIndexPath:indexPath animated:NO scrollPosition:UITableViewScrollPositionNone];
}
[super viewWillAppear:animated];
}

via:UITableViewに戻った時に確実に行のハイライト解除アニメーションを表示する

このプログラムの中で、NSIndexPathを設定しているメソッドが、indexPathWithIndexではなく、indexPathForRow:inSectionなんですね。

確かに、セクションを設定しないと、indexだけ指定しても、どこのセクションのindexだよってiPhone側は困ってしまいますからね。

案の定、このメソッドに切り替えたらうまくいきました。

やっと、先に進むことができます。

ちなみに、昨日の記事で、viewWillAppearをオーバーライドすると、ハイライト表示が自動的に解除されてしまうと書きましたが、正確には、[super viewWillAppear:animated]を呼び出さないと解除されないみたいです。

若干違っていました。。。

そのことは、こちらの記事からわかりました。
UITableViewのハイライトについてまとめてみた。

2009/10/10

[Objective-C][iPhone sdk]viewWillAppearのオーバーライドについて

UIViewControllerのviewWillAppearメソッドをオーバーライドすると、テーブルのハイライト表示が自動的になくなります。

そして、再度、違うセルをハイライト表示するのに、同メソッドを修正すると、なぜかiPhoneが固まってしまいます。

- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];

if(self.highlightflg == YES){
NSIndexPath *temp = [NSIndexPath indexPathWithIndex:(NSUInteger) 3];
[self.tableView selectRowAtIndexPath:temp animated:NO scrollPosition:UITableViewScrollPositionTop];
[temp release];
}
self.highlightflg = NO;

[self.tableView reloadData];
}

かれこれ一週間以上悩んでいるのですが、なぜなのだろうか?

プログラム的には、間違っていないような気がするのですが。。。

2009/10/09

[本]エジソンに学ぶ「ビジネス思考」

風邪で体調が悪いので、プログラミングではなく、手放してしまった本を紹介することに。



序章 現代の勝ち組がひそかに実践する「エジソン10の教訓」
第1章 アメリカ史上最初のハイテク起業家
第2章 マイナスをプラスに変えて、競争に打ち勝つ
第3章 肩書きより才能があなたの名刺になる
第4章 別々のことを創造力で結びつける
第5章 出入り自由な社風が創造的ビジネスを生み出す
第6章 賢く失敗する方法
第7章 投資家へのプレゼン名人になる
第8章 すべての売りこみは、自分を売ることである
第9章 すぐれた発明品は、人々を自由にする
第10章 創造力を育てるには、“既成”と“常識”を疑うこと
エピローグ 光輝こう、ただし燃え尽きないように

via:目次

発明家エジソンではなく起業家エジソンとして解析、分析している本でありました。

読んでいて大変興味深かったのですが、本書を書いている著者が大学の教授だったため、最後、著者の考えが記載されているのですが、「なんだかなー、本当かよー」と疑問をもたずにはいられなかった。

あくまでも分析だけの本ならよかったのですが。

話が前後してしまうかもしれませんが、エジソンは、一般的には発明家として認識されていますが、同時に、起業家でもあったのは、とても有名な話。

現に、GEは彼が設立したといっても過言ではないほど起業家としても素晴らしい功績を残しています。

というわけで、起業家エジソンを知りたい方には、エントリとしていいかもしれません。

ただし、若干、今の企業と比較する内容があるのですが、出版が2002なので登場する企業が古いかもしれませんが、そこらへんはあしからず。
(でも、やっぱり個人的には、あまり納得いく内容ではなかったなー。)

2009/10/08

[C]%dを文字列として出力

今、昼休み中にこの本を読んでいます。



で、printfを使って、数字を10進数表記に変換して表示を行なうプログラムが紹介されていました。

printf("数字:%d",3);

そこで、次に疑問に思ったのは、「%d」を文字列として出力したい場合はどうすのかなーっと。

ネットで調べてみると、「%%d」で出力できるみたいです。
(参照:こちらのサイト)

実際に、サンプルプログラムを実装して、実行してみたところ、正常に表示されました。
#include <stdio.h>

int main(void){
printf("%%d\n");
return(0);
}

こんな単純だったのかー。