this episode means a lot to me

自分のためのブログです。日々のやったこと・ふりかえりを主に書いています

MENU

はてなブログのグローバルメニューの追加

ねらい

「対外的に役に立ててほしいきちんとした記事」と「走り書きレベルの雑な記事」を一つのブログにまとめると見づらくなり結果的に誰も読まないものになる
グローバルメニューで回避できるんじゃないかと思い試した。

やったこと

グローバルメニューに追加するカテゴリの設定

どのようなUCがあるのか?整理していないが、とりあえずこんな感じで

  • TOP…初期表示。記事全文表示されているので一覧性が悪い
  • 一覧形式…見出しと記事一部分が表示される
  • UC1-アウトプット…誰かの役に立ちそうな自分の考えをここに突っ込む
  • UC2-インプット…2次情報、何か補足的に調べたい人が流入した時に見るかも
  • UC3-日記・走り書き…自分がわかれば良い程度にまとめる。備忘録

 はてなブログの設定

  • グローバルメニューの追加
    • HTML/CSS設定
    • 微調整としてmenuのtop marginの削除。背景色を併せる

残タスク

  • UC整理・他のブログで参考にする
    • カテゴリとタグの紐づけ。目的と合致するか確認
    • 各記事にタグ付け
  • スマホは未考慮

参考

redo5151.hatenablog.com

コードを参考にする

更新日時も追加してみたが、ブログ詳細を開かないと表示されない状況。 CSSのentry dateは不要なので削除している

詳細設定

<!--記事の更新日時設定-->
<!--「jQuery」参照URL-->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<!--「Font Awesome」参照URL-->
<link href="https://use.fontawesome.com/releases/v5.5.0/css/all.css" rel="stylesheet">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css">


==========================
<!--記事の更新日時設定-->
<!--「jQuery」参照URL-->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<!--「Font Awesome」参照URL-->
<link href="https://use.fontawesome.com/releases/v5.5.0/css/all.css" rel="stylesheet">

タイトル下に追加

<!-- グローバルメニュー -->
<span class="menu-toggle"><i class="blogicon-reorder lg"></i>MENU</span>
<ul id='menu'>
<div class="menu-inner">
<li><a href='archive'>一覧形式</a></li>
<li><a href='url'>アウトプット(考え事・登壇)</a></li>
<li><a href='category/勉強会'>インプット(読書・勉強会)</a></li>
<li><a href='url'>日記・走り書き</a></li>
<li><a href='url'>自己紹介・まとめ</a></li>
<li><a href='url'>※タイトルバー検討中で動作しません</a></li>
</div>
</ul>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script>
$(function(){
$(".menu-toggle").on("click", function() {
$(this).next().slideToggle();
});
});
$(window).resize(function(){
var win = $(window).width();
var p = 768;
if(win > p){
$("#menu").show();
} else {
$("#menu").hide();
}
});
</script>
<!-- グローバルメニューここまで -->



