30歳でアウトプットを意識するようになって、エンジニアとして大きく変われたと思っているので、それについて社内勉強会で発表してきました。
www.slideshare.net
10年間これがしっかりできたかというと、かなりサボった時期もあったので、どうにか、、といった感じでしょうか。
だんだんアウトプットが減ってきているので、今日から心機一転頑張ろうと思っています。
30歳でアウトプットを意識するようになって、エンジニアとして大きく変われたと思っているので、それについて社内勉強会で発表してきました。
www.slideshare.net
10年間これがしっかりできたかというと、かなりサボった時期もあったので、どうにか、、といった感じでしょうか。
だんだんアウトプットが減ってきているので、今日から心機一転頑張ろうと思っています。
同じ条件のStreamを繰り返し作るためのビルダーを書いてみました。まったく使いどころが見いだせませんが、、とりあえず書いたので晒しておきます。
Streamの中間処理の流れを定義しておいて、、
Streamer<String, Integer> streamer = Streamer.create(String.class) .map(x -> { try { return Integer.parseInt(x); } catch (NumberFormatException e) { return null; } }) .filter(x -> x != null) .sorted();
Streamの元となるデータを指定することで、Streamを作ります。同じ条件で繰り返しStreamを作れます。
streamer.build(Arrays.asList("a", "2", "1", "", "000")) .collect(Collectors.toList()); // -> [0, 1, 2] streamer.build(Arrays.asList("1", "2", "-1")) .collect(Collectors.toList()); // -> [-1, 1, 2] streamer.build(Arrays.asList("a")) .collect(Collectors.toList()); // -> [] streamer.build(Arrays.asList("100", "abc")) .collect(Collectors.toList()); // -> [100]
書き始めたときは、何か目的があったはずなのですが、今となっては何のためだったかわからなくなりました...
Redmineの複数チェックボックスで、項目を2列に並べる方法無いでしょうか。
— y503Unavai (@y503Unavailable) 2016年8月24日
cfの1列表示化により、広大な空白が出来て見映え悪過ぎ。
チェックボックスを2列で表示したいとのことなので、ちょっと考えてみました。
CSSでcolum-count
というプロパティがあり、これを使うと段組みが簡単にできます。
View customize pluginを利用して、column-count
を設定します。
チケット編集系の画面を対象とします。
/issues
Type:StyleSheet
として下記を設定します。
span.enumeration_cf.check_box_group { column-count: 2; -moz-column-count: 2; -webkit-column-count: 2; }
追記@2016-09-07
上記はキー・バリューリストの場合ですが、リストの場合には、list_cf
となるようです。また、特定のカスタムフィールドを対象にする場合には、CSSの隣接セレクタ使って下記のように書きます。
label[for="issue_custom_field_values_1"] + span.list_cf.check_box_group { column-count: 2; -moz-column-count: 2; -webkit-column-count: 2; }
対応前は1列だったものが、
2列で表示されるようになりました。
カスタムフィールドの1列化のカスタマイズしていないときでも、チェックボックスの項目が多くて、かつ項目のラベルが短い場合には、2列表示は場所取らなくて良いかもしれませんね。
Blogへのコメントで、チケット一覧の進捗率で数値も表示したいといったコメントをいただきました。
View customize pluginを使って以下の様なことをしようとしていますが、うまくいきません。宜しければアドバイス頂けないでしょうか?
・やりたいこと: Redmineのチケット一覧の"% Done"を数値でも表示したい。
チケット一覧では%Doneはバーで表示されます。これでは正確な数値がわからないので数値で表示したいです。 %Doneの数値が取得できるのかどうかもわかりません。
デフォルトの表示だと、こんな感じでバーでの表示になっています。
要素見てみたら、class属性として数値が記載されているので、それを使ってView customizeで対応してみます。
チケット一覧を対象とします。
/issues$
Type:JavaScriptとして下記を設定します。
$(function() { $('table.progress').each(function() { var target = $(this); // classから進捗の値を取得(progress-値 となっている) var match = target.attr('class').match(/progress-([0-9]+)/); if (!match) { return; } // 値を追記して表示 var value = match[1]; target.after($('<p>').text(value)); }); });
Justin Bieber(ジャスティン・ビーバー)のライブに嫁さんと2人で参加してきました。今回の日本公演は、幕張メッセの国際展示場1~3での2日間で、初日の8月13日に参戦です。
昨年末のアメリカン・ミュージック・アワードでのパフォーマンスを見てから、ライブで見たくてしょうがなかったので、日本に来てくれてとてもうれしいです。
VIPの300番台だったので、とても近くで見れました。
Cold Waterと、Love Yourselfの引き語りで鳥肌が立ち、全体通してJustinのパフォーマンス(特にダンス)はすっごくかっこいいです。
アンコールのSorryは、雨を降らせた中でのパフォーマンスでびっくりしました。(アメリカン・ミュージック・アワードでも雨を降らせてたので、定番だったのかもしれません)
ショーを見ている感じで、感動しっぱなしで、あっという間にコンサートの1時間半が終わってしまいました。
次は3、4年後くらいですかね… 今から待ち遠しいです。
VIPの特典は、トートバックとキャップ、ネックストラップでした。猛暑の中、開場まで待つ必要があったので、キャップには救われました。
あと、グッズ販売でもVIP用のファストレーンがあって、長蛇の列に並ばずにグッズを買えたのは、とても大きな特典でした。
13日のVIPスタンディングが酷かったといった話がTwitterなどで流れていました。
確かにスタンディング(ALにいました)はかなり押し合いに近い状態になっていて、ある程度覚悟(オープニングの2、3分前に、歓声とともに、後ろから割り込んでくる流れがあって、そこからちょっとヤバイ雰囲気だった)はしていたものの、踏ん張るのは結構きつかったです。足が筋肉痛になりました(苦笑)。
自分の周りでは、Twitterであったような怪我人や喧嘩する人などは見受けられませんでした(すくなくとも気が付かなかった)。もしかしたら、もっときついブロックがあったのかもしれません。
手を伸ばしてスマートフォンで動画撮影している人も確かに多くて、ポジションによっては全然見えなくなる時があったので、そこはちょっと残念でしたが、許可されていることだし、スタンディングで隙間がないので、しょうがないのかなと(ただ、自分の頭に後ろの人の手が当たった状態がずっと続いているのはちょっと…)。自分は後ろの人が気になって、手を伸ばして写真を撮ることもないのですが、このあたりのマナーってどうあるべきなんですかね。
とはいえ、自分自身がVIPスタンディングで後悔したかというと、そういったことは全くなく、近くで見れたのはとても良かったし、スタンディングでぎゅうぎゅうになるのもライブの一環として楽しめました。ただ、同じ会場で怪我人が出たり、喧嘩がおきていて、ライブを楽しめない人が出ていたならば残念です。
観客の反応がひどくて、曲数大幅に減らされた!といった噂も流れていましたが、海外アーティストで1時間半のライブは、結構普通だと思います(逆に2時間超えると得した気分)。
気になったので他の会場でのセットリスト見てみましたが、だいたい20曲前後で、構成はほとんど変わりませんでした。
Redmine3.3で追加された"+"ボタンはとても良いと思うのですが、「新しいチケット」タブが消えるといったところは、それなりにインパクトが大きいようです。
だったら両方有効にすれば、、、ということで、Redmineの設定としては、"+"ボタンを有効にしておきながら、View customize pluginにて「新しいチケット」タブを表示します。
全画面を対象とします。
.*
Type:JavaScriptとして下記を設定します。
$(function() { var newIssueSub = $('.menu-children a.new-issue-sub'); if (newIssueSub.size() == 1) { // "+"ボタンで「新しいチケット」が表示され時のみ、タブにも追加 $('#main-menu > ul > li > a.issues').parent() .after($('<li>').append(newIssueSub.clone().attr('class', 'new-issue'))); if (location.pathname == newIssueSub.attr('href')) { // 新しいチケットに選択を切り替え $('#main-menu > ul > li > a.issues').removeClass('selected'); $('#main-menu > ul > li > a.new-issue').addClass('selected'); } } });
両方表示されるようになりました。これでどっちを有効にするかで揉めることは無くなりますね!(インタフェースとしては、統一性が無くてダメな感じになりますが…)
Redmine 3.3 で"+"ボタンが追加されて、さまざまなオブジェクトの作成が、一か所にまとまりました。
個人的には、メニューに統一感が出るのと、ニュースやバージョン作成へのルートが短縮されるので、とても良い変更だと思っています。
ただ、この変更に合わせて、今まで頻繁に使われていたであろう「新しいチケット」タブが消えることになり、それに対してのインパクトがとても大きかったようで、設定で元の形に戻せるような形になりました。
慣れの部分も大きいとは思いますが、確かにタブとして見えていた方がわかりやすく、ユーザにとってよりアクセスしやすいと思います。ただ、もしも素早く新しいチケットを作りたいということならば、accesskey使うと良いのではと思っています。
サイト上でのショートカットを割り当てる方法として、リンクやテキストボックスに対してaccesskey属性としてキーを割り当てることができます。
accesskeyの実行方法はブラウザによって異なります。WindowsのFirefoxだとAlt
+Shift
、ChromeだとAlt
といった感じです。Macだと、たいていCtrl
+Alt
だったかと。(すいません調べてないです)
Redmineでは、accesskeyとして7
が新しいチケット作成に割り当てられています。
なので、もしもWindowsのFirefoxで新しいチケット作成画面に飛びたい場合には、Alt
+Shift
+7
で飛ぶことができます。
画面見ただけだと気が付かない機能ですが、とても便利だと思っています。