Emacs入門 #4 基本的なキー操作

in Emacs

キー入力の表記

今回からやっとEmacs自体の操作の話になります。 基本的にEmacsは全ての操作がキーボードで行えます。 キーボードでどのようにキー入力するかを、以下のような表記を用いて表すのがEmacsの流儀となっています。

C-g

これはコントロールキー(controlキー・ctrlキー)を押しながら文字gキーを押すことを表します。 ちなみにこのキー入力操作は、任意の操作の途中で操作を中断する(abort)場合に使います。

C-x C-c

これはコントロールキーを押しながら文字xキーを押し、コントロールキーを押しながら文字cキーを押す、という動作を表しています。 この場合コントロールキーは押し直さなくても大丈夫です。 ちなみにこのキー入力操作をするとEmacsが終了します。

Note
文字端末しか無い頃はGUI版のメニューのような見てわかる表示はありませんでしたので、このキー入力を知らないとEmacsを立ち上げたが最後、終了させられないなんてことが起こりました^^。

さらにキー入力の表記

コントロールキー以外にも以下のようなキーがあります。

M-!

これはメタキー(altキー・optionキー)を押しながら文字!キーを押すことを表します。 ちなみにこのキー入力操作をするとEmacsから外部コマンドを実行するプロンプトが表示されます。 なお「メタキーを押しながら」という操作は「エスケープキーを押してから」という操作で置き換えることも可能です。 つまり上記と

ESC !

は同等の操作となります。

まれにコントロールキーとメタキーを両方押しながらという操作をすることもあります。

C-M-s

ちなみにこのキー入力操作をすると、文字列を正規表現という表現形式で検索するためのプロンプトが表示されます。

カーソルの移動

今度は現在の文字入力位置を示すカーソルを(矢印キーを使わずに)移動させてみましょう。

C-f  (forward-char・1文字進む)
C-b  (backward-char・1文字戻る)
C-n  (next-line・1行進む)
C-p  (previous-line・1行戻る)

見てわかるように各文字キーにその機能の頭文字を当てて覚えやすいようになっています。 これはEmacsのキー割り当ての特徴です。

Note
Macをお使いの方はこのカーソル操作がOS Xの標準の操作になっていることに気がつくかもしれません。 OS Xのキー操作をEmacsが採用した、わけではなく、Emacsのキー操作が回り回ってOS Xにも取り入れられたのです。

主なキー入力操作

上記を含めたEmacsにおける主なキー入力操作を一覧するには GNU Emacs Reference Card が便利でしょう。 いわゆるチートシートというもので、簡単な英語でそれぞれの機能が示されています。 またインターネットを検索すると日本語に訳された版も(対象のEmacsのバージョンは若干古いものの)見つけることができると思います。

まとめ

あれれ今回もEmacsで設定を行う方法自体に入ることができませんでしたね。 キー操作がわかったところで次回こそは設定に、ではでは〜。


LadioCast 0.11.1 Released – LadioCast Development Notes No.82

in LadioCast

LadioCast Version 0.11.1 has been released.

Changes from version 0.11.0 to 0.11.1 are as follows:

  • Implemented status menu in the menu bar and added items to change volume levels of the selected devices, open mixer and quit LadioCast.

The new status menu looks like this:

statusmenu

Please notice that the sliders control volumes of audio devices which are selected on LadioCast, not its mixer output levels. The device volume levels also have been seen as grey bars on the mixer window and controllable by speaker buttons. The functionality is basically same but by the sliders on that status menu. Hopefully it will be convenient for the people using LadioCast as an ordinarily audio router on their Macs.

As always, let me know any problems and suggestions by blog comments or e-mails. This version will stay unreleased to the MAS for them.

Enjoy!

4 Responses to “LadioCast 0.11.1 Released – LadioCast Development Notes No.82”

    • kawauso

      Hello Philip!
      Thank you for your suggestion about LadioCast.
      For encoding in HE-AAC, it uses Apple core audio component. I also have been waiting but it seems that Apple hasn’t implemented v2 yet.
      If done, I will add it soon:-).
      Cheers.


らじおぱ for iOS バージョン3.0.0リリース

in Ladiopa

リリースノート

iOSアプリらじおぱを更新しバージョン3.0.0としてリリースしました。 前バージョン2.1.0からの変更点は以下のとおりです。

  • Apple Watchに対応しApple Watch上でも全ての番組情報を確認できるようにしました。

  • アプリ全般に渡り動作や処理の改善を行いました。