<!-- 更新日時表示-->
<!--[if lt IE 9]>
<script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.12.3.min.js"></script>
<![endif]-->
<!--[if gte IE 9]><!-->
<script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-2.2.3.min.js"></script>
<!--<![endif]-->
<script>
;(function($) {
'use strict';
var urls = [], opts = {cache: false, dataType: 'xml'}, p,
_ua = (function(u){
return {
Tablet:(u.indexOf("windows") != -1 && u.indexOf("touch") != -1 && u.indexOf("tablet pc") == -1)
|| u.indexOf("ipad") != -1
|| (u.indexOf("android") != -1 && u.indexOf("mobile") == -1)
|| (u.indexOf("firefox") != -1 && u.indexOf("tablet") != -1)
|| u.indexOf("kindle") != -1
|| u.indexOf("silk") != -1
|| u.indexOf("playbook") != -1,
Mobile:(u.indexOf("windows") != -1 && u.indexOf("phone") != -1)
|| u.indexOf("iphone") != -1
|| u.indexOf("ipod") != -1
|| (u.indexOf("android") != -1 && u.indexOf("mobile") != -1)
|| (u.indexOf("firefox") != -1 && u.indexOf("mobile") != -1)
|| u.indexOf("blackberry") != -1
}
})(window.navigator.userAgent.toLowerCase()),
//url = 'https://www.tameblo.work/sitemap.xml'; // URLの入力例
url = 'https://ruzxas.hatenablog.com/sitemap.xml'; // ←にご自身のURLを入力してください。

function parseSitemapXML(url) {
var d = new $.Deferred;
$.ajax($.extend(opts, {
url: url
})).done(function(xml) {
$(xml).find('sitemap').each(function() {
urls.push($(this).find('loc').text());
});
d.resolve();
}).fail(function() {
d.reject();
});
return d.promise();
}
function findURL(url) {
$.ajax($.extend(opts, {
url: url
})).done(function(xml) {
var isMatched = false;
$(xml).find('url').each(function() {
var $this = $(this);
if ($this.find('loc').text() === location.href) {
isMatched = true;
appendLastmod($this.find('lastmod').text());
return false;
}
});
if (!isMatched) nextURL();
}).fail(function() {});
}
function nextURL() {
urls.shift();
if (urls.length) findURL(urls[0]);
}
function appendLastmod(lastmod) {
var $container = $('<div></div>', {'class': 'lastmod'}).text(lastmod.replace(/T.*0/,""));
if ($('.entry-header > .date').get(0).tagName.toLowerCase() === 'span') {
$('.entry-title').before($container);
} else {
$('.entry-date').append($container);
}
}
p = parseSitemapXML(url);
p.done(function() {findURL(urls[0])});
p.fail(function(error) {});
})(jQuery);
</script>
<!-- 更新日時表示ここまで-->

デザインCSS

/* <system section="theme" selected="6653586347153366095"> */
@import url("https://blog.hatena.ne.jp/-/theme/6653586347153366095.css");
/* </system> */

/* <system section="background" selected="f5f5f5"> */
body{background:#f5f5f5;}
/* </system> */

#menu {
position: relative;
width: 100%;
padding-left: 0px;
height: 40px;
margin-top: 0px;
background: #202035;/*グローバルメニュー背景色*/
}
.menu-inner{
width: 968px;
margin: 0 auto;
height: 40px;
}
#menu li {
list-style-type: none;
float: left;
height: 40px;
text-align: left;
}
#menu li a {
padding-left: 15px;
padding-right: 15px;
display: block;
color: #ffffff;/*グローバルメニュー文字色*/
font-size: 80%;
font-weight: bold;
line-height: 40px;
}
#menu li:hover a {
color: #00DFFC;
background: #ffffff;
transition: all .5s;
}
.menu-toggle{
display: none;

}
/*パソコン1カラム*/
@media screen and (max-width:968px){
.menu-inner{
width: 768px;
}
}
/*タブレット*/
@media screen and (max-width:768px){
#top-editarea{
height: initial;
background: #343838;/*MENU背景色*/
text-align: right;/*MENUの文字の位置*/
width: 100%;
}
.menu-toggle{
color: #ffffff;/*MENUの文字色*/
display: inline-block;
padding: 5px;
margin: 3px;
}
#menu {
width: 100%;
display: none;
height: initial;
padding: 0;
margin: 0;
}
.menu-inner{
width: 100%;
height: initial;
position: static;
margin: 0;
}
#menu li{
float: none;
height: 35px;
width: 100%;
list-style-type: none;
background: #00DFFC;/*リスト文字の背景色*/
margin: 0 auto;
text-align: left;/*リストの文字の位置*/
}
#menu li a {
height: initial;
color: #343838;/*リスト文字色*/
display: block;
}
#menu li:hover a{
color: initial;
background: initial;
}
}




/*更新日時表示*/
.lastmod {
background-color: transparent;
padding: 5px 0px;
text-decoration: none;
font-size: 15px;
display: inline;
margin-left: 0px;
font-family: 'Montserrat', sans-serif;
color: #888888;
}
.lastmod::before {
margin-right: 5px;
padding-left: 3px;
font-family: FontAwesome;
content: '\f01e';
}

テスト設計コンテスト20 open振り返り

f:id:ruzxas:20200528004520p:plain

www.slideshare.net

※7/7追記 審査員からのコメントも来たので、追記します。

