カテゴリー: 技術系memo

  • 次期 Edgeは、Chromiumベースのブラウザに

    正式にマイクロソフトが発表した。
    Windows 10に搭載されているEdgeはいままで独自の処理エンジンだったが、この先の開発で、Edgeの処理エンジンがChromiumに変更になるとのこと。

    https://blogs.windows.com/windowsexperience/2018/12/06/microsoft-edge-making-the-web-better-through-more-open-source-collaboration/amp/

    ブラウザのChrome対応すれば、Edge(=Windows 10)でも使用できるということになる。
    (Edgeで、Gmailがちゃんと使えるようになる、他の機能、たとえばHangouts MEETも使えるようになるはず)

    これは、WWWとしてはかなり歴史的な転換点になると思われる。マイクロソフトが、Windows10標準ブラウザを、Chromiumベースにすることによって、OSベースでは、Windows10、Android4.4以降で、同じ処理になるため、共通のウェブアプリケーションを使用できるようになる。かつ、ChromeはLinuxでも動作するので、ブラウザを使うプラットフォームすべて同じものが使えるようなるはずだ。ちなみに、MacやiPhoneは、Safariですが、これの処理エンジンはWeb-Kitで、Chromiumの元になっており、動作が近い。

    今までは、ブラウザの個別依存が激しすぎて、Chrome対応、IE対応、FireFox対応と、、、個別のCSSやJavaScriptを用意してい。テストも、とても時間ががかっていた。今度は、Chrome対応すると、ほとんどのプラットフォーム(OS)、ほとんどのブラウザで使えるようになり、効率化が図られます。ウェブアプリを新規でつくるときも、最初から対応範囲(対応ブラウザ)が広がるので、参入障壁が低くなる。

    では、EdgeがChromiumベースになって困ることは?というと、Windows10に向けて、Edge対応のシステムを作っているところです。今がんばって開発しても、近い将来に使えなくなると。そのため、いまからChrome対応も併せて必要になってくるという投資が発生する。これから、対応を考えているところにとっては、Chrome対応を考えればよいだけなので、シンプルだ。

    多様性がなくなるという意見もあるが、Chromiumはオープンソースになっているので、そこまで多様性は失われないはずだ。Web-KitのSafariもスマートフォン、タブレットの領域では、多数使われている。そのことを考えても、そう悲観することはないと思う。むしろ、企業向けの対応を考えるとEdgeのChromium採用は喜ばしい。

  • Bitnami Redmineの起動方法

    Linuxにインストールしたbitnami Redmineの手動での起動・停止方法のメモ。

    bitnami Redmine Stackを起動する

     sudo /opt/redmine-3.4.6-1/ctlscript.sh start

    bitnami Redmine Stackを停止する

     sudo /opt/redmine-3.4.6-1/ctlscript.sh stop

    bitnami Redmine Stackを再起動する

     sudo /opt/redmine-3.4.6-1/ctlscript.sh restart

    bitnami Redmine Stackのステータス確認

     sudo /opt/redmine-3.4.6-1/ctlscript.sh status

    ApacheやMySQLだけ個別に停止や起動を行う場合

    例)mysqlだけ起動

     sudo /opt/redmine-3.4.6-1/ctlscript.sh start mysql

    例)Apacheだけ停止

     sudo /opt/redmine-3.4.6-1/ctlscript.sh stop apache
  • Fusion Tablesで日本語文字列で検索できない問題の対処

    Where句でのシングルクォートとダブルクォートの違いが原因。
    Fusion Tablesでは、文字列の囲みは、シングルクォートを使う。ダブルクォートの場合、解釈されず、エラーになる。

    検証していて厄介だったのは、Where句を用いた検索で、ダブルクォートを使うと、中身が数字だと検索できるのに、中身がマルチバイト文字列だとエラーになる。
    しかも、FusionTables.Query.sqlGet(sql)でクラッシュする。

    OKパターン

      var sql = 'select * from ' + tableId;
      sql += " where name like '%" + keyWord + "%'";
    

    NGパターン

      var sql = 'select * from ' + tableId;
      sql += ' where name like "%' + keyWord + '%" ';
    

    Fusion TableのSQLは、厳密に”を解釈するようだ。

  • iCloud.comにSMTPサーバからメールが送信できない

    システムからのメール送信用サーバから、@icloud.com宛にメールを送信すると、メールが届かなくなった。メールサーバのログを見てみると、コード450、4.7.1のステータスだった。配送先ドメインによっては DNS の MX レコードから送出元の MTA が正しいホスト名を名乗っているかどうかを確認している場合があり、これでリジェクトされたときが、「450 4.7.1」を返す。

    450 4.7.1: Helo command rejected: Host not found

    icloud.comのメールサーバで、メールを受信した際に送信元のホスト名の確認を行うようになったようだ。もしかしたら、だいぶ前から、そういう設定になっていて気が付いていなかっただけの可能性は否定できないが。

    450+4.7.1+:+Helo+command+rejected:+Host+not+found 0 0 83 0 733 SMTP - - - -
  • SQL Server 2005でログを消す方法

    SQL Server 2005で、DBのログが肥大化してしまい、バックアップ時に切り捨てるスペースもないときの対処。 この作業手順は、作業対象のDBをオフライン(というかデタッチ)にするので、注意。

    1. SQL Server Management Studioを開き、DBサーバに接続する。
    2. 対象のDBを選び右クリックし、プロパティを開く。
    3. プロパティから、MDFファイルとログファイル(LDFファイル)の場所を調べる。
    4. 対象のDBを選び右クリックし、「タスク」から「デタッチ」を選択する。
    5. ExplorerでLDFファイルの保存場所を開き、該当のログファイル(LDFファイル)を削除する。
    6. SQL Server Management Studioで、データベースを選択し、右クリックし、「アタッチ」を選択する。
    7. 「アタッチするデータベース」で「追加」をクリックする。
    8. 上記で調べたMDFファイルの場所を指定し、該当のMDFファイルを選択し、OKをクリックする
    9. 「データベースの詳細」にログファイルのファイル名が表示されている場合は、これを選択して、削除する。
    10. 「OK」をクリックする
    11. データベースがアタッチされる(ちょっと時間がかかる)。このタイミングで新しいログファイル(LDFファイル)ができる。

    ※ SQL Server 2005のサポートは終了してます。なので、自己責任で。

  • Atom をEmacs風のキーバインドに変えてみる

    Atomを使いやすいようにカーソル移動などをEmacs風のキーバインドに変えてみた。 変えたのは、普段使う、カーソルの上下左右の移動や、行頭・行末移動など。PCを変えたり、初期化するたびに毎回困るので、自分用のメモ。

    キーバインドの変え方は、

    1. [File] -> [keymap…]を開く。
    2. 「keymap.cson」が開くので、そこに以下の内容を追記するだけ。
    '.platform-win32':
      # cursor
      'ctrl-f':'core:move-right'
      'ctrl-b':'core:move-left'
      'ctrl-n':'core:move-down'
      'ctrl-p':'core:move-up'
      'ctrl-h':'core:backspace'
      #'ctrl-g':'core:cancel'
    
      'ctrl-g':'go-to-line:toggle'
    
    '.platform-win32 atom-text-editor':
      # Emacs binds
      'ctrl-e':'editor:move-to-end-of-line'
      'ctrl-a':'editor:move-to-beginning-of-line'
      'ctrl-d':'core:delete'
      'ctrl-o':'editor:newline'
      'ctrl-h':'core:backspace'
      'ctrl-k':'editor:cut-to-end-of-line'
    

    ctrl-gの設定がダブりでエラーになることが分かったので、片方をコメント化した。

    参考:
    http://blog.dksg.jp/2015/06/windows-atom-editormarkdownpreview.html

  • お名前.comのVPSのスナップショットは使い物にならない

    お名前.comのVPSのスナップショットは使い物にならない。

    VPSのスナップショット回数は無制限とは書いてあるが契約しているプランのディスクサイズのうち、50%を超えているとスナップショットの取得ができない。この50%というのがOS上の実利用サイズではなく、VPS側でのカウントで、実際に使用している領域とかなり数値が離れて使用されている。OS上では、25%の使用率なのに対して、VPSのスナップショット画面だと50%を超えている。コンバート機能で圧縮すれば、VPS上の空き領域を作れるとのこと。試してみたが、VPSの稼働中はできないのと、1〜2日もかかるとのこと。まったくもって使いにくい。これじゃ、スナップショット機能があっても、使えない。

    これなら、スナップショットのない「さくらインターネット」のVPSの方がいいじゃないか。IPv6使えるし。

  • PostgreSQLのDBに接続しようとしたら、エラーで接続できない

    ■環境

    Ubuntu Server 18.04.2

    PostgreSQL 10

    ■発生したエラー

    zen@redmine:~$ psql -d redmine -U dbuser -W
    Password for user dbuser:
    psql: FATAL:  Peer authentication failed for user "dbuser"

    ■編集したファイル

    /etc/postgresql/10/main/pg_hba.conf

    ★書き換え前

    # "local" is for Unix domain socket connections only
    local   all             all                                     peer

    ★書き換え後

    # "local" is for Unix domain socket connections only
    local   all             all                                     md5

    ■Postgresqlのサービス再起動

    sudo service postgresql restart

    ■これで成功した!

    zen@redmine:~$ psql -d redmine -U dbuser -W
    Password for user dbuser:
    psql (10.5 (Ubuntu 10.5-0ubuntu0.18.04))
    Type "help" for help.
    
    redmine=>

    ■参考にしたURL

    https://qiita.com/tomlla/items/9fa2feab1b9bd8749584

  • インストールされているUbuntuのバージョンを調べる

    インストールされているUbuntuのバージョンを調べるには、下記のコマンドを実行する

     lsb_release -a

    実際に、Windows Subsystem for LinuxのUbuntuで試してみると、

    zen@PCR662:~$ lsb_release -a
    No LSB modules are available.
    Distributor ID: Ubuntu
    Description:    Ubuntu 18.04.1 LTS
    Release:        18.04
    Codename:       bionic
    zen@PCR662:~$

    と、表示され、Ubuntu 18.04.1 LTS がインストールされていることがわかる。

    ちなみに、「/etc/os-release」を確認しても、Ubuntuのバージョンを調べることができる。

    zen@PCR662:~$ cat /etc/os-release
    NAME="Ubuntu"
    VERSION="18.04.1 LTS (Bionic Beaver)"
    ID=ubuntu
    ID_LIKE=debian
    PRETTY_NAME="Ubuntu 18.04.1 LTS"
    VERSION_ID="18.04"
    HOME_URL="https://www.ubuntu.com/"
    SUPPORT_URL="https://help.ubuntu.com/"
    BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
    PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
    VERSION_CODENAME=bionic
    UBUNTU_CODENAME=bionic
  • Cisco ASA 5512-x のインターフェースでoverrunのカウントが増える

    Cisco ASA 5512-xのインターフェースサマリを見ていたところ、overrunというカウンタがあった。そのカウンタの値が増えていた。

    増えていたのは、input erroroverrunのカウンタで、両方とも同じ値だった。

    エラーカウンタのoverunは、ネットワークインターフェースでパケットが受信されたが、インターフェースFIFOキューにパケットを保存するための使用スペースがなかったときにカウントアップ(階数が増える)する。

    ASAの場合は、Firewallという特性から、パケットの処理に時間がかかり、処理速度以上にパケットが送られてくると、簡単にたまってしまい、あふれる(負荷がかかっているのはCPU)。そうすると、`overrun`のエラーカウンタが増える。

    状況を把握するためには、パケット着信時のCPUの状況(CPU-HOG)を調べるためのコマンドを実行し、状況を確認する。

    コマンド: show proc cpu-hog

    ciscoasa# show interface summary
    Interface GigabitEthernet0/0 "Outside", is up, line protocol is up
      Hardware is i82574L rev00, BW 1000 Mbps, DLY 10 usec
            Auto-Duplex(Full-duplex), Auto-Speed(1000 Mbps)
            Input flow control is unsupported, output flow control is off
            MAC address 6073.5c68.fd67, MTU 1454
            IP address 219.163.xxx.xxx, subnet mask 255.255.255.255
            5961524560 packets input, 6341231636630 bytes, 0 no buffer
            Received 0 broadcasts, 0 runts, 0 giants
            1740 input errors, 0 CRC, 0 frame, 1740 overrun, 0 ignored, 0 abort
            0 pause input, 0 resume input
            0 L2 decode drops
            3655881367 packets output, 1089584429139 bytes, 0 underruns
            0 pause output, 0 resume output
            0 output errors, 0 collisions, 1 interface resets
            0 late collisions, 0 deferred
            0 input reset drops, 0 output reset drops
            input queue (blocks free curr/low): hardware (478/362)
            output queue (blocks free curr/low): hardware (464/346)
      Traffic Statistics for "Outside":
            11921162403 packets input, 12420084859214 bytes
            3655881367 packets output, 1023723468517 bytes
            28612147 packets dropped
          1 minute input rate 318 pkts/sec,  61380 bytes/sec
          1 minute output rate 241 pkts/sec,  97037 bytes/sec
          1 minute drop rate, 0 pkts/sec
          5 minute input rate 616 pkts/sec,  343904 bytes/sec
          5 minute output rate 359 pkts/sec,  104433 bytes/sec
          5 minute drop rate, 0 pkts/sec
    

    FIFOキュー

    FIFO = First In First Out。 つまり、パケットを処理するための普通のキュー。

    参考

    https://www.cisco.com/c/ja_jp/support/docs/security/asa-5500-x-series-next-generation-firewalls/115985-asa-overrun-product-tech-note-00.html