今回の変更はなんといってもApple Watch対応ですね。 内容的はiPhone本体と同等の番組情報をApple Watch上でも確認できるようにしたものです。 番組ソート順、お気に入り背景色も本体の設定を反映した表示がされます。 番組情報の更新設定は本体同様の設定項目が本体とは別個に設定できます(Apple Watch設定アプリ内)。

Apple Watch対応については追加対応を次バージョンとして既に審査に上げており、それが受理されれば、確認した放送の再生開始・停止がApple Watchからできるようになります。 (販売までにすべり込めるといいのですけれど。)

それ以外の変更としてはアプリ全般の処理(特に番組情報に関連する処理)を見直し、バグ修正や動作の改善を施しています。

最後にiPadそしてMac App Storeに続きApple WatchについてもD1D [1]になれたことを素直に喜びたいと思います。 iPadでは通過させるまで3回ぐらい落とされました(iPadの発売が延びたおかげで命拾いしました)が、Macと今回のApple Watchでは幸い落ち無しで通過させることができました。

価格改定の予告

先日Appleが1Tier [2]の日本円を改定したばかりで申し分けないのですが、それ以前から決めていましたので以下のように価格を改定します。

来たる4月24日にらじおぱの価格を1Tierから2Tierに上げます。

まだ2週間ほど間がありますのでご予定の方は改定前にぜひお求めいただければと思います。

Apple審査状況

ここからはいつもの開発サイドから見たiOSアプリの審査状況と所感ですので開発者とお好きな方だけ。

Apple Watch対応アプリの審査開始日はこれまでの経験からあるいは大方の予想からも発売日の2週間前、4月10日あたりと予想されました。 これはApple Watchの試着および予約開始日とも符合します。 しかし実際は日本時間で4月1日の早朝に開発者に一斉メールが送られ不意に開始が告げられました。

Note
その時私はたまたま起きていて一応準備したものもありましたので、Apple事前機械チェック(にはそれまでにないApple Watchのためのチェックが追加されていることがわかりました)に対応する手直しをして提出、1時間強で出し終えることができました。 ちなみにここをなぜ急ぐかというと、審査では常に落とされる危険性があり、落とされるのであればなるべく早く落ちたいからです。 早く落ちればそれだけ早く修正が行え、リカバリーの可能性を高めることができます。

通常提出から1週間ほど審査待ちの状態になり、審査自体は1,2時間ほどで結果が出てしまう、というのが相場ですが、今回Apple Watch対応アプリについては明かに態勢が異なりました。 1時間ほどで審査待ちは終わり審査開始、逆に審査自体が延々と(私の場合は9日間)続きました。 その間に開発者フォーラムには様々なReject(審査落ち)の報告が上がってきていて、それらを見るとどうやらAppleも前記のような事情を考慮したらしく、Apple Watchについては審査の開始を急ぎ、落とす場合もなるべく早めに落とすような態勢を整えたようです。 これは開発者のリカバリーにずいぶん助けになったのではないでしょうか。 同時に審査状態が長く続けば続くほど、そのアプリは実は既に審査に合格している可能性が高い、とも推測されました。

最後に半日間のPending an Apple Release(リリース保留)状態を経て4月11日(米国10日)にリリースされました。

今回の一連の審査過程を見ると、Apple Watchを一般の目に初めて触れさせる4月10日という日を大きなターゲットとし、あらゆる手段で盛り上げていこうとするAppleの戦略がうかがえる気がします。

それではまた。


1 Day One Developer、造語、公開初日に対応アプリを並べることができた開発者
2 App Storeにおける値づけの単位で米ドルで$0.99、日本円で現在¥120

Huawei WiMAX 2+モデムをLinuxで使う

in Uncategorized

ローカルネットワーク環境

自宅のインターネット回線はISDNに始まりADSL、光、ときてここ数年はWiMAXを使っています。 WiMAXは現在移行期で、従来のWiMAXからWiMAX 2+という新規格に置き換えられつつあります。 ちょうど契約の更改時期がきましたので、先月末に発売されたばかりのWiMAX 2+最新鋭モデムhttp://consumer.huawei.com/jp/support/products/technicalspecs/w01-jp.htm[Huawei Speed Wi-FI NEXT W01](以下W01)を使う接続サービスに乗り換えることにしました

