Objective-C 入門してみた

2010年5月14日

Filed under: MacOSX,Objective-C,iPad,iPhone — admin @ 10:58 AM

iPhoneアプリ開発をがっつりやりたいので、Objective-Cに入門してみた。
C言語すらきちんとやったことないのに大丈夫かとも思ったけど、結構すんなり入れたんだお!

C:
  1. /*
  2. * NSStringクラスで文字列を扱ってみる。
  3. */
  4.  
  5. //NSStringクラスから、myStrインスタンスを生成
  6. //Class名 *変数名 = @"文字列";
  7. NSString *myStr = @"あひゃ";
  8.  
  9. //NSLogで出力
  10. NSLog(@"\n%@", myStr);

インタプリタでは使うことがない(?)フォーマット演算子だとか、結構ちゃんと書かなきゃいけないんだねって思った。

fedora13 がもうすぐリリース!

2010年5月10日

Filed under: Fedora,Linux — admin @ 11:11 AM

公式サイトに行ったら上のタグがあったので貼ってみた。

with文の名前領域 – ActionScript3.0

2010年4月23日

Filed under: ActionScript3,Flash — admin @ 5:55 PM

AS3を本気で勉強しようと思い過去に何度入門したかわからないAS3を再び始めました。今回は本気です!(ってみんな言うよね。)
とりあえずTextField()から入門してHelloWorld的なことをやろうと思い頑張っていたら、with文がなかなか厄介でつまづきました。べつに使う必要ないんだけどね。

とりあえず、HelloWorld的な。

Actionscript:
  1. //************************************************************
  2. // HelloWorld - TextField()
  3. // とりあえず文字を書き出してみる。
  4. //
  5. package {
  6.     import flash.display.*;
  7.     import flash.text.*;
  8.     public class Main extends Sprite {
  9.         //------------------------------------------------------------
  10.         // Mainコンストラクタ
  11.         //
  12.         public function Main() {
  13.            
  14.             //h1 TextFormat() を定義
  15.             var tf_h1:TextFormat = new TextFormat();
  16.             tf_h1.color = 0x666666;
  17.             tf_h1.size = 30;
  18.             tf_h1.font = 'Times New Roman';
  19.             tf_h1.align = TextFieldAutoSize.CENTER;
  20.            
  21.             //titleを定義
  22.             var title:TextField = new TextField();
  23.             title.text = 'HelloWorld!! - TextField()';
  24.             title.width = stage.stageWidth;
  25.             title.height = 40;
  26.             title.x = 0;
  27.             title.y = (stage.stageHeight/2);
  28.             title.setTextFormat( tf_h1 );
  29.             title.background = true;
  30.             title.backgroundColor = 0xEEEEEE;
  31.            
  32.             //stageに要素を追加
  33.             stage.addChild( title );
  34.         }
  35.     }
  36. }

▽結果

インスタンスのプロパティをwith文を使ってまとめてみる。

Actionscript:
  1. //titleを定義
  2. var title:TextField = new TextField();
  3. with( title ){
  4.     text = 'HelloWorld!! - TextField()';
  5.     width = stage.stageWidth;
  6.     height = 40;
  7.     x = 0;
  8.     y = (stage.stageHeight/2);
  9.     setTextFormat( tf_h1 );
  10.     background = true;
  11.     backgroundColor = 0xEEEEEE;
  12. }

・・・これがですね、実は思わぬ落とし穴があって動いてくれないんです。

with文の中身というのは、親オブジェクトの名前領域の中にいる状態(表現あってる?)です。ここで問題になっているのは、stageオブジェクトです。"stage.stageWidth" の部分。
親が"title"オブジェクトなので、with文の中では、"title.stage.stageWidth" というように見られてしまいます。もちろん、titleインスタンスにはそんな階層のプロパティをもっていません。
それでもwith文を使いたい場合はこのように書きます。

Actionscript:
  1. //titleを定義
  2. var title:TextField = new TextField();
  3. var stageInstance:Object = stage;
  4. with( title ){
  5.     text = 'HelloWorld!! - TextField()';
  6.     width = stageInstance.stageWidth;
  7.     height = 40;
  8.     x = 0;
  9.     y = (stageInstance.stageHeight/2);
  10.     setTextFormat( tf_h1 );
  11.     background = true;
  12.     backgroundColor = 0xEEEEEE;
  13. }