信頼貯金  様 
 
審査委員 A   
色々な技術にトライしようとしておられるのは素晴らしいことだと思います。ただそれぞれの技術の理
解が未消化であり、時間も足りなかったようで、分析や設計に入る前に終わってしまったのは残念です。 
ぜひ頑張って、次回また応募してみてください。 
 
審査委員 B   
全体として一般的なことを述べるにとどまり、テスト設計まで行きついていません。 
要求分析の 
「ユーザーは IT 知識に長けている自社の QA のため、意地悪な操作を行わない前提で良い」 
「一日中触るシステムのため業務効率や利便性を重要視」 
はとても良いです。ここを活かして最後まで行きついていければよいテスト設計になると思います。 
ドキュメントとしては不要な情報が多いと感じました。 
 
審査委員 C   
今回のコンテストに向けて、さまざまな方法論やモデルを勉強されたことは成果物を通して伝わってき
ました。 
今回は残念ながら、テスト要求の識別までにとどまってしまいましたが、今後は、今回勉強したことを理
解し特徴を識別した上で、自分たちのやりたいテストを行うために適切な方法論を選択し、場合によっ
てはテーラリングして使いこなせるようになると、自分たちで腹落ちするテスト設計が可能になると思
います。期待しています。 
 
審査委員 D 
背景、方針:今回のテスト設計の立ち位置や範囲を考え、説明してあるので、序盤の理解はしやすかった
です。 
 
全体:学習途中の方法について、試しに手を動かしてみたというレベルの成果物となってしまっている
のが勿体ないです。 
全体プロセスについて、各プロセスの役割、プロセス間の流れや関連を説明しながら、その結果としての
成果物が(簡潔な表現で)示されていると、とてもよいテスト設計になると思います。 
そこでの期待は、テストアーキテクチャの表現方法がどのようなものになるかで、ぜひ見てみたいと思
っています。 
 
テストスコープ:色の塗り分けだけで分類を表すのはわかりにくい(人によっては視認できない)ので記
号番号など、別の方法と併用したほうがよいでしょう。 審査委員 E   
評価すべき点としては、 
・様々なテスト技法を使おうと努力した点 
・要求分析において、ユーザやシステムを考慮して業務効率や利便性を重要視した点です。 
ですが、色々とテスト技法を使おうとしたため、どんなテストをしたいのかという焦点が定まらず、一貫
性がないものになってしまった点が残念でした。 
また、成果物が不完全であったため、成果物を点数化するとどうしても点が下がってしまうのが、今回一
番響いてしまったところだと思います。 

ポモドーロと振り返りのための活動記録のつけ方(gasを使ったspreadsheetとcalendarの連携)

概要

5月はテスト設計コンテスト(一人自宅に籠りっきり)での活動もあり、自己管理をきちんとしたいと思いがあった。

そこで、ポモドーロテクニックの「25分作業+5分休憩」を1イテレーションとして、記録することにした。

本編の内容は以下。

  • 5月の作業時間報告
  • ポモドーロのアプリ紹介
  • ポモドーロの5分の使い方
  • ポモドーロの30分の使い方
  • 振り返りのやり方(KPT/YWD/FDL)
  • spreadsheetとcalendarの連携・記録の仕方
  • 感想
  • 利用するgas

以下の記事の最終アウトプットである。

ruzxas.hatenablog.com

5月の作業時間報告

5/1-5/25の集計。一日10時間程度活動していた。*1

f:id:ruzxas:20200528092554j:plain

ポモドーロのアプリ紹介

使っているタイマーはこれ

ポモドーロの5分の使い方

数日おきに5分休憩の時間の使い方を気分によって変えていた。

5分休憩は瞑想する

たぶんポモドーロ本来の正しいやり方で、5分は一切何も考えてはいけない。
ベットに横になって瞑想していた。

あまり気乗りしない時や、マンネリ化してきたときに使っていた。
意図はしっかりと休んだり、次の作業をやりたいという気持ちを抑えて何もしない時間を敢えて作ること。それによって次の時間にメリハリができ、次の1イテレーションの質を保てる。

5分休憩は振り返りの時間に充てる

