So-net無料ブログ作成
検索選択
プログラミング ブログトップ
前の10件 | 次の10件

今度はSwiftででもアプリを作ってみるかぁ [プログラミング]

mailpeeper-tlsのリリースも終わり、特に文句もきてないから誰も使ってないか、問題がなかったのでしょう。久々にObjective-Cをいじって、わかりやすいけど面倒臭いなというのが本音だったりする。そもそもretainしたり、releaseしたりするのが面倒なんじゃぁというところが今時ではない。まぁARCに対応した文法にすればいいのだろうけど、下手にいじって挙動を壊すのも何なので。

一応まだMacは使うつもりなので、Swiftぐらい空で書けるようにしておこうかなぁと思ったり。

Swift実践入門 ── 直感的な文法と安全性を兼ね備えた言語 (WEB+DB PRESS plus)

Swift実践入門 ── 直感的な文法と安全性を兼ね備えた言語 (WEB+DB PRESS plus)

  • 作者: 石川 洋資
  • 出版社/メーカー: 技術評論社
  • 発売日: 2017/02/07
  • メディア: 単行本(ソフトカバー)


巷に出回るiOSに焦点を絞ったアプリ本じゃなさそうで、きっちり文法を学べそうだ。それに技評ってのもポイント高い。そういやWEB+DB PRESSとか買ってないなぁ。暇がなくて読めないし、買う余裕がないので手にもしていない。Amazonで買うぐらいなら定期購読しちゃった方がいいと思うし、そこまで体が欲していないのも事実。

今はググればアプリに必要な情報はつぎはぎにでも手に入れられるし、そもそもプラットフォームのAPIをつぎはぎにして作るのが大体のアプリだったりするので、規範となる文法書はあった方がいい。その瞬間しか役に立たないアプリ作成の本はいらんのだよ。

とりあえず、GitのGUIラッパーを作りたいなと思っている。だってgitコマンド面倒なんだもん。Xcodeみたいにお気楽にやりたいじゃん。でも、Xcode以外でgitを使おうとすると途端にチート表と首っ引きになってしまう。正直、本来のコーディングの知識だけで頭がいっぱい。だから、与えられたメニューだけでお手軽に使えてしまうものを作りたいのだった。もうすでにあるのかもしれないけど、僕が探した時にはMacでは中途半端なものしか存在しなかった。

とはいえ、ちょっと高いなぁという気はしている。売れないのを見越して高値に設定している? それともそもそも分厚さがあるとか。どちらにしても技術書としても安い部類の本ではない。やっぱりマイナーな本はそれなりに高くなっちゃうんだよね。

まだ本を売るまでに時間があるから簡単な雛形をSwiftで作ってみようかな。どうせObj-Cに毛が生えたような書き方しかできないと思うけど。

タグ:Swift3
コメント(0) 
共通テーマ:パソコン・インターネット

なぜAppleはObjective-Cを選んだのか。 [プログラミング]

会社で無理やりObjective-Cやらされてウゼェとか思っている人もいるんでしょうが、まぁSwiftとか出たからいいじゃないですか。言語としてはまだまだひよっこだけど、いろんないいところを受け継いでいるのは間違いないところで、これからOSSになってどう羽ばたくのかは未知数だったりします。

にしてもObjective-CによってAppleは結果的に救われたことになっています。途中でGC入れたり、ARCに変わったり、いろいろ変遷を経てきていますが、Swiftも加わることで使いやすくはなってきています。少なくともOSX当時のObj-Cよりかはマシにはなっているはずです。

ともあれ、何でObjective-Cなんてマイナーだった言語を使い出したのかという話です。それはそもそもOSXの元になったNeXT STEPで開発言語をObjective-Cを使っていたからだといいます。NeXTは使ったことはないのだけれど、初めのXcodeの大盤振る舞いでNeXTで使っていたのかぁと何となく思っていました。

