cmderの"λ"を他の文字に変更する

cmderで"λ"と表示されるのを変えたい場合、以下のファイルで"λ"を検索して置換すればよい。

  • cmder\vendor\git-for-windows\etc\profile.d\git-prompt.sh
    • cmder同梱のgit bashを使う場合はこれだけ修正すればよい
  • cmder\vendor\clink.lua
    • cmderの標準のshellを使う場合はたぶんこれだけ修正すればよい
  • cmder\vendor\profile.ps1
    • PowerShellを使う場合はたぶんこれだけ修正すればよい

Lenovo ThinkPad X1 Carbon 2018のLTEの設定方法

ThinkPad X1 Carbon 2018のLTE (Fibocom L850-GL) は癖があって,単純にAPNを追加するだけで利用しようとすると問題がある。

  • DOCOMO系のMVNOのSIMを使うと,LTEでつながるまでに1時間程度かかる。 PCを再起動したり休止状態にするとまたLTEでつながるまでに1時間程度かかる

  • au系VoLTEのMVNOのSIMを使っていて, Fibocom L850-GL ワイヤレス WAN ドライバーをV0.9.4.61にバージョンアップすると アンテナ強度がずっと圏外になって通信できなくなることがある

私はau系のSIMを使っていて後者の問題が発生したが,5chのX1 Carbonへの書き込みの手順を試したところ正常にLTEで使える状態に戻った。有用なので転載しておく。"spmode.ne.jp"と書かれているところは自分が使用しているSIMのAPN情報を入力すればよい。

※下記手順を試す前にFibocom L850-GLのドライバは最新にしておくこと。

■LTE設定手順(docomo謹製simの場合)

【1】すでにAPNの設定を手動で行っている場合は一度すべて削除する。
1)スタート → 設定 → ネットワークとインターネット
 → 携帯電話 に入り「詳細オプション」をクリック。
2)「インターネットAPN」及び「APNを添付する」下にある設定を、
 ”既定のAPN”を除いてすべて削除。
3) Shiftキーを押しながらシャットダウンを実施。


【2】接続のための設定を再度実施
1)コンピュータを起動
2)WWANの電波をいったんオフにするため、 タスクトレーのネットワークアイコンをクリックし、「携帯ネットワーク」をクリックする。
3)「携帯ネットワーク」がグレーになり、同じメニューの上の方にあるWWANのステータスが「オフ」になる。

【3】Attach APNを設定する。
1)スタート →設定 → ネットワークとインターネット → 携帯電話 に入り「詳細オプション」をクリックする。
2)「APNを追加します」をクリックする
3)「プロファイル名」に適当な名前、「APN」に“spmode.ne.jp”を入れる
4)「APNの種類」に”添付する”を選択する
5)「このプロファイルを適用する」がチェックされていることを確認し、保存する

【4】WWANの電波をオンにする
1)タスクトレーのネットワークアイコンをクリックし、「携帯ネットワーク」をクリックする。
2)「携帯ネットワーク」に色が付く。
3)この時点で、WWANのステータスがLTEを示す。(まだ接続はしていない)

【5】Internet APNを設定する。
1)スタート →設定 → ネットワークとインターネット → 携帯電話 に入り「詳細オプション」をクリックする。
2)「APNを追加します」をクリックする。
3)「プロファイル名」に適当な名前、「APN」に“spmode.ne.jp”を入れる
4)「サインイン情報の種類」に“CHAP”、「APNの種類」に”インターネット”を選択する。
5)「このプロファイルを適用する」がチェックされていることを確認し、保存する。

このあと接続すれば即接続完了します。
windowsで管理で自動接続OK
再起動OK
スリープOK
問題なく繋がります。

なお、その他MVNOは各項目を打ち替えれば可能と思われます。

インターネットとアタッチなんて使わなかったんやー!

DOCOMO系のSIMの問題が解消するかは試していないが,情報の出所がLenovoのサポートらしいのでなおるんじゃないかなと思う。

以上

Lenovo ThinkPad X1 Carbon 2018所感

Lenovo ThinkPad X1 Carbon 2018を購入したので所感を。 全体的には大満足。ただしLTEだけはがっかり品質。

構成

