二〇一六年 皐月 廿一日 土曜日■ VMware Fusion 上の Windows 7 または 8 を 10 にアップグレード [/links]この記事は書かれてから1年以上経過しています。内容が古くなっている可能性があります。コメントの受付は終了しました。 Windows 10 の無料アップグレード期間が 7 月 29 日に終了する。それを受けて、Windows 7、8、8.1 のユーザーに対する半強制アップグレードが始まっている。明示的にキャンセルしないと自動的にアップグレードされてしまうので、今までの OS を使い続けたいと思っている人にとっては迷惑極まりない。もっとも、アップグレード後 1 か月以内であれば元に戻すことができる。 Mac 上で VMware Fusion を使って Windows を動かしている場合、幸いなことに、自動アップグレードが実行されない。ディスプレイが Windows 10 と互換性がないと判定されるためだ。アップグレードをしない場合は好都合だが、アップグレードしたいと思ったときには困る。 VMware に限らず、仮想マシン上で動いている Windows では、アップグレードができない場合があるようだ。VMware の場合、対処法が VMware のナレッジベースにある。 私は、Windows 7 を仕事用に、Windows 8 をテスト用に使っていた。Windows 8 は仕事では使えないと判断していたので、Windows 7 はそのままにしておいて、Windows 8 を Windows 10 にアップグレードした。Windows 10 が仕事に使えることがわかれば、Windows 7 の使用をやめて Windows 10 に一本化する予定だ。 [この記事だけを読む。] [最新の記事を読む。] 二〇一六年 卯月 九日 土曜日■ CoffeeScript で即時関数を書く方法まとめ [/links]この記事は書かれてから1年以上経過しています。内容が古くなっている可能性があります。コメントの受付は終了しました。 JavaScript には、即時関数とか即時実行関数とか呼ばれるパターンがある。こんなの。
関数を定義して、すぐさま実行する。(だから「即時関数実行」というべきだろうと思うけれど、慣習に従う。)JavaScript で変数をスコープに閉じ込めるには関数の中に入れるしかないので、このパターンをよく使う。 で、よく知られている通り、これは CoffeeScript では、
と簡単に書ける。でも、どうしてそう書けるのか。 そもそも
を JavaScript にコンパイルすると
となる。つまり、
即時関数を後からもう一度呼び出したい場合がある。上記をふまえれば、次のように書けばよいことがわかる。
これを実行すると、すぐに "Hello" と出て、5 秒後にまた "Hello" と出る。このパターンはページの初期化コードなどに使える。ページが読み込まれたときに自動的に初期化し、ユーザーがいろいろ操作した後に初期化ボタンを押すとまた初期化される、みたいな。 では、即時関数に変数を渡すにはどうするか。こうする。
コンパイルすると、こうなる。
この場合、
これが即時関数でうまくコンパイルされるのを見ると、CoffeeScript はよくできているとあらためて思う。 上記を組み合わせると、こんなこともできる。
これを実行すると、最初に [この記事だけを読む。] [最新の記事を読む。] 二〇一六年 如月 廿九日 月曜日■ たったの 9 分でたどる日本の歴史 [/links]この記事は書かれてから1年以上経過しています。内容が古くなっている可能性があります。コメントの受付は終了しました。 ものすごく早口な英語だけど、内容はだいたいあってる。日本人なら、言葉が聞き取れなくても、映像を見るだけで楽しめるはず。 [この記事だけを読む。] [最新の記事を読む。] 二〇一五年 霜月 廿三日 月曜日■ CentOS 7 に Nginx と Node.jsをインストール [/links]この記事は書かれてから1年以上経過しています。内容が古くなっている可能性があります。コメントの受付は終了しました。 前回の記事で、CentOS 7 に Nginx をインストールする方法を書いた。そこでは、semanage をインストールするのは面倒だと書いたけれど、Nginx のバックエンドで Node.js を動かすなら、semanage が必要だ。semanage は policycoreutils-python パッケージに含まれているので、次のコマンドでインストールできる。
Nginx をインストールして起動し、80 番ポートを開けるまでは、前回の記事に書いた。 semanage を使うなら、ファイル転送のためのユーザーは普通に作ってよい。ユーザー名を
となる。次に、
でアクセス権を設定するが、それだけではウェブサーバーが
でコンテキストを設定して、
で設定を反映する。 Nginx の設定は、基本的にはこんな感じ。
最初の server がデフォルトのサーバーになる。この設定では、blog.ousaan.com と origami.ousaan.com へのリクエストは無条件に Node.js に渡して、そのほかのリクエストについては、URI に対応するファイルがあればそれを返し、なければ Node.js に処理を移す。 Node.js のインストール方法は Node.js のウェブページにある。日本語のウェブページを検索すると古い情報ばかり出てくるので注意。 Node.js を素のまま使うのは辛いので、私は、CoffeeScript をグローバルにインストールし、Express.js と Jade をローカルにインストールした。Node.js に npm が付いているので、インストールは簡単。インストール方法はそれぞれのウェブページを参照のこと。 Node.js の設定は、以前の記事に書いたのと同じ。ただし、それだけでは 502 Bad Gateway のエラーが出る。SELinux のポリシーにより、3000 〜 3002 番ポートに HTTP でアクセスできないため。次のコマンドでアクセスできるようになる。ポートを外に向かって開く必要はないので、ファイアウォールの設定はいらない。
最後に、Node.js アプリをデーモン化する。そのためには forever を使うことが多いようだけれど、CentOS 7 なら systemd を使ったほうがよい。アプリケーションが
すると、
でサービスを開始できる。システムが再起動したとき自動的に起動させるには、
とするだけでよい。 [この記事だけを読む。] [最新の記事を読む。] 二〇一五年 霜月 一日 日曜日■ CentOS 7 に Nginx をインストール [/links]この記事は書かれてから1年以上経過しています。内容が古くなっている可能性があります。コメントの受付は終了しました。 さくらインターネットの VPS を使い始めた。標準 OS は CentOS 6 だが、どのみち 1 から構築するならと、最新の CentOS 7 をインストールした。インストール方法はサポートページに書いてある通り。 ウェブサーバーの定番は Apache だが、私は Node.js を使ってサブドメインも使いたい。以前書いた方法では、Apache をインストールしてもプロキシとしてしか使わない。それもどうかと思ったので、Nginx をインストールすることにした。インストール方法は Nginx のサイトにある。日本語のウェブサイトを検索すると古い情報ばかり出てくるので注意。 Nginx もプロキシとしてのみ使うのはもったいないので、静的ファイルは Nginx から提供し、動的リソースのみ Node.js に処理を渡すことにする。そのため、まずは Nginx で静的 HTML を提供できるようにする。CentOS 7 は 6 から大きく変わっているので、気をつけなければならないことがいくつかある。(ちなみに、参考にしたのはデージーネット著『はじめての CentOS 7 Linux サーバ構築編』。) まず、80 番ポートを開ける必要がある。そのためのコマンドは次の通り。CentOS 6 より簡単になった。
Nginx を起動するには、
とすればよい。システムが再起動した後自動的に起動するようにするには、
とするだけで、必要な処理が自動的に実行される。 ウェブブラウザからサーバーにアクセスし、ようこそページが表示されれば、インストールは成功。 次に、Mac なり Windows なりからファイルを転送するためのユーザーを作る。ユーザー名が
とする(root 権限が必要)。ホームディレクトリを ところで、CentOS 7 に関する日本語のブログ記事を読むと、最初に SELinux を無効にすると書いている記事が多い。しかし、わざわざセキュリティを緩めるというのは、意味がわからない。SELinux がいやなら、ほかの OS を使えばよかろう。 サーバーに SSH でアクセスしているなら、SFTP が使える。FTP サーバーをインストールするのも面倒だし、最近の主だった FTP クライアントはいずれも SFTP に対応している。FTP ソフトウェア(私が使っているのは Forklift)で SFTP を使ってサーバーにアクセスし、 最後に、Nginx を設定して、今置いた HTML ファイルが表示されるようにする。
ファイルを保存したら、
で設定ファイルを読み込む。もう一度ウェブブラウザからサーバーにアクセスすると、期待通りのウェブページが表示されるはず。 [この記事だけを読む。] [最新の記事を読む。] |
カテゴリ
[/language] (98) 最新記事
◇ パスワードについてのあなたの常識はもはや非常識かもしれない・その1 [/links] |