基本的にWebObjectsとかでJavaを使っていた関係で、Obj-CとJavaが混在する形の開発環境になっていたと思う。CocoaなんかもJavaから使えた。何でJavaを捨てたかはいろいろあるんだろうけど、そもそもWebObjectsが普及しなかったということなんだろう。一時期はAppleも企業向けにアピールしていた時期があって、Xserveとかのハードウェア製品もあったのだけれど、ずいぶん前に完全撤退してしまった。サーバハードウェアの技術はMac Proに引き継がれたけれど、今は新しいCPUにもされず放置されている状態。正直、どうでもいいと思っているのでしょう。ゴミ箱同然なわけですw。

それと多分Javaのライセンスがうざかったということもあるのでしょう。Appleは今はLLVMでブイブイ言わせてますが(表現が古いw)、それもgccがウザかったからということなんだろうなと推測されます。要するにGPLがウザかったということなんでしょうね。それでLLVMにお金を投じるようになったみたいです。それと同様にSunのJava縛りが面倒でならなかったのでしょう。だからJavaのサポートを止めてしまった。それは開発の上でも動作環境としてもです。そんなリソース割いてられっかということで。

それと思ったよりか開発者がObj-Cに付いてきてくれたというのもあるんじゃないかなと思う。C++よりかは複雑怪奇になっていないし、メモリの解放さえきちんとやっていれば、C言語の建て増し(ちょっと異質感は否めないが)なのでそんなに難しいこともないわけで。オブジェクト指向としてもプレーンだったし、Xcodeの出来もそんなに悪いものではなかったのも一因だろうと思う。


AndroidではJavaの言語仕様を使ったPureじゃないJavaを使っていて、Sunの後釜のOracleから訴えられているわけですが、それも何とかならないかなぁと思ってしまいます。いつまでもJavaを離さないというのも言語としてどうかと思うのですよ。ビジネス使いとしては、一企業がサポートしてくれる安心感というのもあるのでしょうが、正直OSSが一般的な時代としてはプロプライエタリと言われても仕方ない感じはします。Oracleになってからは特に面倒臭いなぁという感じが増しています。というかオラクルが嫌いなだけだったりしますが。

で、iPhoneがメモリが少なくて済んでいるのも、ネイティブバイナリで動いてガベージコレクションを使わないObj-Cの賜物なのですよね。iOSでもJavaを使っていたら多分Androidと同じスペックじゃないと同程度の性能を発揮できなかったんだろうなと思います。そして、面倒なライセンスの回避もできたわけですし、わざわざ変態みたいにObj-Cを引っ張り出してきた意味があったわけですよね。


AppleはObj-Cを選んだというより、OSXを作るにあたって必要だったし、そのあと他の言語にマイグレーションするような状態でもなかったというだけだったりします。まぁ素のC言語よりかはマシでしょう。少なくてもオブジェクト指向万歳な世代は過ぎ去ったとはいえ、オブジェクト指向自体が当たり前になっているところもあるわけですし、これから先もAppleというメジャーマイノリティの中で使われ続けることになりそうです。今すぐにSwift代替というわけにはいきませんしね、互換性が多少あるとはいえ。


コメント(0) 
共通テーマ:パソコン・インターネット

32bit on 64bitじゃなくてその逆。 [プログラミング]

ふと32bitOSで64bitバイナリを動かせたらいいなぁとか思ってしまった。すぐにそんな高度なこと無理だと思い直したが、無理な事じゃなさそうかもなと思ったりした。

そもそも32bitバイナリと64bitバイナリってどこが違うんだろう。Win32は全部64bitに最適化されて作ってるのか、とか考えると気になる。Win64ってのもあった気がしたんだが、別に64bit以降の時にコンパイルのし直し程度以上のことをした人はいないんじゃないかと思ったり。

そもそもWOW64という仕組みがあるんだから逆もできるんじゃないかと思ったり。でもメモリを切り詰める方と伸長する方は全然違うんだろうな。動くときに64bitアドレスで動くものを32bitに制限するのは無理じゃないにしても面倒な気がする。

