最近の更新 コメントスレッドの表示切替 | キーボードショートカット

  • ttanimu 10:23 PM | 2017年5月22日 パーマリンク | 返信  

    Node.jsを使ってみる 

    最近急にMastodonが流行り始めました。
    Mastodon自体の説明については他に譲るとして、
    Mastodonではウェブサーバ(ストリーミング用)に
    Node.jsを利用しているようです。
    Node.jsはウェブのフロントエンドで育まれたJavaScriptを
    サーバでも使おうという発想で生まれたウェブサーバではありますが、
    私が愛用するApacheウェブサーバとの同居が面倒なため
    これまで避けておりました。
    しかしMastodonという動機付けでもって
    この度Node.jsを使ってみる気になりました。

    さて今回Node.jsをセットアップするのはServersMan@VPSで
    借りているUbuntu 14.04ベースのリモートサーバです。
    以下を実行します。

    $ su -
    # apt-get update
    # apt-get install nodejs npm
    # npm cache clean
    # npm install n -g
    # n stable
    # exit
    

    ここで適当なディレクトリにファイル”helloworld.js”を

    var http = require('http');
    http.createServer(function (req, res) {
        res.writeHead(200, {'Content-Type': 'text/plain'});
        res.end('Hello World\n');
    }).listen(8031,"<ホスト名>");
    console.log('running helloworld.js');
    

    の内容で作成します。
    ちなみにポート番号を8031にしているのは、
    ポート番号一覧で8030~8040あたりが空いているからで、
    それ以上の意味はありません。
    そして

    $ node helloworld.js
    

    を実行し、ウェブブラウザで”http://<ホスト名&gt;:8031″を開きます。
    なおホスト名は先のファイルで指定したそのものでなくてもよく、
    DNSサーバ上で付けている別名でも構いません。
    結果、ブラウザには

    Hello World
    

    とだけ表示されます。
    Node.jsの動作確認ができました。

    ところで”helloworld.js”を

    var http = require('http');
    http.createServer(function (req, res) {
        res.writeHead(200, {'Content-Type': 'text/plain'});
        res.end('Hello World 8031\n');
    }).listen(8031,"<ホスト名>");
    
    var http1 = require('http');
    http1.createServer(function (req, res) {
        res.writeHead(200, {'Content-Type': 'text/plain'});
        res.end('Hello World 8032\n');
    }).listen(8032,"<ホスト名>");
    
    console.log('running helloworld.js');
    

    のようにすると8031番ポートと8032番ポートで別コンテンツを
    同時に公開できます。
    ただし、この中の

    }).listen(8032,"<ホスト名>");
    

    }).listen(8031,"<別のホスト名>");
    

    にしてもバーチャルホストは実現できません。
    ポート番号の重なりでエラーが出るだけです。

    SSLについても対応可能です。
    先の”helloworld.js”の第2段落を

    var https = require('https');
    var fs = require('fs');
    var ssl = {
        cert: fs.readFileSync('cert.pem'),
        key: fs.readFileSync('privkey.pem')
    };
    https.createServer(ssl, function (req, res) {
        res.writeHead(200, {'Content-Type': 'text/plain'});
        res.end('ssl\n');
    }).listen(8032,"<ホスト名>");
    

    に変更し、それと同一ディレクトリに
    証明書情報の”cert.pem”と”privkey.pem”を置いて、
    パーミッションをきちんと設定すれば完了です。
    証明書情報は、もしLet’s Encryptから
    Linux上のApache向けに発行を受けているのなら、
    “/etc/apache2/ssl/letsencrypt/live/<ホスト名>/”ディレクトリ下に
    同名のファイルで存在するので、そのままコピーします。
    ただしパーミッションには注意が必要です。

    最後にデーモン化について。

    $ node helloworld.js
    

    では[Ctrl]+[c]やログアウトで終了してしまうので、

    # npm install forever -g
    

    で”forever”コマンドをインストールして

    $ forever start helloworld.js
    

    でウェブサーバを起動するようにします。

    $ forever stop helloworld.js
    

    を実行すれば止められます。

     
  • ttanimu 11:07 PM | 2017年5月18日 パーマリンク | 返信  

    郵便料金値上がり 

    この6月から郵便料金が値上がりします。
    現在52円で送ることができるハガキが62円になります。
    私の知る範囲での大昔には40円でしたから、
    消費税分を除いても1.4倍以上になってるんですね。
    世の中デフレと言いつつも上がる物は上がるんです。
    ただ最終利用者の感情で値下げや価格据え置きが
    強要されるような風潮には個人的に違和感を持っており、
    必要なところが正当で必要なだけの取り分を得られる
    社会になっていくことが、
    経済の継続的成長に繋がるような気がしています。

    そうは言っても貧乏暮らしに値上げは厳しいもの。
    安いうちに済ませられる用なら即動いておくべきです。
    ということでプリングルズのBluetoothスピーカー
    応募を済ませました。
    まあ郵便局で封筒の重さを測ってもらうと25g以下で、
    来月からの値上げの対象外ではありましたが。
    定形郵便(50gまで)は料金据え置きです。
    それはともかく、正直プリングルズ
    19個を食べるのはかなりきつかったです。
    おいしければそんなに苦にもなりませんが、
    贔屓目に見ても昔と比べて味が落ちているように感じますから。
    締切りの6月末まで応募もう一口分食べれなくはないですが、
    無理するのも辛いのでもう止めておきます。
    ああ、かつてのアメリカ生産品であれば…

     
  • ttanimu 10:52 PM | 2017年5月17日 パーマリンク | 返信  

    PayPalでドル払い 

    Sony Bank WALLETを利用するようになって
    外貨決算がお得になりました。
    円高の時に外貨に両替しておけば、
    その後円安に振れても両替当時の為替で支払えるので。
    私のケースではここ1年ほどで結構得してます。

    ところで最近米ドル決算なんですけど
    PayPalで支払う場面に出会いました。
    一応PayPalにSony Bank WALLETのみを登録して
    準備万端と思っていたのですが…
    以前は支払い時に通貨を指定できたと記憶していたのですが、
    現在は手続きのページがえらく簡素化されていて
    そんな設定見当たりません。
    しょうがないので処理をそのまま進めていくと支払い完了。
    PayPalの高額手数料込み為替レートで
    Sony Bank WALLETから日本円で支払ですorz
    一応[未承認取引のクレームに関するPayPal調査]で
    苦情を書き込んでみましたが、予想通り一蹴されました。

    その後、PayPalにその旨質問してみたところ、
    VISAの場合は通貨換算レートをクレジットカード会社か
    PayPalかで自由に選択できるようになっており、
    今回の私のケースでは売り手側で特別の設定をしている
    可能性があるとのことでした。
    デフォルトの支払い通貨を変更できないかも訊いてみると、
    ウェブサイト上で自分で変更するのは無理なようですが、
    メール(PayPal内のメッセージシステム)で連絡すれば
    個別対応はしてもらえるとのことでした。
    しかしデフォルトの通貨を米ドルにしてしまうと
    今度は日本円での支払い時に為替手数料が発生し、
    下手をすると日本円→米ドル→日本円と
    二重両替が発生するので、それはそれで困ります。
    ということで先の売り手の方に苦情を言っておきました。

     
  • ttanimu 10:11 PM | 2017年5月16日 パーマリンク | 返信  

    vpnの不調をadbで調査 

    先日フレッツ光のHGWであるPR-500MIのvpnが切れる
    と書きましたが、それだけでは技術者っぽくないので
    ちょっと調べてみました。
    とはいえHGW側ではその手のログが出ていないようなので
    クライアントとなるalcatel IDOL3で何とかします。
    Androidなのでadbでログを吐き出させます。

    ちなみにadbはAndorid端末を接続したPCで動作させて
    コマンドラインでいろいろできるツールで、
    利用するにはいろいろと前準備が必要ですが、
    今回はPCにadbをインストールするところを中心に触れます。

    最近のUbuntuなんかだとadbは

    # apt-get install android-tools-adb
    

    あるいは

    # apt-get install adb
    

    でお手軽にインストールできます。
    Bash on Windowsでもインストールはできますが、
    今のところUSB接続したAndroidは認識してくれないようです。
    WindowsやmacOSだとAndroid Studioをインストールして
    SDKをダウンロードし、adbへパスを通す必要があります。
    具体的にはWindowsやmacOSのウェブブラウザで
    Android Studioのページを開き、Windowsならexeファイル、
    macOSならdmgファイルをダウンロードしてインストールし、
    Setup Wizardを進めます。
    作業終了後、macOSならターミナルにて

    $ echo 'export PATH=$PATH:~/Library/Android/sdk/platform-tools' >> ~/.bash_profile
    

    を実行しておけば、
    次にターミナルを開いときにはadbが使えるようになっています。
    WIndowsだと[設定]アプリケーションを開いて
    [設定の検索]ボックスで”環境変数を編集”を検索して実行し、
    [個別のユーザー環境変数]リストの”Path”を選択して[編集]をクリック、
    [新規]ボタンをクリックして
    “%USERPROFILE%\AppData\Local\Android\Sdk\platform-tools”
    を追加すれば完了です。
    Cortanaで”cmd”と入力してコマンドプロンプトを起動すれば
    “adb”で実行できますし、
    Bash on Windowsでも”adb.exe”で実行できます。
    “.exe”も必要なところがミソです。

    さて、実際にvpn接続時のログを取ってみます。

    $ adb devices
    

    でAndroid端末がadbに認識されているのを確認後、

    $ adb logcat -c
    

    でそれまでたまっているログを一旦削除して、
    端末でvpn接続操作を行い接続完了、
    または失敗するまで待って

    $ adb logcat
    

    を実行すると画面にログが表示され続けます。

    $ adb logcat > log.txt
    [Ctrl]+[c]
    

    とすればログがファイル”log.txt”に保存されるので
    それをテキストエディタで開いた方が見やすいでしょう。

    で、vpn接続成功時と失敗時のログを比べてみると…

    racoon  : IPsec-SA request for <HGWのIPアドレス> queued due to no phase1 found.
    racoon  : initiate new phase 1 negotiation: <AndroidのIPアドレス>[500]<=><HGWのIPアドレス>[500]
    racoon  : begin Identity Protection mode.
    

    の後に、成功時は

    racoon  : received Vendor ID: CISCO-UNITY
    racoon  : received Vendor ID: draft-ietf-ipsra-isakmp-xauth-06.txt
    racoon  : received Vendor ID: DPD
    racoon  : received Vendor ID: RFC 3947
    racoon  : Selected NAT-T version: RFC 3947
    

    となるのに、失敗時は

    racoon  : phase1 negotiation failed due to time up. <数字>:<数字>
    racoon  : Bye
    

    となっています。
    IPsecのフェーズ1でHGWから返事が来なくてエラーで落ちてるんですね。
    いろいろと状況を鑑みると、
    どうもHGWのvpnサーバがおかしくなっている可能性が高そうです。
    接続に失敗していてもそのまま放置していれば繋がるようになったりしますし、
    この不安定さ何とかならないものでしょうかね。
    HGWを再起動してしまうのが早そうですが。

     
  • ttanimu 9:51 PM | 2017年5月15日 パーマリンク | 返信  

    基本無料の[バッジとれ~るセンター]が節目を迎える 

    Nintendo3DSで基本無料で遊べていた
    [バッジとれ~るセンター]が来る5月26日に
    バッジの最終入荷となることが同ゲーム内の
    バイトのうさぎからのメッセージにて明らかにされました。
    完全終了ではなく、今後も遊び続けられはしますが、
    初登場より2年半ほぼ毎日無課金で遊んでいた私にとっては
    寂しいニュースではあります。
    ちなみにうさぎ曰く、入荷終了の理由は
    セーブ容量が上限に達したからだそうです。

    まあサービスにはいつか終わりがあるもの。
    だらだらとやるよりは節目できっちり終わってほしいものです。
    でないと次に移れません。
    [ポケとる]もいいかげん終わりそうな気配を見せてほしいです。
    ゲームはエンディングを見て気分よく終える、
    こんな考え方はもう古いのでしょうかね。

     
  • ttanimu 10:02 PM | 2017年5月11日 パーマリンク | 返信  

    外出先から自宅の電話を使う 

    自宅にかかってきた電話を外出先でとる。
    昔の2時間ドラマのトリックのネタにありそうですが、
    現在はそれほど特別なことでもありません。
    そういうコードレス電話機も売られていたりしますが、
    ひかり電話とスマートフォンで簡単にできてしまいます。
    まあすでに書いている外出先から自宅にアクセス
    ひかり電話とスマートフォンを組み合わせるだけですが。
    ただし[AGEphone]アプリケーションの[設定]の
    [高度な設定]-[ネットワーク]メニューで、
    [モバイルネットワークを使用]を有効にしておく必要があります。
    これで3G/LTEのデータ通信を介して、
    家の固定電話の発着信が可能になります。
    自宅のIPアドレスが変わると繋がらないという問題はありますが、
    経験上HGWを再起動しなければIPアドレスは変わりませんし、
    IPアドレス変更の通知は方法がないわけではありません。

    それより問題なのはときどきVPN接続ができなくなることです。
    つなぎ直してもつながらないことも多く、
    スマートフォンを再起動すると復帰することもありますが、
    復帰しないこともあり、このあたりよくわかりません。
    出先で安心して使用できるかと問われると現状では微妙です。
    HGWとスマートフォンの両方を再起動すれば確実なのですが…
    それは禁じ手にしておきたいですね。

     
  • ttanimu 9:58 PM | 2017年5月10日 パーマリンク | 返信  

    Ubuntuは”A”に戻る 

    個人的にどうなるのか心配していたUbuntuのコードネーム
    16.04の”Xenial Xerus”から”Yakkety Yak”、”Zesty Zapus”ときて、
    次の17.10では”Artful Aardvark”となることが明らかになりました。
    “A”に戻りましたね。まあ予想通りです。
    となると次のLTS版である18.04は”B”で始まるということですね。
    ところが”B”は3つ目のリリース5.10で”Breezy Badger”として
    既に使われております。さてどうなりますか。

    ちなみ過去のコードネームはこちらから参照できます。

     
  • ttanimu 10:51 PM | 2017年5月9日 パーマリンク | 返信  

    Parallels Desktop Liteも無料 

    先ごろMacBook Pro
    いくつか無料なアプリケーションをインストールしましたが、
    もう一つ無料になってうれしいのがParallels Desktop Liteです。
    Parallels Desktopと言えばMac上でWindowsを動作させるのに
    定番の有料な仮想化ソフトですが、
    それにいくつかの機能制限を入れたのがLiteで、
    その封印された機能の筆頭がWindowsの動作です。
    まあ私の場合Windowsはデュアルブートで入れていますし、
    新たにWindowsのライセンスを買うお金もないので
    それほど必要な機能ではありません。
    ということで特に目的もありませんが、
    Ubuntu 16.04 on Parallels on Mac 環境を作ってみることに。

    まずはParallels Desktop Liteのセットアップです。
    [App Store]アプリケーションを立ち上げて検索し
    インストールしてからParallels Desktop Liteを起動します。
    ゲストOSとしてChromium OSやUbuntu 16.04等の
    インストール済みディスクイメージと思しきものが
    ダウンロードできるようになっていますが、
    ゲストOSのインストールもテストのうちということで、
    Ubuntu 16.04.2のインストールから始めます。
    DVDイメージのファイル名は”ubuntu-16.04.2-desktop-amd64.iso”で、
    これをDVD-Rにイメージとして焼いて
    インストールDVDを作りましたが、これは読み取ってくれません。
    まあこれはmacOS自体でも読めないのでやむを得ません。
    しかし焼く前のDVDイメージファイルなら利用可能です。
    高速インストールを選択せずに進め、
    インストールが開始されれば後は通常と変わりありません。
    もちろんインストール後もです。

    ただ仮想環境の設定をしていて問題が。
    ネットワークが共有かホストオンリーしか選択できません。
    マシン内でNATが介在してしまいます。
    ブリッジにできないということで
    ゲストOSを直接マシン外に公開できないんですよね。
    まあこれはLite版の制限のようです。
    サーバの実験やローカルで何か作業する分には
    これでもなんとかなります。

    以前macOS+Windows+Ubuntuでトリプルブートにしていたとき、
    macOSのアップデートで環境をむちゃくちゃにされたことがあり、
    実環境はmacOS+Windowsのデュアルブートに
    止めた方がいいと個人的には悟っています。
    しかしUbuntu(Linux)が欲しい場面もないことはありません。
    Windows10上にはネイティブで
    Ubuntuサブシステムがありますが、
    macOS上でもUbuntu仮想マシンが使える環境が整いました。
    用途は…後で考えます。

     
  • ttanimu 10:46 PM | 2017年5月8日 パーマリンク | 返信  

    Google Talkってまだ動いてるの? ハングアウトは続けるの? 

    ChromeブラウザでGmailを開くとページの左下にチャットツールが表示されます。
    普段気にも止めませんが、ふとした拍子にそこをみると

    Google Talk will be replaced with Hangouts on June 26, 2017.
    

    なるメッセージが。いつから表示されてたんだ?
    というか、Google Talkってまだ動いてたのか?
    ともかくそこにある[Switch Now]リンクをクリックしてみると、
    ハングアウトっぽい表示に変わり、
    ロースターの内容もなんだか変わったような。
    正直Google Talkとハングアウトの境界がよくわかりません。

    Google Talkの後継であるハングアウトも先行きは怪しく、
    グループ内チャットの[Hangouts Chat]と
    テレビ会議システムの[Hangouts Meet]に分科して
    [G Suite]のサービスになっていく気配があります。
    ただ[Hangouts]そのものの実質的な後継と目される
    AlloDuoはユーザIDが電話番号であり、
    メールアドレスベースの[Hangouts]から
    完全に置き換えることはできません。
    それでもGoogleは[Hangouts]を収束させるのかと
    疑問に感じていましたが、どうやらそれは杞憂に終わりそうです。
    まあ長いスパンでは[Hangouts Chat]と[Hangouts Meet]に
    移行するのかもしれませんが。

    [Hangouts Chat]は現在 Early Adopter Program 中のようで、
    それに申し込んでまで使ってみようとは思いませんが、
    私の契約している[G Suite]サービスで
    使えるようになったあかつきには、
    既に利用可能な[Hangouts Meet]といっしょに
    少し試してみるつもりでいます。

     
  • ttanimu 11:05 PM | 2017年5月4日 パーマリンク | 返信  

    自宅にIPv6 

    数年前から借りているServersMan@VPSのサーバは、
    IPv6に対応していました。
    ただしこれまで自宅のネット環境がIPv6に非対応だったため、
    IPv6で直接通信したことはありません。
    しかし環境が楽天コミュニケーションズ光(SANNET)に変わり、
    IPv6へのアクセスが可能となりました。
    ということで少々実験です。

    まずはHGW(ホームゲートウェイ)のPR-500MIの設定です。
    [基本設定]-[接続先設定(IPv6 PPPoE)]メニューの
    [IPv6セッション]の[接続]をクリックします。
    これで自宅内にIPv6が浸透します。
    またこの後の実験のためにフィルターを無効にしておきます。
    [詳細設定]-[IPv6パケットフィルタ設定(IPoE)]メニューから可能なようです。
    IPv6 IPoEとIPv6 PPPoEは別物ではありますが、

    IPv6ファイアウォール機能を「無効」にした場合、
    IPv6パケットフィルタ設定(IPv6 PPPoE)も無効となりますのでご注意ください。
    

    と注意書きがあるのでよしとしておきます。

    で、自宅内ネット環境の2つ機器からウェブブラウザで、
    アクセス元IPアドレスを表示してくれるような
    外部のウェブページにアクセスして、
    それら機器に別々のIPv6アドレスが振られており、
    かつHGWでNATが介在していない事を確かめました。
    どうやらIPv6は本当にフラットになっているようです。
    ちなみに前述のようなウェブページは私はVPS上で
    自前で作っており今回はそれを利用しております。
    まあLinux+Apache+PHPで

    $ip=$_SERVER["REMOTE_ADDR"];
    echo $ip;
    

    を実行するようなページを書いているだけですが。

    さて、HWG配下のUbuntuマシンでウェブサーバを立ち上げ、
    外部からIPv6直接指定でアクセスできるか確かめます。
    私は自宅内からVPSにsshでログインしてそこからwgetで

    $ wget http://[<IPv6アドレス>]
    

    のように
    自宅内ウェブサーバに折り返しでアクセスしてみました。
    結果は良好。
    IPv6であればポートフォワーディング等の特別な設定なしで、
    内部サーバにIPv6アドレス指定でアクセス可能です。
    HGWやISPの都合でIPアドレスが変わることを解決できれば、
    IPv6でなら、いつでも自宅の個別の機器にアクセスできます。
    ただしセキュリティにはご注意を。
    下手をするとダダ漏れになりますから。

     
c
新規投稿作成
j
次の投稿 / 次のコメント
k
過去の投稿 / コメント
r
返信
e
編集
o
コメント表示 / 非表示
t
トップへ移動
l
ログインへ
h
ヘルプを表示 / 非表示
Shift + ESC
キャンセル