• 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28

subviewはsuperviewのalphaを引き継いでしまう。たぶん。親のalphaが0.7で子が0.5の場合は0.7*0.5で子は0.35のalphaになる? 背景スケスケでコンテンツはクッキリ表示したい場合はどうすればいいか?と言うと、もう一つalpha 1.0のUIViewを用意し、そのviewをsuperviewにして子にaplha 0.7のbackground viewとalpha 1.0のcontens viewを加えればいい。

つまり最初のviewの構成が

   1  UIView alpha 0.7
   2   UIView alpha 1.0 contens view
となっているところを
   1  UIView alpha 1.0
   2   UIView alpha 0.7 background view
   3   UIView alpha 1.0 contents view
とする。

解決法がタイトルは嘘にしてしまったが、やりたい事はコレで実現できる。もちろんbackgournd viewを本来のあるべきサイズにしなきゃいけないけどね。

posted by Png bopper on Sat 6 Feb 2010 at 20:05

at iPhoneOS 3.1.2

shouldAutorotateToInterfaceOrientationじゃなくて任意のタイミングで roateする方法を探していたんだけど、見かけるのはUIViewのtransformでrotateすることばかり。確かめてないけど。この方法だとUIViewControllerのinterfaceOrientationと齟齬も発生するじゃないかと思う。

それで無理くり何とかする方法を考案した。けど、この方法では(もう少し改善すればできるかもしれないが)重力方向への回転しかできない。 shouldAutorotateToInterfaceOrientation:を使ってrotateすのはいつもとどおり。だけど先に方向を決めておいてNSNotificationを投げて強制的にshouldAutorotateToInterfaceOrientation:を発生させることによって 任意のタイミングでviewを回転させる事ができる。

   1  - (void)rotateNow{
   2    UIDevice *device = [UIDevice currentDevice];
   3    self.toRotate = device.orientation;
   4    NSNotification *notification = [NSNotification notificationWithName:@"UIDeviceOrientationDidChangeNotification" object:device];
   5    [[NSNotificationCenter defaultCenter] postNotification:notification];
   6  }
   7  
   8  - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
   9    if(self.toRotate){
  10      return interfaceOrient == self.toRotate;
  11    }else{
  12      return NO;
  13    }
  14  }

こんな感じ。何をしたかったかと言うと向きが変わったときにいきなり回転させるんじゃなくて、ちょっとボタンをだして確認を取りたかった。だからタイミングだけずらして回転方向は重力方向だけでいいやって話しなんだけど。

もしかすると、このNSNotificationを作ってる部分でobject:deviceってUIDeviceを渡してる部分。このオブジェクトのプロパティorientationを任意の方向を返す様なオブジェクトを作ってViewControllerを更に騙すことができるならば、タイミングだけじゃなくて方向も変えれるんじゃないかな?そこまでは確認を取ってません。

まぁ何にせよ。かなりhackな方法だからOSのバージョン上がったら使えなくなるかもしれない。

posted by Png bopper on Sun 31 Jan 2010 at 14:02

ちょっと調べたところMacにはミドルクリックと言う概念がないらしい。標準で Doshboardが開きだす。うーさすがちょっと前までマウスが1ボタンだった文化だ。もとWindows害的に面倒なんでなんとかしてみた。

基本は、middleclickをcmdキー+rightクリックに変換すればいいらしい。Logicoolのマウスとかは独自のユーティリテーで変更できるみたい。が、残念ながらー今無名1000円マウスしかないので、多分これは使えない。

そこでSynergy。基本的に2代以上のPCのキーボードとマウスを共有するためのソフトなんだけど。キーストロークの変更機能とかついてるんで、それを利用する。(この時点で大半の人には無用のポストだなw)

キーボードとマウスはWindowsについでサーバーにする。 コンフィグのGUIのHot Keysをクリック。 左側の+をクリックして出てきたダイアログでミドルクリックを押す。 右側のアクションの+を押して、同様のダイアログでMac側でcmdに当たるキーを押しながらright click。 OK.終了。

Hot keys: mousebutton(2) Action: A mousebutton(Super+2)

とかなってると思う(Superの部分は違うかも)。 まぁこれで、FirefoxだろうがSafariだろうがリンクを新規タブで開ける。 はぁ、ここにたどり着くまで、かなり苦労したんだけど。純正マカーの人とかはどうしているんだろう?

posted by Png bopper on Tue 27 Oct 2009 at 22:09

英語がちと不確実な僕はSkype Axes Developer Program Extrasを見て、SkypeAPI終了!?とか一瞬早とちりしてしまった。ここにも書いてあるけどThe future of Skype Extras - Skype Developer Zone Blog。SkypeAPIは続行。認証制度がとりあえずなくなるよと言うのが正しい。

これは不確実な英語ではなくSkypeの岩田さんに日本語で確かめたから確かだ(速攻チャット送るところ相当慌ててた自分が見て取れる orz) 岩田さん曰く「僕にとっては無償で API が使えるようになる、ってことだと思っているんですけどね。」との事。もともと無償ではあるけどより広く野に降り立つ?って事かなぁ。そして、いずれはより良いプログラムだすよーっとのことでした。