https://ja.wikipedia.org/wiki/WOW64

そもそも仮想化で32bitOS上で64bitのOSが動かないから面倒なのだが、おそらくはハードウェアの仮想化っていうのも、仮想ハードウェアデバイスをフィジカルなハードにつなげているだけなんじゃないかと思ったり。そう考えると大してVirtualBoxが大きくないことも理解できる。きちんとKVMとか見てソースから理解すればいいのだけれど、面倒なのでやらない。


まぁそもそもの会社のPCが32bitOSなのが悪いんじゃ。でも、バリバリ開発をしている人のマシンも32bitだって言ってたから、事務な私はなすすべもない。今はWindows10でLinuxのバイナリも動く時代だから何とかなりそうな気もするんだが、そこはシステムプログラミングは面倒なので、やってもデバドラぐらいまでになるのかな。まぁWindowsのデバドラはこの先書くことになるなんてことはないのだろうけど。もしかしたらMacとかはあるかもしれないけどね。あくまで興味的に。

妄想してないでLLVMの仕組みとか調べろよというのは確かな話で。

コメント(0) 
共通テーマ:パソコン・インターネット

mailpeeper-tls ver.1.0.8リリースを一応した。 [プログラミング]

mailpeeper-tlsはとりあえず諸々対応で、最終的にdark modeに対応できました。一応、もうGitHubにはあげてあるのだけれど、どこかに.appファイルは上げておかないとね。そのうちそのうち。問題が残ってるかもしれないし。

デバッグはボタン一発で実行できたけど、リリースするバイナリはどこにあるんだ? 別途作らないといけないんだったっけか。大体デバッグしたバイナリはいろいろ情報が入れられてたりするからなぁ。

場所は
Library/Developer/Xcode/DerivedData/
以下のわかりにくいところにある。
Xcodeでいつ頃かに変わったんだよな。アクセスするのXcodeからFinderに行かないと面倒すぎる。というか、ユーザーのお膝元のディレクトリに作って欲しいんだが、これをこの場所に置く意味とメリットってどこにあるんだろう。

DevelopmentとDeploymentがあったので、デプロイにファイルができるようにする。
メニューの「Product > Scheme > Edit Scheme」からDeploymentに変える。
少し小さめのバイナリができるので、それを提供します。

http://www010.upp.so-net.ne.jp/mihumi/softs/mailpeeper-tls.app.1.0.8.zip


リリースノートとしては、

●諸々不具合対応+機能追加 (in Jan, 2017)ver.1.0.8
El Capitanで使えなくなったという報告を受けてビルドし直す。
ついでにコンパイルのワーニングをとる(大体longからintへの暗黙キャスト)。
pop3sなGmailが取れなくなっていたけどアプリパスワードで回避(結局、何もやってない)。
Notification Centerに対応しようとしてソースに入れ込んではある。
OpenSSLを新しくしたのと、OpenSSL由来の例外がありそうなので止めておいた。
macOSのダークモード対応

という感じなんですが、本当は一番最後だけ頼まれてたんですよね。まぁ仕事しながらやってこの程度でできたから上出来かもしれない。あと動作確認したのはmacOS Sierraなので他は知りませんw。

一応対応しましたぞ。しばらくは放置します。何かとんでもない問題があれば対応するかもしれません。本気でやればGitHubからでも何とかなるなる〜♪

コメント(1) 
共通テーマ:パソコン・インターネット

macOSのダークモードでステータスバーの文字を反転させたい [プログラミング]

mailpeeper-tlsでStatus barにアイコンを表示させて、それがdark modeでも大丈夫なようになりました。

http://mackuba.eu/2015/03/04/how-to-add-icons-to-menu-bar-on-yosemite/

ここはどこから情報を取ってきているのかわからないけど、きっちり解決したのでありがたかった。やっぱり英語ソースはわりと日本のよりか信頼性あるわ。


