Finaleで小節を前後の組段へ移動する方法

November 21,2016 12:33 AM
Category:[Finale]
Tag:[Finale]
Permalink

Finaleで小節を前後の組段へ移動する方法を紹介します。

1.問題点

Finaleである小節を後の組段、または前の組段に移動したいのですが方法が分かりません。

たとえば、下の画像のように赤枠の13小節目を次の段の最初に移動させたい場合などです。

(クリックで拡大、以下同様)
13小節目を次の段の最初に移動

2.小節を後の組段へ移動する

小節を後の組段へ移動するには、「選択」ツールをクリック。

「選択」ツール

移動させたい小節をクリック。

移動させたい小節をクリック

「ユーティリティ」→「選択小節を後の組段へ移動」をクリック。

選択小節を後の組段へ移動

これで選択した小節が後の組段へ移動します。

選択した小節が後の組段へ移動

3.複数の小節を後の組段へ移動する

複数の小節を次の組段へ移動したい場合(例えば段の最後の3小節を下へ移動したい場合)は、それらのうち最初の小節をクリック。

複数の小節を次の組段へ移動

これで最後の3小節が後の組段へ移動します。

複数の小節を次の組段へ移動

4.小節を前の組段へ移動する

小節を前の組段へ移動するには、2項と同様の手順で移動させたい小節をクリック。

移動させたい小節をクリック

「ユーティリティ」→「選択小節を前の組段へ移動」をクリック。

選択小節を前の組段へ移動

これで選択した小節が前の組段へ移動します。

選択した小節が前の組段へ移動

5.複数の小節を前の組段へ移動する

複数の小節を前の組段へ移動したい場合(例えば段の最初の3小節を上へ移動したい場合)は、それらのうち最後の小節をクリック。

複数の小節を前の組段へ移動

これで最初の3小節が前の組段へ移動します。

複数の小節を前の組段へ移動

Comments [0] | Trackbacks [0]

Firefoxでタブをまとめてくれるアドオン「OneTab」

November 10,2016 12:03 AM
Category:[アドオン]
Tag:[Addon, Firefox]
Permalink

Firefoxでタブをまとめてくれるアドオン「OneTab」の紹介です。

アドオン

1.はじめに

Google Chromeにはタブをまとめてくれる拡張「OneTab」があります。

これを使えば無駄にタブを開くことなく、タブの内容を保存しておくことができます。

OneTabに開いていたタブの内容を保存することで無駄なプロセスを減らせるので、使用メモリ量を減らすことができます。

今回は「OneTab」のFirefox版の紹介です。

2.インストール

メニューの「アドオン」をクリック。

アドオン

検索ボックスに「onetab」を入力して実行。

検索ボックス

表示された「OneTab」の「インストール」をクリック。

表示されたウィンドウの「同意してインストール」をクリック。

同意してインストール

ブラウザにOneTabのアイコンが表示されればインストール完了です(アイコンはクリックしないでください)。

OneTabのアイコン

3.使い方

さきほどのOneTabのアイコンをクリックすれば、そのウィンドウで開いているタブを「OneTab」のタブに送ってくれます(タブがすべてなくなります)。

OneTabに送りたいタブを選びたい場合は、各タブ上で右クリックして、表示されたコンテキストメニューの「OneTab」→「このタブのみ、OneTabに送る」を選択します。他の操作もこのメニューから行えます。

(クリックで拡大)

これでそのタブに表示されていた内容が「OneTab」のページに移動し、元のタブが消えます。

OneTabに送ったタブを復活させたい場合は、表示されたリンクをクリックすればOKです。

送ったタブの内容はその場で削除したり、複数並んでいる場合はドラッグ&ドロップで入れ替えることができます。

Comments [0] | Trackbacks [0]

mmapでMAP_FIXEDを利用する方法

November 4,2016 2:22 AM
Category:[Linux]
Tag:[Linux]
Permalink

mmapでMAP_FIXEDを利用する方法を紹介します。