あぁ今SkypeAPI使った仕事をしようかと言うところだったのでちょっと安心した。さて安心したところでRuby4SkypeのLinux対応にもどるかな。これThread使った所で難航しているけど。これができればTwitter4Skypeも元に戻せるかもしれない。

今日も野良デベロッパーは行くぜー

posted by Png bopper on Mon 14 Sep 2009 at 03:45

LogicoolのMX-Rを使っていたんだけど左クリックが押すと一発でダブルクリックが発生するようになってしまった。これは機械的な接点(スイッチ)が振動して酷いチャタリングを起こし始めたんだと思う。要するに壊れたんだ。

で、まぁ貧乏NEETとしては何とか安く問題を解決したいわけで(高いマウスだったしね)新しいマウスを買う前に何かと調べるわけです。分解してどうにかならないかーとかさ。

そしたらこんなものを見つけた マウスチャタリングキャンセラ。マウスの入力をいったん奪って、ダブルクリックが人間が押すよりも速い速度で入力されてる場合はシングルクリックとしてOSへ渡すソフトだと思う。

ダメもとで試したけど、これかなりイイ。壊れたハードだなんて微塵も感じられない。まったく正常な状態に戻ってしまった。もちろん遅延だって感じられない(ゲームとか厳しいかもしれないけど)

ソフトウェアでハードの故障を直してしまった!これはソフト屋の端くれとしてはちょっとした感動なんだな。

#下位の問題を上位層で無理やり修正するプログラムは組みたくないんだけどねw

posted by Png bopper on Thu 10 Sep 2009 at 06:01

Skype API関係で仕事したり逃げたりしてる某社社長から、、、

朗報というか私にとっては不幸なお知らせが。私のMacBookが雨の直撃でやられてしまいました。それでしばらく乾かしてダメだったら新しいのを買おうと思ってるんですが,そうなったら壊れたヤツいりますか?
そ、それはラッ、、、いや、御悔みを申し上げます。
つーかください。早くください。壊れててもください

それでやってきた来た訳なんですけど

電源入れたら普通に動いたw

っくぅ。あの社長、オレを嵌めたな!
動かないなんて口実でNEETに慈悲を与えたつもりか!!カッコつけやがってー
そんな事ないですよ、動いて私もビックリです。むしろ何も努力しないで手に入れた事が悔しいくらいです。
、、、

数時間後

TextMate入れれて、gemアップデートして、トラックパッドでジェスチャースゲー。
ん?なんかバッテリー認識してないな。バッテリ側のインジケーターは生きてるし まぁちょっと外してみっか
あ、あれ?電源押しても、、、動かないぞ
え?えぇっ!?マジ!?
、、、
あんなにセットアップしたのに、、、
もういいや、ゲームでもしよー
ホロホロホロホー・・

更に数時間後、、、

じゃ~ん♪
勝手に電源が!
Macは滅びぬ、何度でも蘇るさ!

なーんか振り回されっぱなしw。今は怖くて火入れっぱなしです。まぁともかく、ようやくRuby4SkypeのMac対応が書ける。めでたしめでたしっと。

posted by Png bopper on Thu 10 Sep 2009 at 03:30

Rubyのwin32/processの話。ちょっとWindowsでデーモン的に動いてもらいたいスクリプトをProcess#Createとかで作って親が勝手に子を殺そうと思ったんだけど。子供が断末魔を上げてくれない。SIGINTでも同様。

さいわいdrubyで通信してので、子プロセスで Thread.main.kill して事を無きを得る。

posted by Png bopper on Sun 6 Sep 2009 at 08:12

Jukebox4Skype。一年ほど前につくったSkypeの通話会議にBGMを流すためのソフト。当時はWindowsのWaveOut系関数をRubyで扱う辺りで挫折して、再生する側でプチプチ音が途切れていたのを修正した。過去のソースをテキトウにいじったので、ちょっと不安な部分があるが、まぁおおむね動きはする。

J4S_0.0.3.zip

解凍後、jukebox4skype.exeを起動してSkypeにattach.exeが~を許可すると起動する。リストに追加はmp3とかをd&d。多少遅延が生じたり(特に曲が変わる瞬間)。ソフトを終了時にマイクが機能しなくなるかもしれない(もし発生した場合通話いったん切れば直ります)。あとWindowsOnly。それでもよかったら遊んでみてー

posted by Png bopper on Sun 6 Sep 2009 at 07:54

前からソースコードとかキレイに表示されてるようで気になってたs21gのblogを使わせてもらう。 どんなもんかなー

   1  File.unlink __FILE__

インデントしないと面白くないか

   1  def kill_me
   2    undef kill_me
   3  end
   4  kill_me

こりゃ、便利だー

posted by Png bopper on Sun 6 Sep 2009 at 07:32
Contents
親のUIViewのalphaを無視して表示する方法。
UIViewControllerだけで強制的にrotateする方法。
Macでmiddle clickを無理矢理使う方法。
Skype Extrasの終了について
チャタリングを起こしてたMX-Revolutionが直った。
ZombieMacBook
Process.kill('SIGKILL', pid)したらat_exitが呼ばれない。
Jukebox4Skype
initialize s21g blog
Services from s21g
twpro(ツイプロ)
Twitterプロフィールを快適検索
地価2009
土地の値段を調べてみよう
MyRestaurant
自分だけのレストラン手帳
Formula
ブログに数式を埋め込める数式コミュニティ