icraft tech blog

    19 Dec 2017

    AngularMaterialDatePickerの表示フォーマットで詰まった話

    仕事でAngular Material Datepicker を使用する機会があり、使用してみたところ
    chromesafari だと 2017/12/16 のように /区切りで表示されるのですが
    IE11 だけ 2017年12月16日 のように年月日で表示される事がわかりました
    ソースコードを読んでみたところ、表示の際に NaitiveDataAdapter クラスの format 関数を呼び出している事が判明したため
    NaitiveDataAdapter を継承した MyDateAdapter を作成し、 format 関数をオーバライドする事にしました

    export class MyDateAdapter extends NativeDateAdapter {
      constructor() {
        super('ja'); // デフォルトだとアメリカ時間になっているので日本にする
        this.setLocale('ja');
      }
      // format関数を上書き
      format(date: Date, displayFormat: Object): string {
        const day = date.getDate();
        const month = date.getMonth() + 1;
        const year = date.getFullYear();
        return year + '/' + ('00' + month).slice(2) + '/' + ('00' + day).slice(2);
      }
    }
    

    その後、format 関数を上書きした MyDateAdapterDateAdapter にインジェクションする事によりIE11でも/区切りで表示されるようになりました

        { provide: DateAdapter, useClass: MyDateAdapter }, // DateAdapterに対してMyDateAdapterのインスタンスを使用するようにする
    

    16 Dec 2017

    Windows 10 をバージョン1709にアップデートしたところ、社内NASにSMBアクセスできなくなった

    現象

    先日、Windows10の端末にFall Creators Update(バージョン1709)を当てた所、 社内のNAS(Terastation)に繋がらなくなった。

    原因

    Microsoftの情報によると、Windows10バージョン1709以降は匿名認証がデフォルトだと無効になったようです。

    ■Microsoft - Guest access in SMB2 disabled by default in Windows 10 Fall Creators Update and Windows Server 2016 version 1709 https://support.microsoft.com/ja-jp/help/4046019/guest-access-smb2-disabled-by-default-in-windows-10-server-2016

    そのため、アクセス制限なしに設定していた社内NASにアクセスできなくなったみたいですね。 これはNASだけでなく、Windowsのファイルサーバ等でも発生します。

    ただ、全てのWindows10のエディションにこの設定がで適用されたわけではなく、 下記のエディションのみ設定されたようです。 (たしかにお隣のWindows10Proの社員はこの現象は起こっていなかった)

    対象OS

    • Windows 10 Enterprise and Windows 10 Education
    • Windows Server 2016 Datacenter and Standard edition

    対処方法

    下記3つの対応が考えられます。 私は案2で対応し、無事SMBアクセスできるようになりました。 (ホントは案3で対応しないといけないのですが、暫定対応ということで・・)

    • 案1 グループポリシーを変更する グループポリシー管理エディタを開き、次の項目を「未構成」から「有効」に変更 コンピュータの構成 > 管理用テンプレート > ネットワーク > Lanmanワークステーション > 安全でないゲストログオンを有効にする

    • 案2 レジストリを変更する レジストリエディタを開き、次の項目を「dword:0」から「dword:1」に変更する。

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters\AllowInsecureGuestAuth ※レジストリを変更時はお気をつけください!

    • 案3 Terastationの設定を変える(=匿名ログオンをやめる) セキュリティ的にはこれ推奨ですが、運用ルールを変えることになるので、気力がある情シス向け。

    09 Nov 2017

    github pageとJekyllでブログ作成

    本サイトは、アイクラフト株式会社のブログ・サイトとして、新たにサイトを作成致しました。 記念すべき最初の投稿では、本サイトの構築内容についてお話したいと思います。

    本サイトを github pagesJekyll の2つのツールを使い、ブログを作りました。 要は、wordpressの静的ジェネレータ版といったところです。 まずは、以下で2つのツールを紹介します。

    github pageとは?

    githubは、ソースコードの管理ツールとして有名ですが、実はgithub pageという便利な機能が備わっています。githubにgithub page用のレポジトリを作成し、html,cssなどのソースを入れておくだけで、ページがインターネット上に公開されます。ざっと、特徴を述べておきます。
    【github pageの特徴】

    • WEBサーバ不要でサイトが作成できる
    • 容量制限が特にない
    • 独自ドメインに変更可能
    • サイトの数は、プロジェクトの数だけ作成できる

    静的ジェネレータのJekyllとの組み合わせ

    jekyllとは、静的サイトジェネレータのことです。 テンプレートテーマが豊富で、マークダウンにも対応しています。 一応、github pageは他のジェネレータとの組み合わせでも構築可能です。

    ですが、github pageで静的なwebサイトを作成するのであれば、Jekyllをオススメします。 Jekyllである場合、自動でビルドしページを更新してくれるので、非常に楽。 ブラウザ上でgithubのレポジトリに直接記事を書き込み、コミットするだけで簡単に更新されます。

    Jekyllの仕組みと静的ジェネレータとしての特徴

    jekyllは、Liquidというテンプレートエンジンが使えます。 標準のタグはサポートされており、jekyllは追加として独自のタグが備わっています。 特に便利なのがincludeタグです。jsでもこのような機能がありますが、jekyllでは標準で使えます。 複数のページの共通部分を、単一のファイルで共有できます。そこに修正が入った場合でも、1ファイルの修正だけで済むので便利です。

    ディレクトリ構成

    root/
    _config.yml----------------------------(設定ファイル)
    index.html-----------------------(最初に読み込むhtml)
    cssscreen.css-------------------------(cssファイル)
    _post (mdで書かれた記事)
    _layoutspage.html----------------------(レイアウト)
    _includes----------------------------(分割されたhtml)
         ├ top.html
         ├ body.html
         └ header.html

    htmlファイルの読み込みの流れ
    index.html→page.html→include内のhtmlのようなかんじで呼び出される。 ページを増やしたいならば、root直下にhtmlを作成し、layoutファイルを指定します。

    記事の作成
    postディレクトリにmdファイルを入れるだけで、自動でページが作成されます。 ただ、記事の上部に以下を記載する必要があります。

    ---
    layout: post
    title: "Welcome to Jekyll!"
    date: 2017-10-04 17:40:35 -0700
    categories: jekyll update
    tags:
    - jekyll
    ---

    レイアウトpost(mdで指定したレイアウトファイル)の本文に{ content }と入れると、そのレイアウトで記事を表示できます。 urlは、上記の日付とタイトルを元に作成される。
    URL : https://アカウント名.hithub.io/posts/2017/11/04/Welcome to Jekyll!

    topページに複数の記事を表示させたいのであれば、以下のように書く。

      {% for post in paginator.posts %}
      <a href="{{ post.url }}">{{ post.title }}></a>
      {% endfor %}
    

    各変数については、Jekyllの公式サイトで確認できます。

    手順

    github pages+jekyllの構築をざっくりとした手順で書いておきます

    1. rubyインストール (githubのwebページでバージョン要件を確認する)
    2. gemでgithub pageインストール
    3. jekyllコマンドでプロジェクト作成
    4. githubでレポジトリ作成
    5. githubにプロジェクトをpush

    具体的な手順は、以下参照
    GitHub Pages の Jekyll で Web サイトを無料公開する方法

    github pagesとJekyllの良い点・悪い点

    良い点

    • マークダウンで楽に記事が書ける(誰でも記事が書ける)
    • 静的ジェネレータで記事を自動生成(管理が楽)
    • 自前でサーバーを必要としない(財布に優しい)
    • 独自ドメインに変更可能

    悪い点

    • DBは使えないので、動的ページは作れません
    • ソースは公開されてしまう
    • 記事数が増えるとビルドに時間がかかる恐れあり


    jekyllは、比較的ビルドに掛かる時間が長いので、ページ編集後にすぐに確認できない。 最近はHexoと呼ばれるジェネレータのビルドが早いらしく、乗り換える人も多いらしいです。

    しかし、jekyllは、構築さえすれば記事をかくだけで、後は手を加える必要がないという最大の魅力があるので、 Jekyllのほうが個人的に良いかと思います。 サーバの再起動もビルドも必要ないので、、、

    私みたいにWEBの知識が無くても、1からページを作成できるこができて、コストもかからないので WEBの勉強を0からしたい人にはうってつけかと思います。


This project is maintained by jekyll