5分休憩は振り返りや次のタスク整理にあてる。

イデア出しやアプローチなど色々な方向の事を考え始めると発散しだして元の場所に戻ってこれなくなることがある時に使う。
意図は強制的に30分でやったことを整理しなおして、次にやるタスクと後回しにするタスクを分ける。 後回しにするタスクを書き出しておくことで、短期記憶の無駄遣いを避けて次の作業に集中できる。次にやるタスクの方針や目的を整理しなおすことで、安心して次のタスクに集中できると共に、価値を感じられる活動に繋がる。

5分休憩は休まない

5分休憩を挟まない

イテレーション終了時にベルが鳴るが、いくら音を大きくしても集中していて気づかない時や、そのまま作業を流したいときに使っていた。 次のタスクが明確な時や、作業にのれているときはこれで良い。振り返りは必要になってからあとで纏めて実施する。

ポモドーロの30分の使い方

30分を作業を強制的に区切るという性質と捉えると、以下の様に色々と使いどころが見えてくる。

どこかを参照したわけではないので調べるともっと良いやり方は見つかると思う

難しい事をしているときに、どう進めていくかを整理する起点にする。いらないことをそぎ落として、安心して次のタスクの推進力にする効果。

その時の気持ちを書き出すことで、客観的に自分の気持ちを把握して休憩をとったり、落ち着くなど気持ちを切り替える効果

習慣をいい方向へ強制する効果。

振り返りのやり方(KPT/YWD/FDL)

f:id:ruzxas:20200527223028j:plain
スプレッドシートフォーマット

YWTやKPT・fun/done/learnとか自身の活動がコアバリューに沿っているかなど欄を追加しているが、その欄を使う機会は少なかった
25分と短いイテレーションだと負担の少ないライトなやつがよかったので、上記の観点のうち強く思い浮かんだことをどのカテゴリか意識せずに書き出して、必要に応じて整理した。

あと、その時の自分の状態とか気持ちも書き出して、見返した時に自分の状況を把握したり、気分転換に寝るか風呂入るかアロマ炊くとかリフレッシュや、心持ちを変えるためになんでストレスを感じたのか・考え方を変えてみたりしていた。

funやコアバリューに沿っているタスクを計測して単位時間あたりの数値を出すのも面白いかもと思ったが、何回か試したあと続いていない。(個人的には重要だと思っている)

spreadsheetとcalendarの連携・記録の仕方

スプレッドシート⇒gas実行⇒googleカレンダーへ反映させて可視化している。手順は以下の通り。

  1. googlespreadsheetの以下のテンプレートを日付毎に記録する。

    f:id:ruzxas:20200527223028j:plain
    スプレッドシートフォーマット

  2. gasでスプレッドシートからカレンダーへ日報を反映する - しんらいちょきんを元googlecalendarと連携させる。gasの最新は末節に載せる。

  3. googleカレンダーに出力する
    f:id:ruzxas:20200527224133j:plain
    5月のとある週の活動(ぼかし済み)

    スプレッドシート上で完結しても良いが、週単位・月単位で見えるとそれを元に振り返れることを期待している

感想

何かしら記録することで、自信に繋がればいいし過去の自分と比較して良い方向にもっていけると良い。

利用するgas