でも、メニューバーの右側のステータスバーと言われるところにも、文字列は突っ込むことができて、大体以下のようなソースで入れ込んであった。言い方が他人事なのは自分がインプリしたわけじゃないから。抜粋&改変してあるのでそのままどこかに入れ込んでも使えないかもしれない。
  NSStatusBar *statusBar = [NSStatusBar systemStatusBar];
  NSStatusItem *statusItem = [statusBar statusItemWithLength:NSSquareStatusItemLength];
  NSMutableAttributedString *attStr = [[[NSMutableAttributedString alloc] 
			initWithString:@"hoge"]] autorelease];
  [attStr addAttribute:NSForegroundColorAttributeName 
			value:[NSColor blackColor] range:NSMakeRange(0,[attStr length])];
  statusItem.highlightMode = YES;
  [statusItem setAttributedTitle:attStr];

こんな感じで書いてある。改変したところも大丈夫だと思うが、二つのソースをコンバインして作ったのでコンパイルかけてない。多分手直しすれば大体はいいだろうけど。

そんで、これではダークモードで文字列が沈み込む。NSColorは黒だけど、highlightColorとかにしてもダメだったし、hilightModeも入れてはみたものの入れ込む文字列に反応しなかった。黒いまんま。ステータスバーの他の日付とか、バッテリー残量数とか、文字なのに反転するから根本的にはできるはずなのだが…。

気持ちの悪いことに、クリックされて展開されるメニューに関してはきちんとダークモードに対応している。なんじゃこりゃw。とにかく、ステータスバー直の文字列の色を左右する設定がうまくいっていないことは確かだ。ん〜これもアイコンイメージのダークモードを解決する時みたいに面倒だな。どこかに書いていないだろうか。Xcodeのリファレンスって見難いし、サンプルコードがあまり載っていないんだよな。特にAPI周りは。

ステータスバーのオブジェクトを作って、そのアイテムを作って、そこに文字列を叩き込む、という具合なのは、アイコンイメージと同じだろう。さっきも言ったようにNSColor hilightModeはダメ。

あ…
NSColor textColor
で通っちゃったw。きちんと反転するね。

具体的には
[attStr addAttribute:NSForegroundColorAttributeName
value:[NSColor textColor] range:NSMakeRange(0,[attStr length])];
としただけ。

あ〜あっけないなぁw。こういうの一番頭にくるというか気が抜ける。実装がドキュメントに反映されてないタイプ乗って試行錯誤するしかないから、やってる時は不安で終わったら終わったでこんなのに引っかかってたんだと思ってしまう。

まぁなんにしても解決したのでいいや。mailpeeper-tlsぼちぼち新バージョンリリースします。三週間ぐらいかかっちゃったね。とりあえず、gitをcommitして、githubには上げておこう。ん〜きちんとメールアイコンを作ってからのほうがいいかな。しかし、今回は少し勉強になったな〜。というか、もうObjective-C触りたくないんですけどw。

コメント(0) 
共通テーマ:パソコン・インターネット

macOSのダークモードでステータスバー対応が面倒な感じ。 [プログラミング]

mailpeeper-tlsでいつだかに導入されたDockとメニューバーのダークモードにてこずった。ググっても全然情報が出てこないからスクラッチしようと思っていたが決着があっさりついた。

http://qiita.com/itoru257/items/445738ed0bf7fadf1ebf

これを調べる前は
macos menu bar darkとか
macos status bar darkで
調べたんだけど、全然出てこない。xcodeとかで絞っても駄目だった。

メニューバーベースのアプリケーションはそもそも少ないわけで、AppleのDeveloperなページで読んでスクラッチするしかないかと思っていた。

https://developer.apple.com/reference/appkit/nsstatusbar

これあたりかなぁと思ったり。


でも結局、一番初めに貼ったリンクの先の
[[[NSAppearance currentAppearance] name] containsString:NSAppearanceNameVibrantDark]
というところを判断材料にして適宜実装しないといけないってことらしい。

