unhurried

コンピュータ関連ネタがほとんど、ときどき趣味も…

MVNOでの転送電話サービス

つい最近DMM mobileにMNPで乗りかえました。が、届いたSIMが翌日に読み取り不良になるという問題が起きました。すぐにSIM再発行をしたものの、到着まで電話を受け取れないのは痛いところです。

調べてみたところ、DMM mobileをはじめMVNO各社も転送電話サービス(通話を他の電話番号に転送する機能)は無料で利用できるところが多いようです。NTTドコモの回線を利用しているMVNOの場合は、2つの方法で設定ができます。

契約している電話番号から設定する。

↓の電話番号に発信します。

  • 1429:各種設定
  • 1421:開始
  • 1420:停止

契約している電話番号以外から設定する

一般電話、docomo携帯電話、公衆電話から設定できます。(IP電話や他社携帯電話からは設定できないので、今回は公衆電話で設定しました。)

  • 090-310-1429:各種設定
  • 090-310-1421:開始
  • 090-310-1420:停止

※ 設定に必要なネットワーク暗唱番号はDMMモバイルの場合、コールセンターで設定できます。

参考

https://www.nttdocomo.co.jp/service/transfer/usage/

なぜ、あなたの仕事は終わらないのか

マイクロソフトの中島聡さんの著書「なぜ、あなたの仕事は終わらないのか」を読みました。

なぜ、あなたの仕事は終わらないのか スピードは最強の武器である

なぜ、あなたの仕事は終わらないのか スピードは最強の武器である

感想

重い仕事はなかなか気分が乗らなくて、午前中の頭の冴えている時間にだらだらと簡単な仕事をしてしまった。
このくらいあれば終わるだろうと、ぎりぎりのタイミングでその仕事に着手した結果、思ったより手こずって結局間に合わなかった。

これらが自分に当てはまるという方におすすめの書籍です。

本書で提案されているのは「仕事を依頼されたときに、見積もりという名目で最初の2割の時間全力で取り組んで、8割を完成させる。」というシステム開発で言うところのプロトタイピングのような仕事の進め方です。

私は仕事の工数見積もりを依頼されたときに、どう計算したものかと悩むことが多いのですが、本書のようにやってみなければわからないと割り切って、まず全力で取り組んでみる、というのは新鮮に感じます。

本書にはその他にも、人生を成功に導くための仕事との付き合い方といった、単なる時間術に留まらないノウハウが、著者の経験の紹介とともに詰め込まれており、とても参考になり、おもしろく読めました。

携帯各社のSIMロック解除対応まとめ

近々に海外へ行く予定があるので、今使っているスマホに海外SIMを差して使えるか調べていました。 ついでにその他キャリアについても調べたので、簡単にまとめてみます。

docomo

au

SoftBank

Y!mobile

angular-datatablesの使い方

angular-datatablesの使い方(導入まで)をまとめました。

依存ライブラリをインストールする。(手動追加する場合)
  • jQuery、DataTables、AngularJS、angular-datatablesをhtmlからリンクする。
  • ソート方向を表すアイコンを表示するためにDataTablesのimageディレクトリもコピーすると良い。(例では lib/dataTables/images に保存している。)
<script src="./lib/jquery/js/jquery.min.js"></script>
<script src="./lib/dataTables/js/jquery.dataTables.min.js"></script>
<link rel="stylesheet" href="./lib/dataTables/css/jquery.dataTables.min.css">
<script src="./lib/angular/js/angular.min.js"></script>
<script src="./lib/angular-datatables/js/angular-datatables.min.js"></script>
<link rel="stylesheet" href="./lib/angular-datatables/css/angular-datatables.min.css">
html:tableタグにディレクティブ(属性)とバインド変数を指定する。
ディレクティブ バインド変数   
datatabales (angular-datatablesを適用する)   
dt-options DataTablesのオプション   
dt-column-defs 行の定義(静的な表に利用する)   
dt-column 行の定義(動的に生成する表に利用する)
<table 
    datatable=""
    dt-options="dtOptions"
    dt-column-defs="dtColumnDefs"
    dt-column="dtColumn"
    class="row-border hover">
    <thead><tr>
        <th>A</th>
        <th>B</th>
    </tr></thead>
    <tr>
        <td>1</td>
        <td>bbb</td>
    </tr>
    <tr>
        <td>2</td>
        <td>aaa</td>
    </tr>
</table>
js:バインド変数に値を設定する。
$scope.dtOptions = DTOptionsBuilder.newOptions();
$scope.dtColumnDefs = [
    // 1列目を数字としてソートする。
    DTColumnDefBuilder.newColumnDef(0).withOption("sType", "num"),
];
$scope.dtColumn = [];

Waltzing With Bears

In this post, I will introduce "Waltzing with Bears" (Tom DeMarco and Timothy Lister) briefly.

Summary

  • Valuable projects always have uncertainty (risks).
  • Derivery date and cost tend to be estimated by summing up only planned tasks at the beginning of a project, so delay and cost overrun often happens.
  • It is necessary to provide the orderer with probability distribution diagram (risk diagram) of derivery date and cost which takes into account possibility and effect of risks.
  • To manage risks, continue following actions during the project.
    • Examination -> Estimation of possibility and effect -> Planning mitigation measures and crisis responses -> Monitoring
  • Incremental development is compatible with risk management because it requires to prioritize components.

Impression

From my previous experiences, derivery date and cost of first planning are not achieved much more than they are achieved. Every time we fail to achieve them, we discuss insufficient or unexpected things, and discuss what is necessary to improve next. However how many times we repeat this cycle, results remains same as before, and these discussions gradually lose substance.

Taking into account risks in a project feels new to me. This is probably because my company often denies having leeway. If we see risks as probability, it would make sense.

What is important is to consider the effect of failing to achieve derivery date or cost. (Whether it would spoil the project or just need apology.) we should take care of risks according to objective of derivery date and cost.

アップグレード版Windows10のクリーンインストール

いくつかのWebサイトで紹介されていたので、情報を整理してみました。

まとめ

参考

The Mythical Man-Month

"The Mythical Man-Month" is a famous book that may be known to any system engineers. I read this book when I was a university student, but I could realize what is written in it when I read it over again after some experience of system development.

Summary

  • In program development "man" and "month" are not commutative because there are works whose order can not be changed, and communication cost.
  • In order to develop an easy-to-use system, the completeness of its concept needs to be ensured by a few system architects.
  • There is no "Silver Bullet" because software is essentially difficult, but the use of commercial products and incremental development are effective strategies.

Impression

Man-Month is adopted to works that is necessary for a project such as writing specs or coding. When it comes to the estimation of cost and duration, it is good to add costs for communication and additional documents to man-month according to the team size.

No one may believe that adding members will shorten the duration, but sometimes meeting a deadline may be necessary at any cost. (These are often because of the time to negotiate with concerned parties than the loss of market opportunity.)

In this situation, we have no choice but to assign another member to order independent and time-consuming works (testing or coding if detailed specs exist) If we can't still achieve the deadline, it is better to start negotiation with concerned parties.

Regarding the completeness of concept, the existence of a few great architects is the key as this book mentions. However these members are hard to find, so it is important to find ones who are young, clever, and motivated early, and to season and develop them.