自宅では24時間Linuxサーバー(現在はUbuntu Server 14.04 LTS)を稼動させていて、インターネットとのゲートウェイはそのLinuxマシンが担当しています(このマシンはファイルサーバーでもあり、また過去にはkawauso.com自身であったこともあります)。 今回はゲートウェイの設定はそのままに、インターネットとの接続をW01へと置き換えます。

さてLinuxサーバーにW01をつなげるわけですが、その接続方法は大きくわけると次の3つになりました。

  • クレードルを使ってネットワークケーブルで接続する

  • USBで接続する

  • ブリッジモードにしてUSBで接続する

この記事では上記3つの接続方法を順番に見ていくことにしましょう。 なお参考のために、つなげた結果のネットワークが全体としてどのようになるかネットワーク図で示しておきます。

localnetwork

クレードルを使ってネットワークケーブルで接続する

WiMAXのモデムの主流はいわゆるモバイルモデムで、W01もモバイルモデムであり、それゆえに通信インターフェースはUSBまたはWiFiとなっています。 そのかわりWiMAXのモバイルモデムは別途クレードルといわれる専用のスタンドが用意されていることが多く、クレードルからイーサネットのネットワークケーブルを使って接続できる場合もよくあります。 W01も別売の専用クレードルがありネットワークケーブルを用いてLinuxサーバーと接続し通信することができます。 この接続方法の場合、Linux側はつなげるネットワークインターフェースに対してDHCPクライアントを設定しておくだけでよいでしょう。

$ cat /etc/network/interfaces
...
auto eth1
iface eth1 inet dhcp
Note
W01のクレードルのUSB端子の方には注意が必要です。 ここは本体のUSB端子と違って通信に使うことができませんでした。 充電専用のようです。 最初、つないだのに通信できない理由がわからずハマりました。

USBで接続する

W01本体をUSBでLinuxに接続すると以下のように認識されました。

$ lsusb
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 011: ID 12d1:1f01 Huawei Technologies Co., Ltd.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

上記 Bus 001 Device 011: ID 12d1:1f01 Huawei Technologies Co., Ltd. と認識されてはいますが、実はこの状態ではモデムではなくCD-ROMドライブとして認識されています。 これはW01のUSBがWindowsやMacにつなげられることを想定されていて、その際まずCD-ROMとしてつながり(Windowsのオートランなどにより自動的に)デバイスドライバーがインストールされ、そのドライバーにより改めてモデムと認識されるという親切設計、Linuxにとっては迷惑設計^^;になっていることによるようです。

対処としてCD-ROMドライブからモデムにモードを切り換えるために usb-modeswitch パッケージを導入して設定します。

# aptitude install usb-modeswitch
# tar xzf /usr/share/usb_modeswitch/configPack.tar.gz 12d1:1f01
# mv 12d1:1f01 /etc/usb_modeswitch.d/

Linuxを再起動して再度見てみましょう。

$ lsusb
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 011: ID 12d1:14db Huawei Technologies Co., Ltd.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

以前 ‘ID 12d1:1f01′ だったところが ‘ID 12d1:14db’ になりました。 これでモデムとして認識されているはずです。 起動メッセージを確認してみましょう。

$ dmesg
...
[   14.141065] usb 1-1: USB disconnect, device number 2
[   14.521195] usb 1-1: new high-speed USB device number 3 using ehci-pci
[   14.660383] usb 1-1: New USB device found, idVendor=12d1, idProduct=14db
[   14.660398] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[   14.660406] usb 1-1: Product: HUAWEI_MOBILE
[   14.660413] usb 1-1: Manufacturer: HUAWEI_MOBILE
[   14.729942] cdc_ether 1-1:1.0 eth1: register 'cdc_ether' at usb-0000:00:12.2-1, CDC Ethernet Device, 58:1f:28:XX:XX:XX
[   14.731076] usbcore: registered new interface driver cdc_ether
...

無事にネットワークインターフェース eth1 に割り当てられたようです。 このようにUSB接続といっても Ethernet over USB である CDC や、以前の経験だと RNDIS などが用いられていて、Linuxにも普通にネットワークデバイスとして認識され接続されるようです。 怖れることないですね!

あとは前記の方法と同様にDHCPクライアントを設定しておけばよいでしょう。

ブリッジモードにしてUSBで接続する