ただ、アイコンの状態変化がいくつかあるので、その度にチェックを入れてアイコンを描き直さないといけないというのは、正直だるいというかソースがあまりきれいでなくなる気がする。アイコンだけじゃなくて文字もフォントの色変えないといけないしね。

というか、AppleがUIの変更に合わせるようにアプリケーションの変更を迫るのってどうなんだ。もっと気にするべきバグとかがあるんじゃないんですかねAppleさん。


ともあれ、dark modeに手動で変更した場合の通知って、どこで受け取るんだっけ。AppControllerあたりなのかな。最初はawakeFromNibあたりで設定すればいいものの、不定期に変えられた場合はどうなるのかとかは調べてない。

status barもそうだけど、macOS独自のシステムプログラミングが慣れてない。というか調べれば終わりなんだけど、Macって使い方ばっかり出てきてどんだけ利用者をバカにしているユーザーがいるんだよってなもんで。Windowsの調べ物って結構数があって速攻でかたがつくんだけどな。


しかし、上の解決法は使えなかった。途中でダークモードに変えた場合に対応してくれないみたいなのだ。だから、途中から
[[[NSAppearance currentAppearance] name] containsString:NSAppearanceNameVibrantDark]
を発動させて変えさせることができない。何にしても面倒だ。そしていちいち変更を加えるのは煩雑過ぎてコードの中に入れ込むのはあまりうれしくない。

http://mackuba.eu/2015/03/04/how-to-add-icons-to-menu-bar-on-yosemite/

これはどうかなと思ってやってみる。どこからの情報か知らないけど面倒がなさそうでよさげだ。動けばなんでもいいんだけどさ。


あ~できた。

NSImage *icon = [NSImage imageNamed:@"icon_menu.png"];
icon.template = YES;
statusItem.image = icon;
statusItem.highlightMode = YES;

を自分のソースに適用したら白黒を勝手にいい感じにしてくれる。変な話白黒逆転していてもたぶん大丈夫。もしかしたら最初にやった方法では根本的な解決にならないんだろうな。Qiitaとか玉石混淆すぎるし、きちんとした情報じゃない場合は自分のブログにでも書けよ。


.xcassetsを導入したから、.icnsファイルともファイル名で管理ともおさらばだ。とはいえ、面倒だから全部それに変更したわけじゃないけど。assetsを使ったのは実はダークモードが解決するかと思って使ったけど、あんまり影響はないようだった。白黒のアイコンにしてあげないと似合わないので、新しくステータスバーのアイコンを変えてあげないとな。そういうのセンスがないんだけどまぁ今はフリーの素材もあることだし。


イメージは解決したから、あとは文字だな。受信件数を数字で示しているのだけれど、今のところダークモードでも普通モードでも大丈夫な設定に変えられていない。いろいろ設定を真似て見たものの、イメージの設定とはちょっと違うよう。灰色にしてどっちも見えるようにするっていう回避方法は避けたい。まぁそのうちそのうち。

コメント(0) 
共通テーマ:パソコン・インターネット

久しぶりのXcodeでの開発。 [プログラミング]

mailpeeper-tlsはコンパイラのワーニングの通りに直しているので、それが妥当かどうかはほとんど考えてない。やたらlongからintの暗黙キャストが行われていて、受け側も渡す側もlongにしておいた。まぁメモリの使用量は増えてもそんなに問題ないだろう。にしても64bitのintってlongと同じってどこかでみた気がするのだが、そもそもintってOSのbitによって違うんだよね? それともLLVMは環境に影響されずintは32bit整数とか決めちゃってるんだろうか。まぁいいや、Xcodeの実装とかかもしれないし。

正直Cocoa使うの久しぶりです。できるならARCとかにしちゃいたいけど、面倒でやってません。いちいちreleaseしないといけないのね。ともあれ、Xcodeメニュー > Edit > Convertに変換する方法があるみたいだけど、信用が置けなくて使ってません。まぁ大丈夫なんだろうけど、メモリリーク気になるしやった方がいいのかな。

