最弱エンジニアの付箋紙

システム開発に関して勉強になったことを書きためて、なんとなく身につけるための心のメモ。

Windows Updateが進まない(Win8.1)

OS:Windows 8.1です。
ロック画面の左下に、こんなメッセージが。

重要な更新プログラムがあります。PCの設定を開いて、更新プログラムをインストールしてください

Windows Update をしても
 「インストールの準備をしています…」
というメッセージが表示されたままです。
プログレスバーは緑色の棒が左から右へ流れるばかり。。

Alt+F4でいつもシャットダウンして再起動しても、ロック画面のメッセージは健在。

どうすればいいのかわからないけど、以下の手順で再起動したら直った。
※直った=Windows Update で更新対象のプログラム数が表示された

Windows8.1完全シャットダウン

「 チャーム 」>「 設定 」>「 PC 設定の変更 」>「 保守と管理 」>
 「 回復 」>「 今すぐ再起動する 」>パソコンが再起動します>
  「 オプションの選択 」>「 PC の電源を切る 」
    からの、電源ON。

よかったよかった。

ここを見て解決しました

macのキーボードでバックスラッシュ "\" が見当たらなかった

背景

php の超初級の学習をしていて改行(\n)を入力しようとしたら、
キーボードのどこを見てもバックスラッシュ "\" が見当たらない!

ググったらQiitaの方が書いてくれてた。ありがたや。

Macにおけるバックスラッシュ(\)の入力方法

optionキーを押しながら、¥キーを押す

仕事はWindowsなので、optionキーを使うのがどうしても慣れない(甘え)

俺の Thunderbird のアドオンを晒す(10選)

おつかれさまです。シマチューです。
今日は、私のThunderbirdで利用しているアドオンを淡々とご紹介します。

Thunderbirdとは

Thunderbirdとは、Mozilla Foundationが開発・公開している、オープンソースの電子メールソフト。
IT用語辞典
インストールはこちら

メーラーです。
さまざまな追加機能が開発され、とても便利です。
私は仕事では正直手放せません

アドオンとは

アドオンとは、Thunderbird に新しい機能を追加したり外観を変えたりする拡張機能
他の追加プログラムのことです。Thunderbird はオープンで拡張可能なデザインと
プログラム構造を持っているため、誰でも Thunderbird の "アドオン" を作ることができます。
FAQ - アドオンについて

Thunderbirdはインストール直後でもそれなりに使いやすいメーラーですが、
アドオンをインストールすることで以下のことができます。

  • 仕事のミスを減らす
  • 効率よくメールを作成する
  • 送信元のメーラーを知る(どうでもいい)

アドオンを気軽に作れるみたいですが、私はもっぱら機能を探して使う派です。

俺のアドオン10選

※インストールはThunderbirdから検索して行えます

Address Close Button

送信先に設定しているメアドをワンクリックで削除する[X]ボタンを表示します。
これが無いと、送信先を変更する際はわざわざDeleteキーなどで文字列を消す必要があります。
(これが微妙にめんどい)

Check and Send

メール送信時に、送信先の設定内容を確認するダイアログを表示します。
様々な確認ができますが、私は

  1. TO/CC/BCCの設定
  2. 添付されているファイル

の確認に使っています。
特に「2.」は添付ファイルの誤りや添付忘れが激減しました。
(過去にそういうヒヤリハットがありました)

Confirm-Address

メール送信時に、送信先アドレスのドメインを確認するダイアログを表示します。
予め【組織内】として扱うドメインを設定しておき(複数可)、
確認ダイアログでは【組織"内"】【組織"外"】の宛先を別々の一覧で表示します。
これによって 「おっと、社内メールをうっかり社外に送っちまったぜ」 な事故を
防ぐことができます。もちろん【組織内】に自社のドメインを設定します。
これほんとすごい。社外に誤送信する気がしない。
事故っても社内でよかった危ない危ないで済ませるツールです。

Display Mail User Agent

受信したメールのメーラーの種類を表示する機能です。
効率化としての効果はほとんど期待できないですが、

「やっぱりOutlookは多いなあ」  
「Thunderbird使っている人はお友達」  
「Operaメールって、あったんやな・・・。」  

くらいの情報から効率化まで考えられる人材になりたいですね。(適当)

FoxClocks

Thunderbird のウィンドウ内(メニューバーかステータスバー)に時計を表示します。
私はデュアルディスプレイでサブにThunderbirdを置くことがあるので、
「そっちでも時計が見られればいいなあ」程度で追加しておきました。

Identity Chooser

送信元アドレスを複数持っている人向きですが、
送信元に設定しているアドレス毎に、表示色を切り替える機能です。
連絡先でメアドを使い分けている方はおすすめです。

Lightning

Thunderbirdでカレンダーを表示 および ToDo の機能を追加します。
どうしてこれを入れるかは次のアドオンへ。

Provider for Google Calendar

Lightning に Googleカレンダー と同期する機能を追加します。
同期したカレンダーの予定/ToDoの追加、編集ができるようになります。
私は予定の入力はWebのGoogleカレンダーのほうが慣れているので、
Googleカレンダーの予定を Thunderbird の受信メール画面内に表示して
リマインダーのような効果を期待しています。

Quicktext

複数のパターンの定型文を登録しておける機能です。
お客様からの問合わせの回答や、作業報告の作文を効率よくできます。

Remove Duplicate Messages

