ラベル ソフトウェア の投稿を表示しています。 すべての投稿を表示
ラベル ソフトウェア の投稿を表示しています。 すべての投稿を表示

2013-03-19

WebKit版Operaのユーザエージェント

WebKitを採用したAndroid版Operaを試してみました。
Opera ブラウザ ベータ版

UserAgentはというと、
HTTP_USER_AGENT:
Mozilla/5.0 (Linux; Android 4.0.4; L-01D Build/IMM76D) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.123 Mobile Safari/537.22 OPR/14.0.1025.53005
もはやOperaだかMozillaだかChromeだかSafariだか判りません…!
肝心の「Opera」という文字列が含まれておらず「OPR」となっているのも不思議です。ベータだからでしょうか。

「データ圧縮モード」にすると、従来のOpera Miniになります。Prestoはお役御免になったわけではないようです。
HTTP_USER_AGENT:
Opera/9.80 (Android; Opera Mini/14.0.1025/28.4200; U; ja) Presto/2.8.119 Version/11.10
REMOTE_HOST:
s10-02.opera-mini.net

ちなみに現在最新のOpera MiniのUAはというと、
HTTP_USER_AGENT:
Opera/9.80 (Android; Opera Mini/7.5.32193/28.4200; U; ja) Presto/2.8.119 Version/11.10
バージョン番号が7.5から14.0に変わっただけで、中身は同じようです。

2012-08-23

Vimの入力補完でHTMLのタグを小文字で入力したい

Vimの入力補完、便利です。
便利なのですが、HTMLタグの補完候補が大文字になるのが気に入りません。
VimでHTMLタグの補完候補が大文字

調べてみたら、HTMLとして認識されているファイルをXHTMLとして認識させれば小文字になるそうです。
vimrcファイルに次の行を追加。

autocmd BufNewFile,BufRead *.html set filetype=xhtml

無事、補完候補が小文字で表示されるようになりました!
VimのHTMLタグの補完候補を小文字に




2012-07-27

ディスコンが噂されるWindows版Safariのインストーラーをローカルから救い出す

※追記:今はAppleのサイトからWindows用Safari 5.1.7を普通にダウンロードできます。
ただしMacの最新版Safariで修正されているセキュリティの問題に未対応のため、リスクを理解したうえでご利用ください。

OS X Mountain Lion(10.8)が出るとともにSafariもバージョン6になったそうですが、AppleのサイトからWindows版がなくなり、ディスコンなのではないかと噂されています。
Windows版のダウンロードボタンが消滅:Mac版「Safari 6」リリース OS X Lionアップデートも(ITmedia)
Apple製Webブラウザー「Safari」のWindows版が日本語公式サイトから消失(インプレス 窓の杜)

Windows版の準備が遅れているだけなのかもしれませんが、このままなくなってしまうとなると、ちょっと残念です。Windows版Safariは動作は重いけど、フォントレンダリングが独特なので重宝していた人もいるのではないでしょうか。

もうダウンロードできないとなると、インストーラーを確保しておきたくなるのが人の常ですが、既にWindows版を使っていた人の場合、実はローカルHDDにインストーラーが保存されているのです。

C:\ProgramData\Apple Computer\Installer Cache\ を覗くとiTunesやQuickTimeやSafariのインストーラーがバージョンごとに残っています。「Safari 5.34.57.2」フォルダが最新版(v5.1.7)になるので、このフォルダをバックアップしておけば、とりあえず安心。

2011-05-23

Emacs23でjs2-modeを使うのにもうespressoは不要

EmacsでJavaScriptを書くのに欠かせないjs2-mode
Emacs23に入れ替えたついでに、設定を見なおしてみました。

※追記