人のコードを触っていると綺麗に書く人だなぁと思うコードと、お前精神状態疑うよという酷いコードが結構真っ二つに分かれる。幸いなことに私がいじくっている元のコードはきれいだった。どちらかというと私が汚染している感じw。ん〜自分が書いているコードなら、人に見せる場合はコメントを含め綺麗に書くんだけど、まぁ基本切り貼りで動かなかったら手を入れる感じのお気楽コーディングで通しています。自分で検証コードを書いてから本体に組み込むような慎重派だから、本体に粒度が低いベタベタなコーディングはしません。ただ、元からあるものを直すとかは仕方なくべったりしてしまうことも多いけど。

Xcodeは出た当時は、こんなIDEがタダで提供されるなんてApple太っ腹、と思っていましたが、今となってはEclipseもVisual StudioもIDEはタダな訳で。先鞭をつけたという意味では画期的だったかもしれない。昔はコンパイラとかすごく高かったんだよ。Borland bccがタダで配られた時は嬉しかったけど、結局Win32APIがわからんとどうしようもなかったので、ネットが今ほど整備されていなかった状況では如何ともし難かった。今と違ってネットに情報を見つけるのも一苦労だったし。Googleが検索始めたら何の問題もなくなったけど、その前は頑張ってInfoseekとかで見つけるしかなかった。

正直Xcodeはそれほど好きじゃないです。Visual Studioの方が慣れているというか、探し物がすぐに見つかる感じがしました。今はXcodeでも右クリックメニューからGoogle検索する項目が出てくるけど、できれば付属のヘルプに飛ぶ項目があればいいのだが、そこいらへんはIDEとして断絶している感じ。どこかに内蔵ヘルプに飛ぶメニューあったっけ? まぁネットの方がサンプルコードが具体的にあったりするので、ググった方が早いんじゃということなんでしょうが、そこは自分達の一次情報を見せて欲しいんだよね、見づらくても。


んで、deprecatedな関数を潰しているのだけれど、やっぱり代替する関数が全然違う動作をしていたり、扱う型が全然違かったりで、動作検証を含めて難航気味。自分でスクラッチしたわけじゃないから、元の動作の意味を考えて、GUIとの動作を勘案してやらないといけない。変えた理由はわかるんだけど、元のコードにがっつり関数依存の制御が入ってしまうと直すのがシンドい。

それにしても、どうしてこうもXcodeのプロジェクトに非互換が入りまくるのかな。Windowsでここまで変化があったら批判芬芬だろうな。MSは下位互換というか未来に行っても比較的動く方だと思う。Macとかコンパイルし直さないと動かないとか多すぎる。前にスクリーンセイバーを作っていた時も、OSが変わるごとにコンパイルし直さないといけない時期があった。アホかとか思った。エミュとかで過去の互換性を維持するかのように見せて、すぐそのサポートを打ち切るしね。まぁ企業対応が最悪という評判はそういうところから来ているのかもしれない。

なんというか、今までよくMacについてきた人がたくさんいたもんだよね。レガシー資産をすぐに切り捨てるので、ジョブズの潔さが出ているとも言えるのだが、正直横暴すぎるよね。また同じことしたらどうなることやら。わりと仕様に利益があるUSBのType-Cコネクタでさえ、iMac登場時のUSBほど暖かくは迎えられていないだろう。

僕としては、お手軽お気軽にプログラミングできればいいのだけれど、この先Apple不安だなぁ。MSではもうほとんどプログラミングしていないけれど、そのぶんHTML5とかのWebプラットフォームを気にしているから、どうしてもWindowsを離れることができなかったりする。結局、パソコンでビジネス使いするのWindowsだし。今ではスマホからアクセスすることも多くなったわけだけど、やっぱり作るのはWindowsマシンでってことになるわな。iOSを扱わない限りは仕事でMacを使うことはできないわけで。