W01には面白い機能としてブリッジモードというのがありました。 前記2つの方法で接続するとLinuxのネットワークインターフェースにはIPアドレスの `192.168.100.100/24′ あたりが割り当てられることと思います。 これはモデムとLinuxの(モデムのWi-Fiへ接続している機器があればそれらも含む)間にローカルネットワークが形成されていることを意味します。 それに対してブリッジモードはモデムの外側のネットワーク(プロバイダによってグローバルネットワーク)をそのまま内側へつなぎます。

実際にモデムのコントロール画面からブリッジモードに変更してLinuxにつないでみましょう。

$ ifconfig eth1
          ...
          inet addr:106.155.X.X  Bcast:106.155.X.X  Mask:255.255.255.255
          ...

(IPアドレスは部分的にXで伏せてあります) 直にグローバルアドレスが割り当てられています。 モデムのルーティング処理をはさまない分通信が早くなるようで、実験したところPINGの値などが1,2割改善するようです。

ただこれはインターネットに直につながっていますので、この設定する際はLinux側に事前にファイヤーウォールを構築しておくなどセキュリティ確保に十分配慮する必要があります。 そのような知識が無いうちはブリッジモードでつなぐことは非常に危険です。 またもしかしたらブリッジモードでない方がトータルで良い可能性も0ではありません(W01の方がルーターやDHCPクライアントとしてプロバイダーとの相性がよいなどなど)。

Note
ブリッジモードでは最初からモデムとして認識されるようですのでusb-modeswitchは不要になります。
Note
ブリッジモードではWifiとUSBを含め1つでも接続が成立した機器があればその他はつながらなくなる仕様のようです。 つまり何かのタイミングで既につなげたことのあるWifi機器が復活して先につながってしまうと、USBではつながらなくなってしまいます。 ブリッジモードを使う際は余計な機器の接続が復活することがないようそれらの設定を全て削除しておく必要があると思われます。

まとめ

現在のところ上記の3番目の方法で1週間ほど運用しています。 接続の安定性など今後いろいろ検証していきたいと思っています。 ではでは〜。

6 Responses to “Huawei WiMAX 2+モデムをLinuxで使う”

  1. Gentoo使い

    最近HuaweiのWimax端末契約したのですが、この記事非常に参考になりました。
    以前はNEC端末だったので勝手が違って困っていました。
    どうもありがとうございます。

  2. お世話になっています。古いことで恐縮ですが、
    W01をブリッジモード設定にし、クレードルを利用した場合、有線LAN側にグローバルIPアドレスを割り当てることは可能でしょうか?

  3. kawauso

    江戸モンドさんこんにちは
    プロバイダがグローバルアドレスを割り振っているのであれば可能かと思いますが
    私の環境は機会に恵まれずローカルなのでわかりませんですねえ
    てわでわ

  4. 回答ありがとうございます。
    では、ブリッジモード+クレードルで、プロバイダが割り振っているアドレスが有線LAN側に割り当てられていることはわかりますでしょうか?
    W01の取説を見ると、クレードルを接続すると、「ルーターモードあるいはAPモード」しか選択できないように読めます。
    有線LAN付きのWimaxで、有線LAN側にグローバルIPアドレスが割り当てられる製品はないものかと、探しております。
    貴兄のブログでは、「ブリッジモードにしてUSBで接続すれば、直にグローバルアドレスが割り当てられています。」とありましたので、クレードルでも期待していました。

    • Anonymous

      先の回答は全く勘違いしたままで書いてしまいました;。無視してください。
      W01をクレードル経由でイーサネットケーブル接続した場合にブリッジ接続できるかどうか、ということですね。今残念ながら当該環境が無くなってしまったので確認できず、当時の自分がその組み合わせを単に試さなかったから書いてないのか、できなかったから書いてないのかも思い出せないですね〜。
      取説に「ルーターモード」と書いてあることとブリッジ接続できるか否かには関係がないような気がしますが・・つまりわかりません!


LadioCast 0.11.3 Released – LadioCast Development Notes No.86

in LadioCast

LadioCast Version 0.11.3 has been released.

Changes from version 0.11.2 to 0.11.3 are as follows:

  • Updated libshout library to the latest version 2.4.1.

This mostly corresponds to some new functionalities with the recent Icecast 2 server. I’d like to thank the team and users trying the beta LadioCast under 0.11.3.

Hope you have happy holidays!

13 Responses to “LadioCast 0.11.3 Released – LadioCast Development Notes No.86”

    • kawauso

      yukoさんこんにちは!
      (もし途中で送信されてしまったようでしたら続きからまたお書きください。)
      ではでは〜

  1. よっしー

    初めまして!直接メッセージをお送りしたかったのですが、どこに書き込んで良いか分からずこちらに失礼させていただきます。もし不都合があれば消去していただいて構いません。
    LadioCastについての質問です。
    LadioCastのバージョン 000011003 (1133)を使わせていただいております。
    最近になって、音が右側に偏るようになりました。LとRの欄の矢印を触ってしまったのかと思い、確認しましたが普段と変わりありません。Soundflowerと併用して使っていますが、右に偏って聞こえることは初めてです。LadioCastを通さずに音を流してみると通常通り聞こえます。事例を探してもヒットせず、困っています。どうすれば元に戻るのでしょうか。お教えいただけると幸いです。私はOS X Yosemite10.10.4です。

    • kawauso

      よっしーさんこんにちは!
      書き込む場所はここでOKですよ。
      右に偏って聞こえる現象を少し分析してからがよさそうですね。
      * LadioCastの入力メーターで左チャンネルのレベルが常に0か、わずかでもレベルがあるか
      * LadioCastの出力メーターで左チャンネルのレベルが常に0か、わずかでもレベルがあるか
      * 右チャンネルの出力音声は左チャンネルの音声も含むか、含まないか
      * LadioCastを通さずに音を流す時にSoundflowerを通るか、通らないか
      といったポイントをチェックしてみてそれらの結果をまたお書きいただければと思います。
      ではでは。

  2. よっしー

    こんにちは!返信ありがとうございます!
    初心者でいまいち理解できておらず、拙い日本語になりそうですが…申し訳ありません
    とにかくお伝えできる設定状況は全てお教えしようと思います。

    * LadioCastの入力メーターで左チャンネルのレベルが常に0か、わずかでもレベルがあるか
    └0dbと表記されている部分であっていますでしょうか…そこは0のままで、左右に動かせるバーは一番右に設定しています。入力1と2を使用していて、どちらも0dbでバーは左です。
    * LadioCastの出力メーターで左チャンネルのレベルが常に0か、わずかでもレベルがあるか
    ごめんなさい、勉強不足でどこを指しているか理解できず…。多分0であると思います。
    * 右チャンネルの出力音声は左チャンネルの音声も含むか、含まないか
    入力1にマイク、入力2にSoundflower(2ch)を設定していますが、入力1のことでしょうか…?普段は入力1は使わず、N/Aにしています。入力2の音はは内臓出力設定にしている「出力メイン」と、Soundflower(64ch)に設定している出力Aux1に流れています。
    * LadioCastを通さずに音を流す時にSoundflowerを通るか、通らないか
    └通さず、ヘッドフォンを使用しているため、ヘッドフォンポートに流れています

    あと、ヘッドフォンが壊れているのかと思い別のものを使用して確認しましたが、それが原因でなかったことをお伝えします。
    わかりにくくて申し訳ありません。よろしくお願いいたします…

    • kawauso

      よっしーさん
      回答ありがとうございます。推測を含んでしまいますがこの状況で一番可能性が高いのはSoundflowerの方の左チャンネル(1)の音量設定かなと思います。
      Macの標準アプリにAudio MIDI 設定.appというものがあり、起動するとSoundflowerデバイスの入力・出力それぞれについて、左・右そして主音量の設定を見ることができます。
      それらが全てフルに設定されたままかどうか見てみてください。フルだった場合はまたここにお書きください。
      ではでは。

  3. よっしー

    こんばんは!
    Kawausoさんのおっしゃった通り、Audio MIDI 設定.appを開き、確認したところSoundflwer(64ch)の入力の項目一つがフルになっておらず、一番右端までバーを動かしたところ直りました!
    拙い説明であったにもかかわらず色々と親身に教えてくださりありがとうございました。
    感謝の気持でいっぱいです…!ありがとうございました!!

  4. よっしー

    こんばんは!
    音声が右側に寄る原因がわかりましたので報告させていただきます。
    GarageBandのリアル音源トラックで、録音レベルを触ると音声が右に傾きました。
    自動レベルコントロールにするとバーに合わせて傾きました。なぜ連動しているのかはわかりませんが、一応参考までに報告させていただきました。