一旦、上のスコープ内でstageを参照するオブジェクト"stageInstance" を生成して、"stageInstance" を参照しに行きます。この手間を考えると、そこまでしてwith文使う必要ないんじゃない?という気になります。名前領域に気を使うのはめんどくさ過ぎる気がします。

そんなwith文ちゃんでした。

Value too large for defined data type – Tripwire

Filed under: CentOS,Linux,Tripwire — admin @ 10:55 AM

あるサーバを管理しているのだが、Tripwire で、下記のようなエラーが出ていた。

CODE:
  1. 1.   File system error.
  2.      Filename: /var/lib/xen/images/CentOS5.img
  3.      Value too large for defined data type

ファイルサイズがでかすぎるんだよ!って怒られた。

ググってみたら、ファイルサイズが 2G を越えているのが原因らしい。 UNIX では「2G の壁」というものが存在しているようで、これは lseek() など、ファイル内の読み出し位置を移動する関数に与えるオフセット値が伝統的に signed long であるためらしい(もうよくわからん)。
signed long では 2147483647 、要するに 2G バイトまでしか表現できないので、これを越えると単に fseek()に渡せないだけでなく、 内部の位置計算処理に多大な混乱が起こる(ということらしい)。ちなみに相対位置指定のために負の値も必要(だそうです)。

いろいろとめんどくさいのねー。もう1TBとかが当たり前の時代ですのに。

さて、解決方法である。
Tripwireのファイルチェックをスキップしてしまえばよいのである。

CODE:
  1. #ポリシーファイル(テキスト版)の復元
  2. [root@host ~]# twadmin -m p -c /etc/tripwire/tw.cfg -p /etc/tripwire/tw.pol -S /etc/tripwire/site.key> /etc/tripwire/twpol.txt
  3. [root@host ~]# vi /etc/tripwire/twpol.txt
  4.   ################################################
  5.  #                                              ##
  6. ################################################ #
  7. #                                              # #
  8. #  Monitor Filesystems                         # #
  9. #                                              ##
  10. ################################################
  11. (
  12.   rulename = "Monitor Filesystems",
  13. )
  14. {
  15.   /                             -> $(ReadOnly) ;
  16.   /home                         -> $(ReadOnly) ;  # Modify as needed
  17.   /usr                          -> $(ReadOnly) ;
  18.   /var                          -> $(ReadOnly) ;
  19.   !/var/lib/xen/images;   #<- 追加
  20. }
  21.  
  22. #ポリシーファイル(暗号署名版)を作成
  23. [root@host ~]# twadmin -m P -c /etc/tripwire/tw.cfg -p /etc/tripwire/tw.pol -S /etc/tripwire/site.key /etc/tripwire/twpol.txt
  24. Please enter your site passphrase:     #<- サイトパスフレーズ応答
  25.  
  26. #ポリシーファイル(テキスト版)削除
  27. [root@host ~]# rm -f /etc/tripwire/twpol.txt
  28.  
  29. #データベース初期化
  30. [root@host ~]# tripwire -m i -s -c /etc/tripwire/tw.cfg
  31. Please enter your local passphrase:     #<- ローカルパスフレーズ応答

他にも動画ファイルを保存していたりなどで2GB超えてしまうファイル群を格納しているディレクトリがあったら、そこを登録しておいても良いと思う。

spam!

Filed under: つれDUれ — admin @ 10:38 AM

ブログを更新しようと管理画面にログインしてみたら、

でも今のところ スパム はありません。」

どうでも良いけど、"でも" の部分要らなくね?ぇ、スパムあったのなかったの!?って思ったけど何かおかしいかなー?

そういえば昔こんなことやろうとしてた。

▽スパム検索エンジン
http://hiropo.co.uk/archives/11

バカだったんだね。今もバカだけど。

「覚醒、そして降臨」 – エヴァのMADがカッコ良すぎる件

2010年4月17日

Filed under: エヴァ — admin @ 3:34 AM

ニコ厨ですがなにか。
あまりMADとか好きじゃないんですが、あまりにカッコ良すぎて一瞬でハマったエヴァのMADを貼っておきます。

新劇場版 エヴァンゲリヲン Q が楽しみで仕方ないです。

美人時計のカワイイ子をまとめた動画をつくってみた

2010年4月4日

Filed under: 美人時計 — admin @ 3:14 AM

こんにちは。美人時計ネタです。
youtubeやニコ動でもよく見るのですが、動画編集をやってみたくて、美人時計のカワイイ子をまとめた動画をつくってみました。