そういう意味では使うのに腰が引けてしまっているところがある。iPhoneはすぐにAndroidでも乗り換えできそうだけど、パソコンは開発環境として使ってしまうといろいろ根深い理由ができてしまって移行するのがしんどくなる。今は熱心な人に後を押されてメンテしているけど、正直自分がこのソフトを改造したの半分忘れてたしね。今の開発の活動拠点はWebであるので、仮想化がある今、実はどこでも開発できたりはするんだけども、macOSを使って楽しい時期はとうの昔に過ぎてしまっている。

だけどUbuntuのGUIでいつも使おうなんて思えない。そこのところはWindows, Macを完全に離れることは不可能だ。かなりできることは多くなってきてはいるけれども、メーカーのサポートをきちんと得られるという状態にはなっていない。そこが非常に残念だ。


あ~Notification Centerが上手く使えない。NSNotificationCenterじゃなくNSUserNotificationCenterを使うっぽい。あとデリゲートとかなんかせんとあかんぽい。

コメント(0) 
共通テーマ:パソコン・インターネット

HTML5の道は厳しい。 [プログラミング]

ソーシャルエロゲーをやっていると、いまだにFlashで作られているものがある。そんなに前に作られたものではないのに、開発が止まらなかったのだろうな。HTML5でできたゲームも多くなってきているが、いくつかのゲームは読み込みが異常に遅かったり、そもそもFlashのような演出ができていなかったりで、正直あまり出来がいい物が少なかったりする。

Flashではパーツごとを動かすぬるぬるアニメがあるのだが、HTML5ではあまり見かけない。あったとしても編集ソフトで一回コマごとに絵を作って、それを紙芝居風に動かしているのしか見たことがない。エロゲーの出たり入ったりの繰り返しであればそれでいいのだろうけど、正直あまり応用が利く方法ではない。


HTML5をうろうろと見回ってみて、CreateJSあたりがいいんじゃないかなと思ったり。

http://www.buildinsider.net/web/popularjslib/2016

ここには目的が違うので書かれていないのだけれど、Adobeが関わってるっぽい。私企業の参加するOSSというのはなんとなく眉唾ものだったりするけれど、あのIBMですら元々Eclipse作っていたわけだし、そんなに気にする必要はないのかもしれない。ゲーム系だとEnchant.jsあたりなんだろうなぁ。いまいち掴みきれてないけど、次期Flashみたいな感じなのはやっぱりCreateJSなのかなと思っているんだけど、実際使ってみていないのでなんとも言えない。

http://www.sejuku.net/blog/3902

素でHTML5を扱うにはシンドい歳になってきたので楽ができればいいなと思っている。でも、ある程度CSSでできるアニメーションぐらいはやっておいた方がいいんだろうなぁ。暇なとき少し頑張ろう。


コメント(0) 
共通テーマ:パソコン・インターネット

GrowlからNotification Centerに変えるのってそんなに難しくないかも。 [プログラミング]

一時期GrowlはMacOSXに入れる意味が十分にあったのだが、今はNotification Centerがあるため、対応していれば特に入れる必要は少なくなった。入れる意味がないわけではないが、OSにその機能があるならそれを使った方がいいなと思ったりはする。それがAppleのあからさまなパクリであっても。

一次情報はここみたい。
https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/Notifications/Articles/NotificationCenters.html

こっちの方が具体的で簡単だね。
http://cocoathings.blogspot.jp/2013/01/introduction-to-user-notifications-in.html

ちょっとmailpeeper-tlsに突っ込んでみる。簡単に実装できそうだな。

ぐはっ。GUIを作るところが明らかに変。表示されている作成画面と、実際に表示される画面が違う。アラートも出ているのだが、新しく直そうとすると部品が違う挙動をする。そういや、前もこんなことあったような気がするなぁ。それで適当に回避して先に進んだんだったっけ。グラフィカルなエディタがXcodeの本体に組み込まれたときに変な感じになったような気がした。