function createEventFromSheet() {
    Logger.log('test.gs');
    //アクティブなシートを選択
    //var sheet = SpreadsheetApp.getActiveSheet();
    //特定のシート名を指定する。
    const ss = SpreadsheetApp.getActiveSpreadsheet();
    const sheet = ss.getSheetByName('5/15');
    console.log(ss.getName());
    console.log(sheet.getName());

    // 行を選択
    for(var i = 4; i <= sheet.getLastRow(); i++) {
        // セルの値を取得
        var start = sheet.getRange(i, 1).getValue().toString();
        var end = sheet.getRange(i+1, 1).getValue().toString();
        var titleName = sheet.getRange(i, 2).getDisplayValue().toString();
        var myCalendar = sheet.getRange(i, 3).getDisplayValue().toString();
        
        //タイトルが未入力の場合には埋めておく
        if(titleName === ""){
            titleName= '未入力';
        }

        Logger.log('start: "%s"',start);
        Logger.log('end: "%s"',end);
        Logger.log('titleName: "%s"',titleName);
        Logger.log('myCalendar: "%s"',myCalendar);
        
        // カレンダー名が未登録の場合は、カレンダーに登録しない
        if(!(myCalendar.length <=0)) {
            
            // 開始と終了の日時を取得。入力形式はYYYY/MM/DD hh:mm
            var startTime = new Date(start);
            var endTime = new Date(end);
            Logger.log('startTime: "%s"',startTime);
            Logger.log('endTime: "%s"',endTime);
            
            // オプションは必要に応じて
            var options = {
                location: "",
                description: ""
            }
            
            // カレンダーを取得
            //var cal = CalendarApp.getDefaultCalendar();
            //var cal = CalendarApp.getCalendarById("xxxxx8@group.calendar.google.com");
            var cal = CalendarApp.getOwnedCalendarsByName(myCalendar);//Calendersと配列であることに注意.
            Logger.log(cal[0]);
            // カレンダーにイベントを追加
            cal[0].createEvent(titleName, startTime, endTime, options);
        }
    }
}

*1:人間の集中状態は一日4時間程度が限度と研究もあるため、当然ながら生産性を時間で測ることはできない。

【備忘録】jstqb用語集でよく使う単語一覧を作る。(pythonを使って加工)

概要

とある事情で、JSTQB用語集を単語と説明セットで一行にします。 テスコンで追い込み時なので、説明はだいぶ端折ります。 (前処理が足りず使い勝手の悪い所があるので、もっといいの作った方いらっしゃれば教えていただけると嬉しいです)

変換後のファイルは、こちらのエクセルの用語定義メモシートから見ることができます。落とせなかったら連絡ください。

以下、手順とアウトプット
  • JSTQB認定テスト技術者資格-シラバス(学習事項)・用語集-を開く
    • レポート⇒All Terms⇒JapaneseのDual Langage☑を選択し、レポート生成
  • 英語表記の箇所は省きたいので、正規表現で不要な箇所を置換
    • ^(?!.*([亜-熙ぁ-んァ-ヶ])).*$で日本語を含む行以外を除去。空行も消しておく
  • pythonで加工 f:id:ruzxas:20200516114952j:plain
  • Excelで気になった用語をすぐに呼び出せ、ピン止めできるようになりました。 f:id:ruzxas:20200516121303j:plain

  • 用語の使い方を知りたい時は、該当の用語で絞って一覧にできるのでだいぶ見やすくなります。 f:id:ruzxas:20200516190649j:plain

python コードは以下。

import re

data = """
アルファテスト【  alpha testing 】
開発担当者のテスト環境で実行する受け入れテストの一種。開発組織外の担当者が実行する。
分析的テスト戦略【  analytical test strategy 】
テスト戦略の一つ。テストチームはテストベースを分析して、カバーするテスト条件を識別する。
解析性【  analyzability 】
コンポーネントやシステムへの一つ以上の意図的な変更の影響、欠陥または故障原因の診断、修正箇所の識別につい
て、コンポーネントやシステムを評価できる度合い。
不正【  anomaly 】
要求仕様、設計ドキュメント、ユーザドキュメント、標準など、または知見、経験から逸脱するあらゆる状態。レ
ビュー、テスト、分析、コンパイルをする中で検出できるが、それだけにとどまらず、ソフトウェアプロダクトや該当
するドキュメントを利用するときに検出できることもある。
アンチマルウェア【  anti-malware 】
マルウェアを検出し阻止するソフトウェア。 malware も参照のこ
"""

print(re.sub(r'([^\n]*【[^\n]*)\n(([^【\n]+)\n([^【\n]+\n)|)',r'\1\3\4',data))

gasでスプレッドシートからカレンダーへ日報を反映する

概要

以下の記事の続きとして、入力時刻をgoogleカレンダーに自動で反映させて可視化する。 マイカレンダーを複数運用していている点に注意する。

googleカレンダーに登録することで、月次の活動の集計に利用する。

ruzxas.hatenablog.com