1.はじめに

mmapはファイルの内容をメモリにマップするC/C++の関数です。

mmapの引数は、

void *mmap(void *addr, size_t length, int prot, int flags, int fd, off_t offset);

となっています。各引数の意味は次のとおりです。

  • addr:新しいマッピングの開始アドレス
  • length:マッピングの長さ
  • prot:マッピングのメモリ保護
  • flags:マッピングに対する更新の見え方
  • offset:マッピング開始位置

manによるとmmapは次のような動作になります。

addr が NULL の場合、カーネルがマッピングを作成するアドレスを選択する。この方法は最も移植性のある新 しいマッピングの作成方法である。 addr が NULL でない場合、カーネルはマッピングをどこに配置するかのヒントとして addr を使用する。Linux では、マッピングはすぐ近くのページ境界に作成される。新しいマッピングのアドレスは、呼び出しの返り値として返される。(中略)ファイルマッピングの内容は、ファイルディスクリプタ fd で参照されるファイルのオフセット offset から開始される length バイトのデータで初期化される。

また、MAP_FIXEDはflagsに指定する値で、次のように定義されています。

addr をアドレスのヒントとして使用するのではなく、 addr で指定されたアドレスをそのまま使用してマッピングを配置する。 addr はページサイズの倍数でなければならない。 addr と len で指定されたメモリ領域が既存のマッピングのページと重なる場合、既存のマッピングの重なった部分は捨てられる。もし指定されたアドレスが使用できない場合、 mmap() は失敗する。マッピングに対して固定アドレスを要求するのは移植性の面で劣るので、このオプションは使用しないことを推奨する。

つまり、引数addrで指定されたアドレスからマッピングできるようですが、非推奨のためかネットに情報がありません。

ということで、mmapでMAP_FIXEDを利用する方法を紹介します。

2.mmapでMAP_FIXEDを指定する

mmapでMAP_FIXEDを指定するには次のように実装すればいいようです。

#include <fstream>
#include <fcntl.h>
#include <sys/mman.h>
 
int main(int argc,char **argv) {
 
    // ファイルオープン
    int fd;
    fd = open(argv[1], O_RDONLY);
 
    // ファイルのマップ
    void* addr1 = mmap(0, 100, PROT_READ, MAP_SHARED, fd, 0);
    printf("mmap addr1:%p\n", addr1);
    if(addr1 == MAP_FAILED)
        perror("mmap NG");
    int result = munmap(addr1, 100);
    printf("munmap result:%d\n", result);
 
    // ファイルのマップ(MAP_FIXED)
    void* addr2 = mmap(addr1, 100, PROT_READ, MAP_SHARED | MAP_FIXED, fd, 0);
    printf("mmap addr2:%p\n", addr2);
    if(addr2 == MAP_FAILED)
        perror("mmap NG");
    result = munmap(addr2, 100);
    printf("munmap result:%d\n", result);
 
    return 1;
}

実行結果は次のとおりで、MAP_FIXEDを指定したmmapでは第1パラメータで指定したアドレスを取得できています。

[foo@hoge test]% ./a.out ./test.txt                                                                                   
mmap addr1:0x7f3ff4cbb000
munmap result:0
mmap addr2:0x7f3ff4cbb000
munmap result:0

ポイントは、MAP_SHAREDまたはMAP_PRIVATEを必ず指定することです。

  • MAP_SHARED:ファイルをマッピングしている他のプロセスから見える。
  • MAP_PRIVATE:プライベートな copy-on-write (書き込み時コピー) マップを生成する。

このいずれかとMAP_FIXEDをorで設定することで正常に動作します。

MAP_FIXED以外にもいくつかのフラグが用意されていますが、今回紹介した3つのフラグのみ、POSIX.1-2001(IEEE Std 1003.1-2001)で規定されています。

Comments [0] | Trackbacks [0]
 1  |  2  |  3  |  4  |  5  | All pages