重複したメールを削除する機能を追加します。
重複条件をカスタマイズでき、私は以下の値が同じメールを重複メールとしています。

  • 送信者
  • MessageID
  • 送信日時
  • 件名

まとめ

Thunderbird大好き!

以上、よろしくお願いいたします。

Git 初心者に向けた概要をまとめてみた

Gitを使う上で押さえておきたいところをまとめてみました
(自分含め初心者向けのメモ)

Gitとは

資産管理ツールです。 成果物を版数管理するツール
様々な要望や検討が伴うお仕事では、並行した検討にもかかわらず
同一の資料やソースコードに手を入れたいことがしばしば。
するとファイルをコピーして一時的に手を入れる、ということも。
すると・・・

  • 「この資料、どれが最新なんだっけ」
  • 「この対応、実はなかったことに。。」
  • 「君の修正、上書きして消しちゃった!」

なんてことになりかねません。
それを解決するのが資産管理ツールです。

資産管理ツールを使うことで、成果物を一か所に集めて最新の  
ファイルを格納/編集するルールを適用する。

SVNとの違い

成果物を共有する格納場所

1つの格納領域(リポジトリ)に

  1. ひとつだけの格納場所 か
  2. 複数の格納場所 か

SVN…「1.」のみ
Git…「1.」「2.」両方OK

ただしGitは自由度が高いので、
「1.」のように使うか、「2.」のように使うか のルールが必要です。
Gitは複数の成果物格納場所とつながっている(イメージ的表現)ので、
「いま○○の成果物格納場所をみてる」という状態があります。
※「作業ブランチは○○」と表現する

編集の統合(マージ)

マージがし易ければ、複数人での同時開発が捗ります。
 先輩「あ、あれまだ終わってないからまだ着手しちゃダメよ」
 ぼく「ひま」
というのが減ります。

SVN…マージめんどい。
Git…マージ賢い。早い。

Gitだと、同ファイルを編集しても、編集箇所がある程度離れていれば
自動的に高速にマージができます。
SVNだと自動的にマージされず、ファイル単位で手動でマージが必要

覚えておきたい操作

  • git fetch
サーバーのリポジトリ情報を取得する。  
※これやらないと共有した資産に対して手が出せない
  • git branch '[ブランチ名]'
現作業ブランチを元に[ブランチ名]を作成する。
※基本的に、編集中のファイルは無い状態で行う
  • git checkout '[ブランチ名]'
作業ブランチを指定したブランチに変更する。
※基本的に、編集中のファイルは無い状態で行う
  • git status
作業ブランチの編集中ファイルの状態を確認
  • git commit
作業ブランチの変更を、保存する。
※Gitはこの「保存した変更」単位で差分を比較、集約(マージ)する
  • git push origin '[ブランチ名]'
ブランチの変更をサーバーのリポジトリ上に公開する。
※これで変更点をみんなが確認できます。(fetchしてね)
  • git merge origin/[ブランチ名]
作業ブランチに対し、[ブランチ名]との差分をマージする。  
※同ファイル、同行くらいの差がある場合はコンフリクトするので  
 編集→commit→push が必要。
  • git pull
git fetch、(作業ブランチに対する)git merge を行う。
  • git stash
編集中のファイルを、一時的に退避する。
  • git stash pop
退避した編集を反映する。
  • git cherry-pick [コミットID]
作業ブランチに、指定したコミットIDの編集およびコミットを適用する。

(個人的には cherry-pick のすばらしさに感動して Git が好きになりました)

jUnitでprivateメソッドをテスト

ここを参考に。

http://qiita.com/village/items/2f0d99b25eef0c8fd4ec

Method method = [テスト対象メソッドのクラス名].class.getDeclaredMethod("methName", [引数の型1].class, [引数の型2].class, …);
method.setAccessible(true);
method.invoke([メソッドを実行するインスタンス], [引数1], [引数2], …);

setAccessible で private メソッドも実行できるとか、スコープの意味がゲフゲフ

jQuery#slideUp メソッドの動き方ではまった

ある table があったとして、こんな書き方をしていた。

$('div.cells').slideUp("fast", function(){
    $('div.wholeTable').slideDown();
});

$('div.cells') が table 内のセル一つ一つの要素
$('div.wholeTable') が table 全体の要素 とします。

パフォーマンスがすごい悪かった。 以下の勘違いをしていたみたいです。

こう動くだろうと勘違いしていた

  • $('div.cells') のすべてが slideUp した後に $('div.wholeTable') が slideDown

本当はこんな動きをする

  • $('div.cells') の要素ひとつずつ slideUp するたびに $('div.wholeTable') が slideDown

結論

$('div.wholeTable') が slideDown する処理が冗長だった

git push したら warning: push.default is unset って怒られた

標題の通りですが、こんなにガミガミと怒られました。

$ git push origin/sample
warning: push.default is unset; its implicit value is changing in
Git 2.0 from 'matching' to 'simple'. To squelch this message
and maintain the current behavior after the default changes, use:

  git config --global push.default matching

To squelch this message and adopt the new behavior now, use:

  git config --global push.default simple

See 'git help config' and search for 'push.default' for further information.
(the 'simple' mode was introduced in Git 1.7.11. Use the similar mode
'current' instead of 'simple' if you sometimes use older versions of Git)

ここ を見て解決しましたが、要は push の引数を間違えていた模様。。

リモートリポジトリ名/ブランチ名  

ではなく

リモートリポジトリ名 ブランチ名  

という、2つの引数を与えてあげる必要がありますよね、そうですよね。