やったこと

  1. スプレッドシートに日報を登録する f:id:ruzxas:20200410010816j:plain

  2. gasでスプレッドシートからカレンダーへ予定を登録
      ・スプレッドシートから登録先のカレンダー・タイトル・作業開始・終了日時を取得する
      ・取得した日時をカレンダーに登録する f:id:ruzxas:20200410010834j:plain

  3. マクロをインポートし、スプレッドシート上でgasを実行する
      ・ツール>マクロ>インポートからgasを登録 f:id:ruzxas:20200410010853j:plain

次にやること

gasのトリガを利用を利用し日次で自動的に集計する

補足

作成したgasは以下

function createEventFromSheet() {
  // シートを選択
  var sheet = SpreadsheetApp.getActiveSheet();
 
  // 行を選択
  for(var i = 2; i <= sheet.getLastRow(); i++) {
    // セルの値を取得
    var start = sheet.getRange(i, 1).getValue().toString();
    var end = sheet.getRange(i, 2).getValue().toString();
    var title = sheet.getRange(i, 3).getDisplayValue().toString();
    var name = sheet.getRange(i, 4).getDisplayValue().toString();
    
    // タイトルまたはカレンダー名が未登録の場合、終了する
    if(title.length <= 0 || name.length <=0) {
      break;
    }
    
    // 開始と終了の日時を取得。入力形式はYYYY/MM/DD hh:mm
    var startTime = new Date(start);
    var endTime = new Date(end);
    
    // オプションは必要に応じて
    var options = {
      location: "",
      description: ""
    }
    
    // カレンダーを取得
    //var cal = CalendarApp.getDefaultCalendar();
    //var cal = CalendarApp.getCalendarById("xxxxx@group.calendar.google.com");
    var cal = CalendarApp.getOwnedCalendarsByName(name);//Calendersと配列であることに注意
    Logger.log(cal[0]);
    // カレンダーにイベントを追加
    cal[0].createEvent(title, startTime, endTime, options);
    }
}

参考:Google Apps Script - Google Apps Scriptで、GoogleカレンダーのcreateEvent()がうまくいかない|teratail

gasとスプレッドシートの関数利用して、複数のセルの入力時間のうち最初に入力された時刻を返す

概要

先日のびばさんの振り返りオンラインMTGでの気づきを踏まえて振り返り方法を再構築中。

やり方として日々の振り返り作業(KPT / YWT / FDL / 認知行動療法)と活動記録をスプレッドシート上で行っているが、作業開始時刻・終了時刻の記録漏れなどあるので、活動内容を記録すれば自動で作業開始・終了時刻も記録できるようにしたいというモチベーション

そこで、gasとスプレッドシートの関数利用して、複数のセルの入力時間のうち最初に入力された時刻を返してみた

やったこと

  1. ツール>スクリプトエディタからsetCurrentTime()を作成
      Utilities.formatDate()で、TIMEVALUE()に合致するフォーマットに整形
  2. 戻り値はテキストなので、TIMEVALUEで数値に変換
  3. MINIFS()で最小値を出力する
  4. 数値から時刻表示に戻す
      数値から日付に戻す関数TO_DATE()はある一方で、時刻に戻すTO_TIME()はなかったので書式設定で対応

最終的に緑セルの入力時刻に対して、青セルの最初に入力された出力時刻を返すことができた。 f:id:ruzxas:20200327224422j:plain

所感

gasを利用するとgoogleのサービスを横断できるので便利そう。 google formからメール送信を行えたり、スプレッドシート上で集計やグラフの作成など。

次やること

入力時刻をgoogleカレンダーに自動で反映させて可視化する。 課題はマイカレンダーを複数運用していて、それを指定できるかどうか。

blitzgate.co.jp

補足

setCurrentTimeのソースは以下

function setCurrentTime(value) {
  if(value){
    var now = new Date(); //現在日時を取得
    var time = Utilities.formatDate(now,'Asia/Tokyo', 'yyyy/MM/dd HH:mm:ss');//取得した現在日時を指定した表示形式に変換
    return time;
  }
}

後悔しない超選択術 - メンタリストdaigo 要約

.....................................非公開記事です..................................... ............................................................................................................... ...............................................................................................................

期待値の高いものに☆をつけている。                       原文要約暗号化前

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