ムービーメーカーむちゃくちゃ凄いです!

※美人時計様、ご本人様からの削除要請がありましたら削除します。

ヘテムルへサーバ移行中テスト

2010年3月15日

Filed under: バグ,未分類,ヲチらせ — admin @ 1:33 AM

チカッパからヘテムルへサーバ移行中テストなうパーティ!
なんかムームードメインがDBエラーとかで調子悪いしうんこだし!

Rubyでメールを送る(日本語非対応)

2010年3月14日

Filed under: Ruby — admin @ 4:45 AM

Rubyでメール送る関数欲しかったので、急遽リファレンス見ながらつくってみた。ちなみに急過ぎたので日本語非対応です・・・。

RUBY:
  1. #------------------------------------------------------------
  2. #  メール投稿
  3. #  ※ただし、日本語非対応です。
  4. #
  5. def mail( subject, message, to_address, from_address )
  6.     #------------------------------------------------------------
  7.     # インポート
  8.     require 'net/smtp'
  9.    
  10.     #------------------------------------------------------------
  11.     # セット
  12.     mail_server = 'mail.localhost'
  13.    
  14.     #------------------------------------------------------------
  15.     # 投稿
  16.     Net::SMTP.start( mail_server, 25 ) {|smtp|
  17.         smtp.ready( from_address, to_address ) {|f|
  18.             f.puts 'From: ' + from_address
  19.             f.puts 'To: ' + to_address
  20.             f.puts 'Subject: ' + subject
  21.             f.puts
  22.             f.puts message
  23.         }
  24.     }
  25.     p 'mail send!!'
  26.    
  27.     #------------------------------------------------------------
  28. end

次回、日本語対応版をつくろうと思うお。

Rubyでtwitterに投稿できるrubygems

Filed under: Ruby,twitter,美人時計 — admin @ 3:02 AM

美人時計の画像を毎日収集してる僕です、こんばんみ!

▽関連記事
美人時計の全画像を取得するスクリプトをバッチ化してみた

毎日美人時計とGAL時計と美人時計(北海道版)の画像をウチのサーバちゃんが収集して差分まで比較して結果だけ教えてくれています。
収集Bot、かわいいよ、収集Bot。

そんな美人時計の差分が出たってのをtwitter経由で知らせてくれたらいいのに…と思いながら実装してみました。
がしかし…、twitterには140文字という投稿制限があるんですね、見事140文字オーバーしたら投稿できませんでしたよ。

とりあえず、Rubyでtwitterに投稿できるrubygemsのインストールの仕方です。

CODE:
  1. rdocのインストール
  2. # yum install rdoc
  3.  
  4. rubygemsのダウンロード
  5. #wget http://rubyforge.org/frs/download.php/60718/rubygems-1.3.5.tgz
  6.  
  7. rubygemsを解凍してインストール
  8. # tar xvfz rubygems-1.3.5.tgz
  9. # cd rubygems-1.3.5
  10. # ruby setup.rb
  11.  
  12. gemでtwitterをインストール
  13. % sudo gem install twitter
  14. Successfully installed twitter-0.8.4
  15. 1 gem installed
  16. Installing ri documentation for twitter-0.8.4...
  17. Installing RDoc documentation for twitter-0.8.4...

こんな感じでサーバーにインストール。そしてRubyの書き方は下記の通り。

RUBY:
  1. #------------------------------------------------------------
  2. # ./twit.rb
  3. def twit( v )
  4.     #------------------------------------------------------------
  5.     # twitter gems をインポート
  6.     require 'rubygems'
  7.     require 'twitter'
  8.  
  9.     #------------------------------------------------------------
  10.     # Rubyから投稿
  11.     twit_username = 'アカウント名'
  12.     twit_password = 'ログインパスワード'
  13.    
  14.     auth = Twitter::HTTPAuth.new( twit_username, twit_password )
  15.     twit = Twitter::Base.new( auth )
  16.     twit.update( v )
  17.     p 'twit!!'
  18.    
  19.     #------------------------------------------------------------
  20. end
  21.  
  22. twit( 'てすつ投稿やねん' )

コマンドラインでプログラムを実行する。

CODE:
  1. host~% ruby ./twit.rb

これでRubyからtwitterに投稿できちゃう!Ruby、簡単だよ、Ruby。

« 前ページへ次ページへ »