エンジニアかるた -目次ー
エンジニアかるた
目次
あ | あ | |
い | ||
う | ||
え | ||
お | ||
か | か | |
き | ||
く | ||
け | ||
こ | ||
さ | さ | |
し | ||
す | スローガン 100回言うより 具体策 | |
せ | ||
そ | ||
た | た | |
ち | ||
つ | ||
て | ||
と | ||
な | な | |
に | ||
ぬ | ||
ね | ||
の | ||
は | は | |
ひ | ||
ふ | ||
へ | ||
ほ | ||
ま | ま | |
み | ||
む | ||
め | ||
も | ||
や | や | |
ゆ | ||
よ | ||
ら | ら | |
り | ||
る | ||
れ | ||
ろ | ||
わ | わ |
エンジニアかるた -企画-
★SEの残業しない仕事術★ブログ:キーフレーズをたくさん持つ で刺激を受け、
自分なりのフレーズを持ちたいと思った。
キーフレーズ集。 どうせ作るなら、ゲーム要素も加えて、「かるた」にしよう。
で、要求仕様書を書いてみる。
要求 | CARD01 | エンジニアかるたを考える | |
理由 | 必要なメソッドを忘れないようにしたい。 チームで仕事をしているときに気楽に言い合えるようなものしたい。 |
||
説明 | |||
□ | CARD01.01 | エンジニアに必要な習慣など、メソッドをフレーズにする。 | |
□ | CARD01.02 | 「あ」~「わ」まで、44文字を頭文字につかう 「を」、「ん」は使わない |
|
□ | CARD01.03 | 5、7、5調の川柳のスタイルにする | |
□ | CARD01.04 | フレーズと補足を記事にする | |
□ | CARD01.05 | 頭文字が重複してもかまわずに、思いついたフレーズを記事にする。 |
実行しながら、様子をみる。
■トラックバック
パフォーマンス・マネジメント―問題解決のための行動分析学
「なか見!検索」で、一章の半分ぐらい見ることができた。
部下にうまく仕事をさせるための手法として、
チェックリストがあげられた。
ただ、それだけか? と思う。
確かに有効な手段だとは思うが・・・。 それだけか?
ここで、いうチェックリストは、単に
・仕事の項目
・提出期限
があげられているだけでなく、
・仕事を進める際の細かな注文
が付け足されたものだ。
まるで、要求仕様書ではないか!
興味が沸いてきた。
また、提出する前に
・仕事が完了したか、チェックリストで確認すること
・上司も同じチェックリストを使い仕事をする
が大事だという。
「上司も同じチェックリストを使う」には、おもわず拍手である。
やはりこれが、足りなかったのだと思うことを経験していたからである。
上司も同じ様に仕事をしているのを見て、
部下は
・手を抜けない
・仕事をやらされているのではなく参加している
と思うのだろう。
部下は、良くも悪くも「上司の背中を見て」仕事をしているものだと思う。(無意識に)
なかには、例外はあると思うが・・・。
他には、どんな手法があるのか、すごく興味が沸いて購入した。
行動を変えようとしても、
・注意では人は動かない、変わらない。
・理想を掲げても人は動かない。
・意思だけでは行動を制御できない。
行動を変えるには、
・分析(ABC分析)
・原理に沿った手段を用いて管理
が、必要だ。
自分自身を思うように制御するためにも役立ちそうだ。
トレーニング・サポート・ツール -仕様を記述-
仕様を記述した。
要求 | TRNG01 | トレーニングの履歴を残す | |
理由 | トレーニングの履歴を簡単に残したい。 履歴を残すことでヤル気を維持したい。 |
||
説明 | |||
要求 | TRNG01_01 | 実行した日時、トレーニングの時間を記録する | |
理由 | 何月何日、何時にそのトレーニングを行ったか記録したい | ||
説明 | |||
□ | TRNG | A列にトレーニングの開始日時、時間を記録する | |
□ | TRNG | B列にトレーニングの終了日時、時間を記録する | |
要求 | TRNG01_02 | トレーニングの総合時間を記録 | |
理由 | 時間の蓄積が履歴に残ると、ああっ、これだけの時間トレーニングしたんだなと自信、継続の動機になる | ||
説明 | |||
□ | TRNG | データとして取った後、集計する。 | |
要求 | TRNG01_03 | Excelのシート上にデータを記録する | |
理由 | データのグラフ化などの加工に慣れているから | ||
説明 | |||
□ | TRNG | Excelのマクロでプログラム化する | |
□ | TRNG | マクロ起動時にダイアログを表示し、以降トレーニング中は、ダイアログ上で操作を行う | |
□ | TRNG | データを記録するシートを選択、新規作成する | |
要求 | TRNG01_04 | コメントを残す | |
理由 | トレーニングの日記的なものとして使いたい。 | ||
説明 | |||
□ | TRNG | ダイアログ上にコメントを入力する欄を設ける | |
□ | TRNG | トレーニング終了時にコメントをシートに記録する | |
□ | TRNG | C列にコメントを記録する | |
要求 | TRNG01 | トレーニングの時間を管理する | |
理由 | 時間の管理を時計を使った面倒なものから、あらかじめ設定したもので簡単に実行できるようにしたい。 | ||
説明 | |||
要求 | TRNG02_01 | 一定時間行うトレーニングを管理 | |
理由 | トレーニング中に時間の計算とかしなくて済むように後何分か分かり、規定時間が済んだか簡単に分かるようにしたい | ||
説明 | |||
□ | TRNG | 時間を設定する | |
□ | TRNG | 入力範囲は1秒~10時間 | |
□ | TRNG | 入力形式は、[hh:mm:ss] | |
□ | TRNG | 開始ボタンを設ける | |
□ | TRNG | 経過時間を表示する | |
□ | TRNG | 残り時間を表示する | |
□ | TRNG | 途中終了ボタンを設ける | |
□ | TRNG | 設定した時間をトレーニング時間として記録する | |
□ | TRNG | 途中終了した場合は、それまでに経過した時間をトレーニング時間として記録する | |
要求 | TRNG02_02 | 一定時間内に何回行えるかを管理 | |
理由 | ある動作が、回を重ねる毎に速く出来るようになる様子を観察したい | ||
説明 | |||
□ | TRNG | 時間を設定する | |
□ | TRNG | 入力範囲は1秒~10時間 | |
□ | TRNG | 入力形式は、[hh:mm:ss] | |
□ | TRNG | 開始ボタンを設ける | |
□ | TRNG | 経過時間を表示する | |
□ | TRNG | 残り時間を表示する | |
□ | TRNG | 1回終了ボタンを設ける | |
□ | TRNG | 各回毎の経過時間を表示する | |
□ | TRNG | 平均時間を表示する | |
□ | TRNG | 途中終了ボタンを設ける | |
要求 | TRNG02_03 | トレーニングのタイプをプログラム可能 | |
理由 | 様々なトレーニングに対応したい | ||
説明 | |||
□ | TRNG | プログラム用のシートを設ける。 | |
□ | TRNG | シート名をプログラム名とする | |
□ | TRNG | A列をトレーニングの項目名とする | |
□ | TRNG | B列をトレーニングのタイプとする | |
□ | TRNG | C列を無条件に開始するか、ダイアログを表示するかの切替えフラグとする | |
□ | TRNG | D列以降をB列で設定したタイプのプロパティとする |
後で、見直す。
トレーニング・サポート・ツール -要求の作成-
中国語の習得 のトレーニングを記録するツールが欲しくなった。
どんな機能が欲しいのか要求の作成をした。
要求 | TRNG01 | トレーニングの履歴を残す | |
理由 | トレーニングの履歴を簡単に残したい。 履歴を残すことでヤル気を維持したい。 |
||
説明 | |||
要求 | TRNG01_01 | 実行した日時、トレーニングの時間を記録する | |
理由 | 何月何日、何時にそのトレーニングを行ったか記録したい | ||
説明 | |||
要求 | TRNG01_02 | トレーニングの総合時間を記録 | |
理由 | 時間の蓄積が履歴に残ると、ああっ、これだけの時間トレーニングしたんだなと自信、継続の動機になる | ||
説明 | |||
要求 | TRNG01_03 | Excelのシート上にデータを記録する | |
理由 | データのグラフ化などの加工に慣れているから | ||
説明 | |||
要求 | TRNG01_04 | コメントを残す | |
理由 | トレーニングの日記的なものとして使いたい。 | ||
説明 | |||
要求 | TRNG01 | トレーニングの時間を管理する | |
理由 | 時間の管理を時計を使った面倒なものから、あらかじめ設定したもので簡単に実行できるようにしたい。 | ||
説明 | |||
要求 | TRNG02_01 | 一定時間行うトレーニングを管理 | |
理由 | トレーニング中に時間の計算とかしなくて済むように後何分か分かり、規定時間が済んだか簡単に分かるようにしたい | ||
説明 | |||
要求 | TRNG02_02 | 一定時間内に何回行えるかを管理 | |
理由 | ある動作が、回を重ねる毎に速く出来るようになる様子を観察したい | ||
説明 | |||
要求 | TRNG02_03 | トレーニングのタイプをプログラム可能 | |
理由 | 様々なトレーニングに対応したい | ||
説明 |
これに対する仕様は、また後で・・・。続き
要求仕様書の表示方法 -マクロのコード-
要求仕様書の表示方法 -その5- のマクロは、以下の通り
Dim strFileName As String ' OPENするファイル名(フルパス)
Sub HTMLforSpex_31()
'------------------------------------------------------
' 選択範囲が複数あるか確認する
'
If Selection.Areas.Count > 1 Then
MsgBox ("選択範囲は1つだけにしてください。")
Exit Sub
End If
'------------------------------------------------------
' ファイル名の入力
'
If SetFileName() = False Then
Exit Sub
End If
'------------------------------------------------------
' ファイル番号の取得
'
Dim intFF As Integer ' FreeFile値
intFF = FreeFile
Open strFileName For Output As #intFF
'------------------------------------------------------
' HTMLの先頭部分を出力
'
OutBeginHTML intFF
Dim iRow As Integer
Dim iCol As Integer
Dim iRowStart As Integer
Dim iRowEnd As Integer
Dim iColStart As Integer
Dim iColEnd As Integer
Dim theSheet As Worksheet
'------------------------------------------------------
'縦横の開始、終了位置を取得
'
Dim theCell As Range
Set theSheet = ActiveSheet
iRowStart = Selection.Areas(1).Row
iRowEnd = iRowStart + Selection.Areas(1).Rows.Count - 1
iColStart = Selection.Areas(1).Column
iColEnd = iColStart + Selection.Areas(1).Columns.Count - 1
'------------------------------------------------------
'個別の幅、全体の幅を取得
'
Dim iColWidth() As Integer
ReDim iColWidth(Selection.Areas(1).Columns.Count)
Dim iWidth As Integer
Dim i
iWidth = 0
i = 0
For iCol = iColStart To iColEnd
Set theCell = theSheet.Cells(iRowStart, iCol)
iWidth = iWidth + theCell.Width
iColWidth(i) = theCell.Width
i = i + 1
Next
'------------------------------------------------------
'テーブルタグと個別の幅を設定するCOLタグを出力
'
Dim strTable As String
strTable = "<table cellspacing=0 class=xl_table " + _
"style='border-collapse:collapse;table-layout:fixed;" + _
"width:" + Str(iWidth) + "pt;' >"
Print #intFF, strTable
For i = 0 To Selection.Areas(1).Columns.Count - 1
Print #intFF, "<col style='width:" + Str(iColWidth(i)) + "pt' >"
Next
'------------------------------------------------------
' セル全体を2重ループで回す
'
For iRow = iRowStart To iRowEnd
For iCol = iColStart To iColEnd
'----------------------------------------------
'個別にセルを取得
Set theCell = theSheet.Cells(iRow, iCol)
'----------------------------------------------
'
'
If iCol = iColStart Then
'out tr
Print #intFF, "<tr>"
End If
'----------------------------------------------
'セル毎に TD タグの出力
' セルの連結、罫線の位置、背景色を反映する
'
If theCell.MergeCells Then
'--- セルが結合されていた際の処理 ---
iCol = iCol + theCell.MergeArea.Count - 1
Print #intFF, "<td colspan=" + Format(theCell.MergeArea.Count) + _
" class=xl_cell" + _
Format(GetLineOr(theSheet, iRow, iCol, theCell.MergeArea.Count), "00") + _
" style='" + GetBackGround(theCell) + "'> "
Else
Print #intFF, "<td class=xl_cell" + Format(GetBorderStyle(theCell), "00") + _
" style='" + GetBackGround(theCell) + "'> "
End If
'----------------------------------------------
' セルの内容を出力
' HTML用に変換して出力
'
Print #intFF, GetCellValue(theCell)
'----------------------------------------------
' タグの終了
'
Print #intFF, "</td>"
If iCol = iColEnd Then
'out /tr
Print #intFF, "</tr>"
End If
Next
Next
'------------------------------------------------------
'テーブル、HTMLの終了
'
Print #intFF, "</table>"
OutEndHTML intFF
Close #intFF
End Sub
'==========================================================
'ダイアログを表示してファイル名を入力
'
Private Function SetFileName() As Boolean
Const cnsTITLE = "HTMLファイル出力処理"
Const cnsFILTER = "HTMLファイル (*.htm;*.html),*.htm;*.html"
Dim xlAPP As Application ' Applicationオブジェクト
Dim blnRes As Boolean
' Applicationオブジェクト取得
Set xlAPP = Application
' 「名前を付けて保存」のフォームでファイル名の指定を受ける
strFileName = xlAPP.GetSaveAsFilename(InitialFileName:="SAMPLE.html", _
FileFilter:=cnsFILTER, Title:=cnsTITLE)
' キャンセルされた場合は以降の処理は行なわない
blnRes = True
If StrConv(strFileName, vbUpperCase) = "FALSE" Then
blnRes = False
End If
SetFileName = blnRes
End Function
'==========================================================
'セルの内容を取得する
' HTML用に変換
'
Private Function GetCellValue(theCell As Range) As String
If theCell.Value = "" Then
GetCellValue = " "
Exit Function
End If
Dim strRes As String
Dim strChar As String
Dim iLen As Integer
Dim i As Integer
strRes = ""
iLen = Len(theCell.Value)
For i = 1 To iLen
strChar = Mid(theCell.Value, i, 1)
Select Case Asc(strChar)
Case Asc("<")
strRes = strRes + "<"
Case Asc(">")
strRes = strRes + ">"
Case Asc("&")
strRes = strRes + "&"
Case Asc(" ")
strRes = strRes + " "
Case &HD, &HA
strRes = strRes + "<br>"
Case Else
strRes = strRes + strChar
End Select
Next
GetCellValue = strRes
End Function
'==========================================================
'罫線の有り無しを数値に変換
' HTML用に変換
'
Private Function GetBorderStyle(theCell As Range) As Integer
Dim intBorderStyle As Integer
If theCell.Borders(xlEdgeTop).LineStyle = 1 Then
intBorderStyle = 1
Else
intBorderStyle = 0
End If
If theCell.Borders(xlEdgeRight).LineStyle = 1 Then
intBorderStyle = intBorderStyle + 2
End If
If theCell.Borders(xlEdgeBottom).LineStyle = 1 Then
intBorderStyle = intBorderStyle + 4
End If
If theCell.Borders(xlEdgeLeft).LineStyle = 1 Then
intBorderStyle = intBorderStyle + 8
End If
GetBorderStyle = intBorderStyle
End Function
'==========================================================
'HTMLの先頭部分をファイルに出力
'
Private Sub OutBeginHTML(intFF As Integer)
Print #intFF, "<html>"
Print #intFF, "<head>"
Print #intFF, "<style>"
Print #intFF, "<!--table"
OutStyle intFF
Print #intFF, "-->"
Print #intFF, "</style>"
Print #intFF, "</head>"
Print #intFF, "<body>"
End Sub
'==========================================================
'HTMLの終了部分をファイルに出力
'
Private Sub OutEndHTML(intFF As Integer)
Print #intFF, "</body>"
Print #intFF, "</html>"
End Sub
'==========================================================
'スタイルシート部分をファイルに出力
'
Private Sub OutStyle(intFF As Integer)
'------------------------------------------------------
'テーブル用のスタイルを定義
'
Print #intFF, ".xl_table" + vbCr + vbLf + "{" + vbCr + vbLf
Print #intFF, "padding-top:1px;" + vbCr + vbLf + _
"padding-right:1px;" + vbCr + vbLf + _
"padding-left:1px;" + vbCr + vbLf + _
"color:windowtext;" + vbCr + vbLf + _
"font-size:9.0pt;" + vbCr + vbLf + _
"font-style:normal;" + vbCr + vbLf + _
"text-decoration:none;" + vbCr + vbLf + _
"vertical-align:bottom;" + vbCr + vbLf + _
"border:solid 0px;" + vbCr + vbLf '0にしないと、テーブルの外枠が表示される。
Print #intFF, "}" + vbCr + vbLf
'------------------------------------------------------
'上下左右の罫線有無で16個スタイルを定義
'
Dim i As Integer
For i = 0 To 15
Print #intFF, ".xl_cell" + Format(i, "00") + vbCr + vbLf + "{"
Print #intFF, "padding-top:1px;" + vbCr + vbLf + _
"padding-right:1px;" + vbCr + vbLf + _
"padding-left:1px;" + vbCr + vbLf + _
"font-size:9.0pt;" + vbCr + vbLf + _
"font-style:normal;" + vbCr + vbLf + _
"text-decoration:none;" + vbCr + vbLf + _
"text-align:left;" + vbCr + vbLf + _
"vertical-align:top;" + vbCr + vbLf + _
"color:windowtext;" + vbCr + vbLf + _
"font-size:9.0pt;" + vbCr + vbLf + _
"font-weight:400;" + vbCr + vbLf
Dim strBoarder As String
strBoarder = ""
If i And &H1 Then
strBoarder = "border-top:1.0pt solid windowtext;" + vbCr + vbLf
Else
strBoarder = "border-top:none;" + vbCr + vbLf
End If
If i And &H2 Then
strBoarder = strBoarder + "border-right:1.0pt solid windowtext;" + vbCr + vbLf
Else
strBoarder = strBoarder + "border-right:none;" + vbCr + vbLf
End If
If i And &H4 Then
strBoarder = strBoarder + "border-bottom:1.0pt solid windowtext;" + vbCr + vbLf
Else
strBoarder = strBoarder + "border-bottom:none;" + vbCr + vbLf
End If
If i And &H8 Then
strBoarder = strBoarder + "border-left:1.0pt solid windowtext;"
Else
strBoarder = strBoarder + "border-left:none;"
End If
Print #intFF, strBoarder
Print #intFF, "}"
Next
End Sub
'==========================================================
'HTMLの終了部分をファイルに出力
'
Private Function GetLineOr( _
argSheet As Worksheet, argRow As Integer, _
argCol As Integer, argCount As Integer) As Integer
Dim theCell As Range
Dim i As Integer
Dim res As Integer
res = 0
For i = argCol To argCol + argCount - 1
Set theCell = argSheet.Cells(argRow, i)
res = res + GetBorderStyle(theCell)
Next
GetLineOr = res
End Function
'==========================================================
'背景色を取得
'
Private Function GetBackGround(argCell As Range) As String
Dim strRes As String
Dim strColor As String
Dim strZero As String
Dim strR As String
Dim strG As String
Dim strB As String
strColor = Hex(argCell.Interior.color)
strZero = Right("000000", 6 - Len(strColor))
strColor = strZero + strColor
'
strR = Mid(strColor, 5, 2)
strG = Mid(strColor, 3, 2)
strB = Mid(strColor, 1, 2)
strRes = "background:#" + strR + strG + strB
GetBackGround = strRes
End Function
使い方は:
・出力したい部分を選択する。
・マクロ 「HTMLforSpex_31」を実行する。
要求仕様書の表示方法 -その5-
要求仕様書の表示方法 -その4- から2ヶ月
「Webページとして保存」、あまり使い勝手が良くない。
ExcelのマクロでHTMLのコードを出力するようにする。
要求仕様書は、以下の通り
要求 | REQ01 | Excelで作成した要求仕様書からHTMLコードを出力する。 | |
理由 | Webファイルで保存してもその後の手間が面倒だから。 | ||
説明 | VBAのスクリプトで実現する。 | ||
要求 | REQ01_01 | HTMLのコードは、スタイルシート+テーブル用コードで出力する | |
理由 | スタイルシートを使ったほうが、全体のコード量が少なくなりそうだから | ||
説明 | スタイルシート部分をブログのCSSに貼り付ける。 テーブル部分をブログの記事に貼り付ける |
||
□ | REQ01_01.01 | 以下の構成でHTMLファイルを出力する <HTML> <STYLE> スタイルシートのコード </STYLE> <TABLE> テーブルのコード </TABLE> </HTML> |
|
□ | REQ01_01.02 | ファイル名を入力する | |
□ | REQ01_01.03 | 選択した部分をHTML出力する | |
□ | REQ01_01.04 | 複数個の範囲を選択した場合は実行しない | |
要求 | REQ01_02 | 要求仕様書のフォーマットに特化するが、ある程度は、一般性を考慮する | |
理由 | 汎用性を高めると作成に手間がかかる。 まずは、要求仕様書のフォーマットを出力できるようにしたい |
||
説明 | |||
□ | REQ01_02.01 | フォントサイズは9ptに限定する。 | |
□ | REQ01_02.02 | 様々な設定は”Webページで出力”の値を参考にする | |
□ | REQ01_02.03 | マイクロソフトの拡張仕様は排除する | |
□ | REQ01_02.04 | 罫線の太さは全て「1.0px」とする | |
□ | REQ01_02.05 | セルの結合は、横方向のみサポートし、縦方向はサポートしない | |
□ | REQ01_02.06 | 各セルの横幅は、プロパティから取得し反映する | |
□ | REQ01_02.07 | 各セルの背景色は、プロパティから取得し反映する |
この要求仕様書は、マクロで出力したものを貼り付けてある。
「Webページとして保存」よりは、手間が少ない。
しばらく、テストを兼ねて使ってみることにする。
Life Hacks PRESS ~デジタル世代の「カイゼン」術
- 田口 元, 安藤 幸央, 平林 純, 角 征典, 和田 卓人, 金子 順, 角谷 信太郎
- Life Hacks PRESS ~デジタル世代の「カイゼン」術~
GTDを知ることが目的だったが、他にも
・プレゼンが簡単にうまくなる
・自分のための情報整理
・いつでもどこでも文房具
・勉強会のススメ
等、琴線にふれる項目があったので購入した。
兎にも角にも、GTDを運用し始めた。
大きな効果といえるかどうか分からないが、
・やるべき事
・やりたい事
・先延ばしにしている事
・その他、気になる事
を書き出したことで、とりあえずホッとしている。
この気分になる事が、まずは、必要なのだろう。
中国語の習得 -中国語用の耳をつくる-
中国語の習得 -トレーニングの意味- に続いて、『LANG01_01:中国語用の耳をつくる』を考える。
耳->入力ドライバ->キャッシュ経路の構成
構成要素は、
・ゲート
・コンベア
・ピック&プレイス(コンベアからキャッシュへ)
・キャッシュ
である。
この経路がうまく動作するためには、
・ゲートを中国語用に十分に開き音を通過させ、
・入ってくる音に対し十分な速度で移動し(コンベアの役目)、
・コンベアで流されてきた音をくまなくキャッシュに取り出す(ピック&プレイスの役目)。
が必要となる。
慣れないうちは、
・ゲートが十分に開かず、中国語の音が内部に入ってこない。
・コンベアの速度が遅いので、入ってきた音がうまく乗らず、ぼろぼろこぼれてしまう
・ピック&プレイスの速度が間に合わず、音をコンベアから落としてしまう
・意味を解釈しようとして、コンベア、ピック&プレイスの速度が低下する。
が頻繁に発生する。
トレーニングを重ねていくと、
・意味は分からないが、音として頭に残る
・頭の中に音がこびりついている様な感じ
・発音出来そうな気がする
といった状態になる。
この経路の要求仕様書を記述してみた。
要求 | 中国語用の耳を構成 | ||
理由 | 中国語の音をくまなく入力する | ||
説明 | |||
□ | 意味の解釈をしない | ||
説明 | 意味の解釈をすると経路の能力が低下する | ||
□ | 中国語に対し、ゲートを十分に開く | ||
□ | 入力される音に対し、コンベア速度が十分に速い | ||
□ | コンベアで搬送される音に対し、ピック&プレイスの搬送能力が十分速い |