とりあえず、立ち上がりはするけれども、メニューが開かなくなった。う〜ん、一から作ったのではないので、何が悪いのかわからない。それに新しくなったXcodeが更に邪魔をしている感じ。とりあえず、GitHubからPullしてきて、そこだけいじってみて直す方策を考えよう。ん〜Gitでローカルにコミットしておけばよかった。これでは戻れないよ。


《後記》
git clone https://github.com/miffy/mailpeeper-tls.git
してきて、コンパイルが通るようにして、GUIが直るようにしました。

最終的には、autoresizingが邪魔をしていて、部品を選択状態にして、赤いバーを選んでdeleteキーで全部消しました。昔から使っているアプリのGUIの表示が崩れた場合は、autoresizingを無効にしてあげると大丈夫っぽい。というか、挙動が変すぎてどうやっていいかわからなかったよ。あと変更が変わらないときに、オレンジ色のバーを消すと直るってのも特に気にしてなかったからハマった。

とりあえず、GitHubのおかげでリカバーできた。クラウドは偉大だな。


ん?deliverNotificationが発動しない。デバッグで直前で止めるとNotification Centerのポップアップが出てくるんだよね。何が悪いんだろう。連発しているのが良くないのかな。でも、一度止めると出てくるんだよね。でもsleep()で止めたところで出てこない。んでGrowlだとたくさん出てくるんだけど、Notification Centerだとまとめられちゃう。出るだけマシなんだけど、どうにかして普通の動作で動くように持っていきたい(解決してねーのかよw)。

コメント(0) 
共通テーマ:パソコン・インターネット

mailpeeper-tlsのビルドを通るようにする。 [プログラミング]

mailpeeperのためにOpenSSLを直に使おうということになった。まぁHomeBrewはMacPortsみたいにダメプロジェクトじゃないのでいいか。


HomeBrewでOpenSSL入れるときになんか出た。エラーじゃないけど、やっとかないとダメそうな設定があるので。
A CA file has been bootstrapped using certificates from the SystemRoots
keychain. To add additional certificates (e.g. the certificates added in
the System keychain), place .pem files in
  /usr/local/etc/openssl/certs

and run
  /usr/local/opt/openssl/bin/c_rehash

This formula is keg-only, which means it was not symlinked into /usr/local.

Apple has deprecated use of OpenSSL in favor of its own TLS and crypto libraries

Generally there are no consequences of this for you. If you build your
own software and it requires this formula, you'll need to add to your
build variables:

    LDFLAGS:  -L/usr/local/opt/openssl/lib
    CPPFLAGS: -I/usr/local/opt/openssl/include
    PKG_CONFIG_PATH: /usr/local/opt/openssl/lib/pkgconfig

Xcodeに設定すれば、そこを見てくれるのかな。というか、これだけのために環境変数は入れたくないのだが。

ええと、結果だけ述べると、Project設定のBuild SettingsのHeader Search Pathに
/usr/local/Cellar/openssl/1.0.2j/include
を直に設定してあげた。リンクの方が潰しが効くと思ったけど、Finderでリンクのパスのコピーがすんなりできなかったので、実ファイルがあるパスで。

あと実際のバイナリである.dylibファイルを適宜新しいものにコピーしてあげた。なぜかlibz.dylibが必要らしいので、前のまま残しておいた。前もOpenSSLのフォルダ以外に別途入れたんだっけ? いまいちXcodeの認識する設定がどこに存在するのかがわからない。gccからLLVMに変わったあたりから更にどうなったのかがよくわからなくなってしまった気がする。

あとGrowlじゃなくてmacOS標準のNotifier(正式になんて言うんだっけ?)で通知を出したいなぁ。今更Growlもないでしょうし。最近使い出した人は入れてない人も多いでしょうし。調べればすぐなんでしょうけど、腰が重いのですわ。

コメント(0) 
共通テーマ:パソコン・インターネット
前の10件 | 次の10件 プログラミング ブログトップ