以下の構成で約18万円。 SSDは自分でIntel 760p 512GBに乗せ換え済み。

  • CPU: Core i7-8550U
  • メモリ: 16GB
  • OS: Win10 Pro
  • ディスプレイ: FHD 非光沢 タッチなし
  • LTE: 追加

納期

米沢モデルを注文。中国モデルより米沢モデルの方が納期が早い。

  • 到着予定: 9日
  • 到着: 7日

到着予定より2日早く到着した。

キーボード

打ちやすい,すばらしい。端の方のキーが細長くなっていたりしない。入力中にたわんだりすることもない。 ただしデスクトップPCでもThinkPad Bluetooth ワイヤレス・トラックポイント・キーボードを使っているのでひいき気味。

トラックポイント

すばらしい。マウスがなくてもなんとかなる。 ただしデスクトップPCでもThinkPad Bluetooth ワイヤレス・トラックポイント・キーボードを使っているのでひいき気味。

タッチパッドはdisabledにしているので使用感はわからない。

バッテリー

90%まで充電するように設定して使用。 WebブラウザやKindleを見たり,軽くメモやメールを書く程度なら一日中持ちそうな感じ。

ディスプレイ

質感がよくずっと見ていても大丈夫。 ぎらつきは全くなく,見やすい。視野角も広い。 発色は気にしていないのでわからない。

LTE

最低。 DOCOMO系のSIMは使い物にならない。 このためにau系のVoLTE SIMに変えた。

性能

快適。EclipseやDockerを少し使うくらいなら問題ない。

CPU負荷をかけるとすぐファンが回る感じはする。ややうるさい。

サイズ・重さ

画面サイズと持ち運びやすさのバランスが自分的にはちょうどよい。 マンハッタン・パッセージ #8560 LUX2 ブリーフケースのPC収納ポケットにちょうど入る。 重さは約1.13kg。

指紋認証

指紋認証だがとても便利。 指の腹を1秒くらい押し当てる感じ。

以上

Microservices Architecture(MSA)のメモ

MSA実現に向けてのメモ。随時更新。

  • ねらい
    • ビジネス環境の変化にすばやく対応
    • 技術の進歩にすばやく対応
    • 耐障害性,スケーラビリティ,デプロイ容易性
  • 懸念
    • パフォーマンス
      • スケーラビリティはあるがそもそも高レイテンシになりそう。
    • データ整合性
    • テスト
      • 非同期なMS群の協調動作の再現が大変そう。
    • 運用管理
      • 管理対象が増えて監視とか大変そう。
    • 障害対応
      • どこで何が起きたのかを把握するのが大変そう。
  • システム全体
    • 設計
      • コンテキストマップ
        • Bounded Context
          • Core Domain,Generic Subdomain
        • 組織パターン
          • パートナーシップ,別々の道,順応者,顧客/供給者
        • 統合パターン
          • 共有カーネル,公開ホストサービス(OHS),公表された言語(PL),腐敗防止層(ACL)
    • 運用環境
      • Kubernetes
      • Docker + Harbor
      • Ansible
      • fluentd
      • Zipkin
    • エンドツーエンドテスト
      • ???
  • Microservices統合
  • Microservice開発
    • 設計
      • PoEAA
      • オニオンアーキテクチャ
      • CQRS
        • コマンドとクエリの分割 => Write DBとRead DBの分割
      • イベントソーシング
        • 更新イベントをデータストアに格納
        • ドメインモデルは入力値を検証して更新イベントを発生させる
        • ラムダアーキテクチャ
          • イベントソーシングのリアルタイム性確保
        • とりあえずはステートソーシングのままでいい?
      • ドメインモデル
        • Entity,Value Object,Aggregate,Aggregate Root,Service,Module,Repository,Specification
        • ドメインイベント
          • event storeにためてcommit時にdispatch
      • 他MSのデータ取得
        • REST + ドメインイベント => キャッシュ
          • 適当なタイミングでポーリングしてもいい
      • セッション共有・レプリケーション
        • Spring Session/Redis
    • 実装
    • 単体テスト
      • JUnit,Mockito,AssertJ
        • push時に実行して失敗したらGithubのmergeをブロックしたい
      • Fixture Factory
    • 結合テスト
      • Spring Test,DbSetup
    • サービステスト
      • ???
    • data store
    • 開発環境
    • デプロイ
      • Jenkins,Travis CI
      • 無停止デプロイ
        • グレースフルシャットダウン

