BLOGakisuteが主に技術的なネタを書き溜めるブログです。普段からGTD用ツールとしてOmniFocusを便利に活用しております。iPhoneと3G経由でいつでも同期できたり、タスクレビュー機能があったり、何でもできて凄く助かるのですが、このOmniFocusには弱点がありまして・・・そう重すぎ定期的にデータベースをメンテしてあげないととんでもない重さになってしまいます。具体的には、サーバーと同期しようとしたiPhoneが10分間固まって帰ってこなくなったりmobileme上に置いてあるデータベースファイルを開こうとしてFinderが固まって帰ってこなくなったりとにかく、相当な破壊力を持つ代物です。その上公式サイトにも正しいメンテナンスの仕方が書いてありません(一番大事なところが書いてない)。そこでOmniFocusユーザーの方必見(?)、OmniFocusデータベースのメンテナンス方法をまとめてみました。参考にしたページは以下の通り。http://forums.omnigroup.com/showthread.php?t=14631&highlight=compacthttp://forums.omnigroup.com/showpost.php?p=70253&postcount=3■予備知識:OmniFocusのデータベースの構造OmniFocus.ofocusというファイルがOmniFocusのデータベースファイルです。Bundle(わかりやすく言えば単なるディレクトリ)で、中に以下のような形式でZIPファイルが入っています。0000000000-日付.zipランダムな文字列-日付.zipランダムな文字列-日付.zipランダムな文字列-日付.zip以下たくさん・・・このZIPファイルを解凍するとcontent.xmlというXMLファイルになります。このcontent.xmlの集合がOmniFocusデータベースの基本構造になります。content.xmlには「一番最初のデータベースの状態」か「前回保存時からのデータベース操作内容」が記載されています。要するに先ほどのZIPファイルの集合には以下のようにデータが格納されています。2009/11/12.zipこれらのZIPファイルが自動的に削除されることはありません。要するにこのままではデータベースの領域が増える一方なわけです。これが重さの原因です。Archive"を実行する実はこれ全然役に立ちません。?このコマンドを実行すると何が行われるかって、先ほどのデータベースにタスクAとBとCはArchiveしたからもう二度と表示しなくていいよ.zipこれが追加されるだけなんです。DataBase"を実行するで、こっちが本命です。このコマンドを実行すると、操作内容を格納しているZIPファイルをすべて削除して、一つの新しい「現在の状態を表すZIPファイル」だけが存在するデータベースを作り直してくれます。効果は劇的で、たとえば私の場合は11.5MBあったデータベースファイルのサイズが25KBになりました。問題はこのコマンド、実は「同期設定を行っている最中は実行できません」。この辺マニュアルや公式FAQに書いてなくて困りました。DataBase"を実行すると良いです。■対策3:余計なバックアップを作成しない初期設定ではクライアントが終了するたびにデータベースのバックアップを取るようになっていますが、これを放置しているととんでもない量のバックアップファイルが作成されてしまうので、設定を適当に変更しておくと良いと思います。10みたいです)に乗り換えることになったので、クラスの仕様に親しむためまとめを作ってみました。■参考文献http://www.tom.sfc.keio.ac.jp/~fjedi/wiki/index.php?%A5%AF%A5%E9%A5%B9%BC%FE%A4%EA%A4%CE%BB%C5%CD%CD%28ActionScript3%29こちらのWikiに完璧にまとまっていますので、ぶっちゃけこのWikiを見ればすべて解決すると思います。迷ったらJavaと同じ。以下のJavaと違う点に掲載のない事項はすべてJavaと同じ。多重継承が無くてinterfaceが用意されている点など。■Javaと違う点package宣言は.NETやC++のように{}で囲む必要がある。{}で囲んだ中はJavaとほぼ同じ。publicクラスが一つしか持てない等。}}package{}の外側にファイルローカルな関数や変数やクラスを宣言できる。この領域はpackage{}の内側でインポートしたクラスやメソッドが使えない。別途インポートし直す必要がある。TextField();dynamicクラスがある。abstractクラスやabstractメソッドが無い。transientなどが無い。namespaceがある。(が、正直使い道がよく分からない)enum型はない。コンストラクタにもfunctionを付ける必要がある。コンストラクタは必ずpublicになる。アクセス制御修飾子を指定しないとpublicとして扱われる。オーバーロードが一切使用できない。コンストラクタもオーバーロードできない。オーバーライドの際には必ずoverride修飾子を付ける必要がある。}■サンプル以上を踏まえて、練習がてらにプレイスホルダー付きテキストフィールドクラスを作ってみました。onlineJavaではコンストラクタのオーバーロードが必要になったところ、AS3ではデフォルト引数のおかげですっきり書けました。デフォルト引数はいいですね。0x999999とすると意図しないタイミングでdefaultTextColorが書き換わってしまいはまりました。super.textColorとしてスーパークラスのsetterを呼びだすようにして回避。getter/setterのオーバーライドは強力ですが上手く使わないと混乱を招く諸刃の剣になりそうです。動画にアップロードするための動画をエンコードする設定まとめ皆さんご存じニコニコ動画。Windows環境で動画を作ってアップするための情報はたくさんあるのですが、Mac環境用のネタが少ないので、メモしておきます。参考にしたページは以下の通り。Leopard付属)iMovieは08を使用します。HDであれば高性能でflvも扱えるらしいのですが、新しいソフトを入れて管理するのが面倒という理由により却下です。09からは動画クリップごとの再生速度管理もできるらしいので、kskとかスローモーションの演出もできるためそっちのほうがお勧めです。エンコの際にはQuickTimeを利用してエンコするため、一応QuickTimeのバージョンも載せておきました。9とかでもうまくいくと思います。■エンコ設定編まず注意点として、私はプレミアム会員なので、以下の設定はプレミアム会員用に合わせています(ビットレート最大1000Kbps程度、ファイルサイズ最大100MB)。一般会員の方はビットレートを落とせばそのまま利用できるかと思います。肝心の設定内容ですが、http://d.hatena.ne.jp/KZE/20091106/p1で解説されている内容とほとんど同じです。H.264でエンコードします。具体的には以下の通り。使用して書き出す」を選択するCmd+Eの「ムービーを書き出す」では上手くエンコできませんので注意。「書き出し」欄は「ムービーからMPEG-4」を選択するここで「ムービーからQuickTimeムービー」を選択するとどんなに上手くエンコしてもニコ動側で再エンコされてしまいます。絶対に「ムービーからMPEG-4」を選択すること。以下の画像のように設定する一番上のファイルフォーマットを「MP4(ISMA)」から「MP4」にしないとH.264でエンコできませんので、まず最初に変えておくこと。一般会員の方はムービーのデータレートをもっと落としてください。300ぐらいかな?逆に600より上げる必要はよっぽど画質が気になるか短い動画でもないかぎり無いと思います。ビットレートについては私なんぞよりもまとめWikiなどのほうが詳しいのでそちらをご覧ください。「ストリーミング」の「ストリーミングを使用する」チェックボックスは入れない入れても大丈夫かどうかは未確認ですが、余計な物を入れると変なことになるのではと思い外してます。上記の設定でエンコしてみた結果がこちら。Newerth特に問題なく見られていると思います。■FLVでエンコしたい編FLVでエンコしたい場合や、もっと詳細な設定がしたい場合には、ffmpegXというツールを使うと良いようです。試していないのでここでは割愛します。その他、iMovieから直接FLVでエンコできるようにする方法もあるらしいです。H.264で直接アップロードできるようになった今となっては別にFLVにこだわるメリットも無いかも。Androidアプリエンジニアやってます。原因を調べるのにずいぶんと苦戦したので備忘録を作ります。調べたのですが、これよりよくまとまっているドキュメントを現状発見できませんでしたので、2019/06/08現在では上記のドキュメントを参照するのがベストだと思います。操作が優れているか否か」を評価点に挙げます。今回の記事は久しぶりの誰得記事です。こちらで紹介されている手法を用いるにはプライベートAPIを操作する必要があるため、おそらく審査に通りません。じこせきにんでお願いします。プロパティを使うことで簡単にアニメーションを実装させることができます。サンプルを書いてみます。Accessから秘密鍵を書き出すときに、「エラーが発生しました。項目を読み込めません。Accessのお世話になることが多いです。複数台のMacで開発を行っている場合は、証明書を認証するための秘密鍵を複数台のMacにインストールする必要があります。今年は2019年となりました。12月7日担当のakisuteです。最近フォント周りについて深く掘り下げる機会がありましたので、その際のメモを残しておこうと思います。地点では存在しないタイトルの通りですが一応補足しておきます。