いろいろカスタマイズする方法を書いたんですが、もっと便利なjs2-mode (フォーク版)というのがあるのを知りました。
そちらを使うほうが早くて簡単で高機能です。
(ちょっと古いけど日本語での紹介

なのでこの下はもう読まなくてもいいんですが、いちおう残しておきます……。


js2-modeの不備を補うためにespressoを併用していたけれど…

js2-modeは大体すばらしいのですが、インデントがいただけません。
たとえばコールバック関数を書くとき。
window.setTimeout(function(){
                    doSomething(); // インデントの基準が丸カッコの位置に…
                  }, 1000);
左にスペース空きすぎです。
やっぱり次のようになってほしいのです。
window.setTimeout(function(){
  doSomething(); // インデントの基準は前の行
}, 1000);
そこでポピュラーなのが、js2-modeとは別のJavaScript用メジャーモード「espresso-mode」を併用する方法。
元ネタはたぶんココだと思われます。

というわけでespresso-modeのサイトに行ってみたら、次のようなお知らせが。

「espresso-modeはGNU Emacsのバージョン23.2以降では js-mode という名前で本体同梱になったよ」(意訳)

えっ…!

espresso-modeは別途インストールの必要なし

今回インストールしたEmacsのバージョンは23.3.1。ということはjs-modeはバッチリ同梱されているはずです。
そこで、espresso-modeを別途インストールするのではなく、同梱のjs-modeを利用する方向に切り替えてみましょう。

と言っても何も難しいことはなく、.emacsとかに書く「espresso」の部分を単純に「js」に置換すれば終了です。

(autoload 'js-mode "js")
(defun my-js2-indent-function ()
  (interactive)
  (save-restriction
    (widen)
    (let* ((inhibit-point-motion-hooks t)
           (parse-status (save-excursion (syntax-ppss (point-at-bol))))
           (offset (- (current-column) (current-indentation)))
           (indentation (js--proper-indentation parse-status))
           node)
      (save-excursion
        ;; I like to indent case and labels to half of the tab width
        (back-to-indentation)
        (if (looking-at "case\\s-")
            (setq indentation (+ indentation (/ js-indent-level 2))))
        ;; consecutive declarations in a var statement are nice if
        ;; properly aligned, i.e:
        ;; var foo = "bar",
        ;;     bar = "foo";
        (setq node (js2-node-at-point))
        (when (and node
                   (= js2-NAME (js2-node-type node))
                   (= js2-VAR (js2-node-type (js2-node-parent node))))
          (setq indentation (+ 4 indentation))))
      (indent-line-to indentation)
      (when (> offset 0) (forward-char offset)))))

(defun my-indent-sexp ()
  (interactive)
  (save-restriction
    (save-excursion
      (widen)
      (let* ((inhibit-point-motion-hooks t)
             (parse-status (syntax-ppss (point)))
             (beg (nth 1 parse-status))
             (end-marker (make-marker))
             (end (progn (goto-char beg) (forward-list) (point)))
             (ovl (make-overlay beg end)))
        (set-marker end-marker end)
        (overlay-put ovl 'face 'highlight)
        (goto-char beg)
        (while (< (point) (marker-position end-marker))
          ;; don't reindent blank lines so we don't set the "buffer
          ;; modified" property for nothing
          (beginning-of-line)
          (unless (looking-at "\\s-*$")
            (indent-according-to-mode))
          (forward-line))
        (run-with-timer 0.5 nil '(lambda(ovl)
                                   (delete-overlay ovl)) ovl)))))
(defun my-js2-mode-hook ()
  (require 'js)
  (setq js-indent-level 2
        indent-tabs-mode nil
        c-basic-offset 2)
  (c-toggle-auto-state 0)
  (c-toggle-hungry-state 1)
  (set (make-local-variable 'indent-line-function) 'my-js2-indent-function)
;  (define-key js2-mode-map [(meta control |)] 'cperl-lineup)
  (define-key js2-mode-map [(meta control \;)]
    '(lambda()
       (interactive)
       (insert "/* -----[ ")
       (save-excursion
         (insert " ]----- */"))
       ))
  (define-key js2-mode-map [(return)] 'newline-and-indent)
  (define-key js2-mode-map [(backspace)] 'c-electric-backspace)
  (define-key js2-mode-map [(control d)] 'c-electric-delete-forward)
  (define-key js2-mode-map [(control meta q)] 'my-indent-sexp)
  (if (featurep 'js2-highlight-vars)
    (js2-highlight-vars-mode))
  (message "My JS2 hook"))

(add-hook 'js2-mode-hook 'my-js2-mode-hook)

なお、元サイトからはついでにちょっぴり書き換えています。
・インデント幅を2に変更
・私の使わない行をコメントアウト

これを.emacsや.emacs.d/init.elなどに書けば、コールバックを渡すたびにイラッとすることもなくなります。
ついでにswitch文のcaseの位置や、変数宣言が複数行に渡る場合も快適に。
// BEFORE:
var x = 0,
y = 1;     // 変数宣言の途中で改行すると、前行の頭がインデントの基準だった

// AFTER:
var x = 0,
    y = 1; // 前の行と変数名の位置が揃って気持ちいい

js2-mode 小ネタ2つ

備忘録ついでに js2-mode の小ネタを2つほど。
  1. バイトコンパイルしましょう:
    M-x byte-compile-file 【RET】(js2-mode.elのパスを入力)
  2. js2-mode.elはダウンロードページよりsvnのほうがちょっと新しい:
    ダウンロードページにあるのは 2009/7/23(rev73) ですが、svnのほうは 2009/8/8(rev80)。ちょっとだけ新しいです。
    svn使わなくても、Webブラウザでhttp://js2-mode.googlecode.com/svn/trunk/js2-mode.elにアクセスすればダウンロードできます。

2011-05-21

MeadowからNTEmacs23に乗り換えた

テキストエディタは長らくMeadowを使ってきました。コードを書く分には特に困ることもなかったのですが、ただ、UTF-8なファイルで「~」や「①」などの取り回しがどうもうまくないのはちょっと気に入らないところでした。
大したことじゃないと目をつぶってきましたが、Emacs23だとこれらの文字も正常に扱えると聞いたので、導入してみます。

gnupack版NTEmacsをインストール

本家にもバイナリはありますが、IMEにちゃんと対応したパッチが当たっているというgnupackのほうを使います。
現在のバージョンは 23.3。

tramp(ange-ftp)が動くようにする

サーバー上のファイルを直接編集できるのがEmacsの凄いところなのですが、これがうまく動いてくれません。
調べてみたら、別途 ftp.exe を用意する必要があるそうです。

Win7のタスクバーにピン留めできるようにする

できなくてもそれほど困りはしないですが、できるようになると気持ちいいです。
runemacs.exeのショートカットに「GNU.Emacs」というAppIDを設定する

Meadowと比べたEmacs23雑感

  • 動作が早い
    起動も、新しいフレーム(ウィンドウ)開いた時も、キビキビしてます。
  • 「~」や「①」などが化けない
    Shift_JIS(CP932)でもUTF-8でも正しく扱えて、かつWindowsのクリップボードにコピーしても化けません。
  • フォントの細かい調整はできない?
    Meadowで細かい調整をするのに使っていた w32-logfont がEmacs23では使えません。同等の設定はできるのかもしれませんが、elispは難しい…。
日本語向け文字コード設定の例は http://nijino.homelinux.net/emacs/emacs23-ja.html を参考にしました。

関連リンクにあるPDFを読むと、Emacs23が新たに採用したJIS X 0208→Unicodeのマッピングのバラエティの多彩さに感動します。
たとえば「~」の揺れの扱い。5種類の方法からユーザーが好きなものを各々選択できると。
  • 積極JIS派
    あらゆる「~」はU+301Cに寄せたい。U+FF5Eの存在を許さない
  • 消極JIS派
    Shift_JISやEUCの「~」はU+301Cに寄せたい
  • 中立派
    Shift_JISやEUCの「~」はU+301Cでいいし、CP932の「~」はU+FF5Eでいい
  • 消極Windows派
    Shift_JISやEUCの「~」はU+FF5Eに寄せたいが、それ以外は中立
  • 積極Windows派
    あらゆる「~」は U+FF5Eに寄せたい。U+301Cの存在を許さない
これなら極右から極左まで、みんななかよくEmacsを使えるというわけです。すごい。

2009-02-26

Safari 4、速いが重い

Safari 4 パブリックベータ

アップル、Safari 4を発表 — 世界最速、最も革新的なブラウザ(アップル公式サイト)

Safari 4は、新しいNitro JavaScriptエンジンなど、世界で最も進んだウェブテクノロジーをベースに作られており、JavaScriptをIE7より最大30倍速く、Firefox 3よりも3倍以上速く実行します。SafariはHTMLウェブページの読み込みも速く、IE7より3倍以上、Firefox3と比べてもほぼ3倍の速さで素早く読み込みます。

確かに、常用しているFirefox 3.0と比べると、ページの表示の速さは体感できるほどの違いがあります。アドレス欄にURL打ち込んでEnter押した瞬間にページが表示されることもあって、ちょっとびっくりしました。

ただ、重いです。
「速いのに重い」というのは何だか矛盾してるような気もしますが、「速い代わりにCPUパワーが要求される」という感じ。Google Chromeを使っていても思うことですが、Pentium 4とかPentium Mといった何年も前のCPUだと、さすがにちょっとパワーが足らないかなと感じさせる時代がやって来たようです。
とはいえ、いま使ってるPCは修理から戻ってきたばかりなので、あと最低半年、できれば1年以上は頑張ってほしいところですが…!

2008-12-12

Google Chromeでパスワードを「このサイトでは保存しない」にした後で、やっぱり保存したくなったら?

β版として提供されていたGoogleのブラウザ「Google Chrome」が正式版になったそうです。
GoogleのWebブラウザ「Chrome」が正式版に(マイコミジャーナル)
[レビュー]正式版となったGoogle Chromeを試す(マイコミジャーナル)

Chromeで気になっていたことがありました。ログインフォームなどで「パスワードを保存しますか?」と訊かれて「このサイトでは保存しない」と答えてしまうと、後で「やっぱり保存したい…」と思ってもあとの祭りだという点です。
Google Chrome:パスワードを保存しますか?

Firefoxの場合は、オプション画面で「セキュリティ」→「例外サイト」と進むと、「パスワードを保存しないサイト」の一覧が表示されます。ここで目的のサイトを一覧から削除すれば、そのサイトで再びログイン情報を保存できるようになります。
ところがGoogle Chromeにはそのような設定変更の手段が用意されておらず、正式版になっても変わりはないようでした。

仕方がないので何とかならないかと調べてみたところ、Google Chromeヘルプグループにあった方法でログイン情報を再度保存できるようになりました。ただし、副作用があるのが難点。

手順は次のようになります。
  1. 設定メニュー(スパナのアイコン)をクリックして、「閲覧履歴を消去(D)...」を選びます。
  2. 「保存したパスワード」にチェックを入れ、「このサイトでは保存しない」を選んだ日を含むように期間を選んで「閲覧履歴の消去」ボタンを押します。
    (たとえば「このサイトでは保存しない」を選んだのが24時間以内であれば、期間は「過去1日」を選びます)
  3. これで、再度目的のサイトに行ってログインすれば、再度「パスワードを保存しますか?」と訊いてくれます。

ただし副作用として、期間内に他のサイトで記憶させたパスワードも巻き添えで消えてしまいます。また保存し直せばいいのですが、ちょっと残念感は否めません。

2008-09-08

Google ChromeのユーザエージェントがSafariだった

Google Chromeのユーザエージェントを見てみました。
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.29 Safari/525.13
WebKit使ってるとは聞いていましたが、思いっ切り「Safari」って書いてあるんですね。
ちなみに手元の本物のSafariのUAはこんなの。(上のも含めOSはWindows XPです)
Mozilla/5.0 (Windows; U; Windows NT 5.1; ja-JP) AppleWebKit/525.19 (KHTML, like Gecko) Version/3.1.2 Safari/525.21

2008-09-03

プロキシ環境でGoogleブラウザ(Chrome)がインストールできないときは

GoogleのブラウザGoogle Chrome(β版)が公開されました。今はWindows Vista/XP版だけですが、MacやLinux版も予定されているそうです。日本語版もあります。

早速インストールしてみようとしたら、インストーラが「インターネットに接続しています…」と言ったまま先に進みません。プロキシ(proxy)経由でないと外界にアクセスできない環境では、プロキシ設定を調整しないといけない場合があるようです。具体的に言うと、「外につなぐには要プロキシ、でもWindows Updateはプロキシを使わずLAN内のサーバから」というような環境の場合とか。
そんなときは、「Windows Updateなどで使うネットワーク設定(WinHTTP)も、一時的にプロキシを使うように変えてやる」ことでGoogle Chromeがインストールできるようになります。具体的にはこんなふうに。
  1. IEのプロキシの設定を確認
    IEからならちゃんとインターネットに接続できることを確認します。FirefoxやSleipnirなんかを使っている場合、プロキシ管理をそれらのブラウザ側でしていると、IEとしては「プロキシを使わない」という設定になっていることがあるので要注意。
    設定画面は、IEのメニューの「ツール(T)」→「インターネット オプション(O)...」→「接続」タブ→「LANの設定(L)...」で表示されます(IE6の場合)。
  2. コマンド プロンプトを開いて、
    > proxycfg -u
    と入力します。これで、IEのプロキシ設定がWinHTTPにもコピーされました。
  3. Google Chromeをインストールします。もう「インターネットに接続しています…」で止まらなくなったはずです。
  4. インストールが完了したら、再度コマンド プロンプトから、
    > proxycfg -d
    と入力し、設定を元に戻します。これをやらないと、今後Windows Updateなどが正常に動かないおそれがあります。
この方法はVistaでは使えない(proxycfgコマンドがない)そうなので、Vistaの方は「netsh winhttp proxy」とかで検索してみてください。

というわけでこの記事はGoogle Chromeで書いていますが、言われているほど「劇的」な変化は感じないかな? もうちょっといろいろ使ってみます。

2008-07-09

WindowsにBINDを導入(named-checkzone.exeが出すエラーの対処法つき)

WindowsでDNSサーバを立てなきゃいけなくなったので、ちょっと調べてみました。

DNSサーバと言えばBINDが有名ですが、Windows バイナリ形式でも配布されているので導入は簡単です。私は BIND9.5.0-P1.zip というファイルをダウンロードしました。

●インストール

ZIPファイルを展開して出てくるインストーラを起動するだけです。
DNSサーバ(named)の他に、dig とか nslookup といったツール類も導入されます。

●設定

設定ファイルは自分で一から書く必要があります。デフォルトでは、C:\WINDOWS\system32\dns\etc\ というフォルダに named.conf というファイルを作ることになります。

●テスト

設定ファイルの内容がおかしくないかを確認するプログラム named-checkconf、named-checkzone が C:\WINDOWS\system32\dns\bin\ にインストールされているので、これらを使って named.conf やゾーンファイルをチェックします。

●named-checkzone.exe が「INSIST(0) failed」エラーを出す場合

ゾーンファイルをチェックしようとしたら、named-checkzone.exe が「INSIST(0) failed.」というエラーを出して使えませんでした…。どういうことよと Google に訊いてみたところ原因を見つけた人がいました。
実行するときに「named-checkzone.exe」だとエラーになるけれど、拡張子を付けずに「named-checkzone」とすれば良いとのこと。ファイル名が長いのでTABキーで補完入力してしまう人(私のことです)には盲点でした。TABキーだと.exeまで補完されますから。

●おまけ:Windows XP/VistaでDNSサーバを立てるのはライセンス違反?

XPや2000でDNSを立てるのは、EULAで禁止されているそうです。サーバソフトウェアを使いたかったら Windows Server を使ってね、とのこと。
上のサイトはVistaが出る前に書かれたようで、Vistaについては触れられていませんが、XP/2000と同じ扱いとなる可能性はあります。ご注意ください。