以上

staticファクトリメソッド

インスタンスを返すstaticメソッド。 String.valueOf()LocalDate.of()など。

メリット

コンストラクタと比較したメリット。

  • どういうインスタンスを生成するのかがわかりやすい名前を付けられる。 LocalDate.now()とかLocalDate.of(2018, 6, 20)とか
  • 実際にインスタンスを生成せずにキャッシュを返せる
  • 戻り値の型のサブタイプのオブジェクトを返せる

デメリット

コンストラクタと比較したデメリット。

  • publicまたはprotectedなコンストラクタを持たないクラスのサブクラスでは作れない
  • 目立たない。ただのjavadocなどでstaticメソッドとすぐに見分けがつかない

以上

Ubuntu 16.04でGitBucketインストール+ssh接続

Ubuntu 16.04の比較的初期状態からGitBucketをインストールしてsshでgit cloneとかできるようにするまで。

インストール

Oracle Java SE 8をインストール。

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer

Tomcat8をインストール。

sudo apt-get install tomcat8

GitBucketをダウンロードしてデプロイ。 URL中の3.13のところは最新バージョンに適宜変更。

curl -L -O https://github.com/gitbucket/gitbucket/releases/download/3.13/gitbucket.war
sudo cp ./gitbucket.war /var/lib/tomcat8/webapps/
sudo mkdir /usr/share/tomcat8/.gitbucket
sudo chown tomcat8:tomcat8 /usr/share/tomcat8/.gitbucket

Tomcat8を再起動。

systemctl restart tomcat8

起動確認。

ブラウザでhttp://localhost:8080/gitbucket/にアクセス。

f:id:mochalog:20160418175832p:plain

ssh接続用設定

gitをsshでつなげるようにする。 事前に適当なユーザとリポジトリが作成済みであるものとする。

まずシステムの設定。

  • root/rootでGitBucketにログイン
  • [System administration]>[System Settings]を選択
  • [Base URL]を設定。"http://localhost:8080/gitbucket"など
  • [Enable SSH access to git repository]にチェック
  • [SSH Host]を設定。"localhost"など
  • [Apply changes]ボタンを押下

ユーザの設定。

  • rootアカウントからサインアウトして、開発ユーザでサインイン
  • [Account settings]>[SSH Keys]を選択
  • 公開鍵を登録。苦労したくなければ~/.ssh/id_rsaに対応する公開鍵で
  • リポジトリのページをブラウザで表示
  • clone用のURLが書いてあるのでそれをコピー
    • http用のURLが表示されている場合は、[HTTP]と書いてあるドロップダウンリストで[SSH]を選択
  • git clone <コピーしたURL>

以上

フォルダ右クリックからmintty起動

Windowsでフォルダを右クリックして、そのフォルダをカレントにしたminttyを起動する方法。

mintty (cygwin版)をインストール

手順省略。

batファイルを作成

CHERE_INVOKING=yがミソ。 mintty_chere_invoking.batという名前で作ったものとする。

@echo off
set CHERE_INVOKING=y
cd %1
start C:\opt\Cygwin64\bin\mintty.exe -

レジストリキーを追加

パスは適宜修正。

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\shell\mintty]
@="Mintty(&M)"

[HKEY_CLASSES_ROOT\Directory\shell\mintty\command]
@="D:\\path\\to\\mintty_chere_invoking.bat \"%V\""

SQL Server LocalDB使用ソリューションのVS2012からVS2015への移行

Web.configの接続文字列のv11.0という箇所をMSSQLLocalDBにすれば動く。 SQL Server 2014で仕様が変わったっぽい。

    <connectionStrings>
        <add name="HelloAspAngular" connectionString="Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=以下省略" />
    </connectionStrings>

あとEntityFrameworkを使っている場合は、同じくWeb.xmlなどの以下の箇所もたぶん変更が必要。

    <entityFramework>
        <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
            <parameters>
                <parameter value="MSSQLLocalDB" />
            </parameters>
        </defaultConnectionFactory>
        <!-- 省略 -->
    </entityFramework>