rsync – file has vanished

最終更新

2026年7月、内容を全面的に書き直しました。この記事はもともと2009年に Cygwin 版 rsync の文字コード問題について書いたものですが、その問題はすでに解消されているため、現在この警告で検索して来られる方の悩み(Linux などでの code 24)に合わせて作り直しています。

rsync でバックアップや同期を実行したときに、

file has vanished: "/path/to/source/some-file.tmp"
rsync warning: some files vanished before they could be transferred (code 24) at main.c(1356) [sender=3.4.4]

という警告が出て、終了コードが 24 になることがあります。

続きを読む rsync – file has vanished

FlashDevelop – Flash/Flex フリー開発環境

FlashDevelop.org
 
無料で使える Flash/Flex 開発環境です。
*.as を *.swf へビルドできるのはもちろんのこと、デバッガつきでの実行やアクションスクリプトの文法チェッカ、コードアシストのような開発者にはなくてはならない機能まで充実しています。
 
基本英語ですが、設定により日本語も使えます(日本語設定については参考サイトを参照)。
AS3.0 にも対応しているので、コードベース開発なら本家 Adobe よりも FlashDevelop のほうが断然使い勝手がいいですね。
 
参考:
7つのステップで完成!FlashDevelopカスタマイズの奥義(_level0.CAYAC)

最新版の ffmpeg をダウンロードするには

ffmpeg とは、高機能な動画編集ツールです。

以前、この ffmpeg アプリのWindows版を探し回った事があったため、配布サイトをまとめてみました。
 
ffmpeg.org
公式サイト。
 
Windows用のffmpegコンパイル済バイナリは以下のサイトで配布されています。

ffmpeg 公式 Windows バイナリダウンロードページ:

https://ffmpeg.zeranoe.com/builds/

ダウンロードは、リンク先のボタンを押すだけです。

バージョンが古い可能性があるのであまりおすすめはしませんが、他にもフリーソフトに付属しているものを使うこともできます。
お気に入りの動画を携帯で見よう
SVN の HEAD を追いかけて Windows 用にビルドしたバイナリを配布しているサイト。
MingW での ffmpeg のビルド方法や依存するライブラリについても書かれています。
 
ImageMagick
ImageMagick は一部のビデオフォーマットを扱うために ffmpeg を使っているため、ffmpeg.exe をバンドルしています。
Windowsユーザでインストーラが不要な方はImageMagickのFTPサーバから、実行ファイルだけのダウンロードもできます。ファイル名が”ImageMagick-(バージョン番号)-Q16-windows.zip”のものがインストーラなし版です。
 
携帯動画変換君
ffmpegのインターフェイスとして動作するソフトです。ffmpeg が同梱されていますが、2010年9月現在、何年も更新されていないためバージョンは古めの様子。
 


Linux用 RPM は http://packages.sw.be/ffmpeg/ で最新版が順次配布されているようです。

C# で Java の final と同等の制限をかける

Java プログラマが C# を学ぶ際のメモ。final については探しても見当たらなかったので書いておきます。

定数・フィールドのfinal

定数に対しては const 識別子, コンストラクタ値を設定する書き込み禁止フィールドについては readonly 識別子を使います。

class Foo {
    private const int NUM_MAX = 65535; // 定数値。コンストラクタでの遅延代入が不可。
    private readonly int _id; // 書き込み禁止値。コンストラクタで遅延代入が可能。

<pre><code>public Foo(int id){
    _id = id;
}
</code></pre>

}

メソッド中で、遅延代入をする方法はなさそうです。

public doSomething(){
    readonly int j = 1; // これはエラー。readonly はフィールドでのみ可能。
    const int N;
    N = 10; // これもエラー。const は宣言と同時に代入しなければならない。
}

同様に、引数の final (引数の変数への再代入禁止)を C# で利用することはできません。

public void doSomeThing2(const int number); // const は引数には適用不可

クラスのfinal

クラスに対しては、sealed 識別子が同等の効果をもちます。

sealed class FinalClass{ /* … */ }

メソッドのfinal

Java におけるメソッドの宣言に対しての final は、C# ではデフォルトの実装のため、ポリモーフィズムについては C# のほうが Java より制限的といえます。

final でない(オーバーライド可能な)メソッドを定義するには、親で virtual 識別子をつけて宣言し、かつ子で override 識別子で明示してオーバーライドします。

override 識別子をつけている場合、さらにその子クラスでも再帰的にオーバーライドが可能です。オーバーライド可能なメソッドに対して「オーバーライドした上で子には禁止する」という動作を実装する場合は、クラスと同様に sealed 識別子を利用します。

class Parent {
    public virtual void Greet(){ // オーバーライド可能
        Console.WriteLine(“Hello”);
    }
    public void StandUp(){ // オーバーライド禁止。オーバーライドしようとするとコンパイルエラー
        // …
    }
}

class Child : Parent {
    public override void Greet(){ // オーバーライド。明示しないとコンパイルエラー
        Console.WriteLine(“Hi!!”);
    }
}

class GrandChild : Child {
    public sealed override void Greet(){ // オーバーライド。ただし、このクラスの子にはオーバーライドを許さない。
    }
}

参考: