より良いエンジニアを目指して

記事を頻繁に書き直す性格なのでごめんなさい。

効果音の変換もカットもこれ一つで「Audio Cutter」

最近は、効果音がmp3で提供されるのですが、wavではないと正しく再生されないことがあるため、変換できるアプリケーションないかなあと探してました。

無料で。

以下が、良さそうです。

mp3cut.net

効果音をカットするのが目的のアプリケーションです。

さらに保存時に以下の形式から選ぶことが可能です。

  • mp3
  • mp4a
  • mp4r
  • flac
  • wav

f:id:rimever:20200223091001p:plain

Google Apps Scriptでスプレッドシートの数値の書式を設定する

現象

仕事でGASを使ったアプリを開発していると、テスト中に

あれ? 数値のはずが、日付になってますよ!

という報告が。

原因

日付で代入したセルに数値で上書きすると、スプレッドシートが数値を頑張って日付で表示しようとするようです。

// 関数を実行するメニューを追加
function onOpen() {
  var ui = SpreadsheetApp.getUi();
  var menu = ui.createMenu('スクリプト実行');
  menu.addItem('テスト', 'myFunction');
  menu.addToUi();
}
function myFunction() {
  var sheet=SpreadsheetApp.getActiveSheet();
  sheet.getRange(1,1).setValue(new Date());
  // 日付を代入したセルに数値で上書き
  sheet.getRange(1,1).setValue(12345);
}

f:id:rimever:20200222134752p:plain
12345が日付で表示されてしまった

対処法

そういうときのためにセルの書式をコントロールする関数が用意されています。

developers.google.com

// 関数を実行するメニューを追加
function onOpen() {
  var ui = SpreadsheetApp.getUi();
  var menu = ui.createMenu('スクリプト実行');
  menu.addItem('テスト', 'myFunction');
  menu.addToUi();
}
function myFunction() {
  var sheet=SpreadsheetApp.getActiveSheet();
  sheet.getRange(1,1).setValue(new Date());
  // 日付を代入したセルに数値で上書き
  sheet.getRange(1,1).setValue(12345);
  // 書式を設定
  sheet.getRange(1,1).setNumberFormat("0");
}

f:id:rimever:20200222135318p:plain
できた!

使える表示形式

覚えてられないのでスプレッドシートのメニューから確認すると良さそうです。

f:id:rimever:20200222135135p:plain

f:id:rimever:20200222135152p:plain

参考記事

blogs.kaizen-cloud.jp

読書感想「まんがでわかる トヨタの片付け」

まんがでわかる トヨタの片づけ

まんがでわかる トヨタの片づけ

  • 作者:亀山 聡
  • 出版社/メーカー: KADOKAWA
  • 発売日: 2016/11/05
  • メディア: 単行本

自動車のトヨタとは関係なさそうな報道を舞台にして、片付けについての話が登場します。

探す時間というのが、どれだけ無駄か。そのために片付けが必要になります。

  • 片付けとは捨てること。 - 1週間誰も使われなかったモノは捨てるという部署もある。
  • 先入先出しで、気づけば賞味期限切れを防ぐ。
    • モノを使うルールを決める。そのため、一番最初に入れたものがわかるような並べ方をしている話は印象的
  • 自分だけがわかる置き方ではダメ。他の使うメンバーもわかることが残念。

最後に、漫画の絵がいまいちなのは残念でした。

デブサミ2020 ななめ読み これは知っておいて〜

event.shoeisha.jp

デブサミ2020に参加して、会社に提出するレポートを書いたものの……。

長すぎじゃないか?

と。さすがに、自分の上司は性格からすると読もうとするでしょうし、このセッションの内容を見たらいいよとピンポイントで勧めたりはしましたが、メモをドカッと渡されても困るだろうと。

結果、こんなことを言われるでしょう。

結局、参加してどうだったんだ?

なので、自分が参加してみた、セッションを統合的に感想を書きたいと思います。

モブプログラミング

今回のイベントは「ともにつくる」というテーマでした。そのためか、エンジニアチームとしてのセッションが多かったです。

そのテーマと世相を最も反映したのが、モブプログラミングではないでしょうか。

簡単に言うと一つのプログラムを皆で作る手法です。

一人のドライバーがコードを書いて、他の皆はナビゲーターとして口出しをするというペアプログラミングの多人数版です。

デザイナーもモブプログラミングに参加するという話もありましたし、テストコードを書くときに使ってもテストケースの漏れがなくなるという話もありました。

一つ一つが確実に終わっていくので、終わったものからコミットしていけば、製品価値として提供できるのでビジネス的にもトータルで見れば一度にまとめてよりも多くの価値が提供できるという考えが出来ます。

オンボーディング

採用のパネルディスカッションで、採用してからフォローに何が必要なものはなんですかという質問があって聞いた言葉。

意味としては、新しく加わった社員に戦力になってもらう育成プログラムです。

これまでの日本だと、要は新入社員研修のことになるかと思いますが、これからは中途入社の社員についても大事になってくるかと思います。

エンジニアの採用は競争が激しく大変です。お金もかかります。

取るばかりで、取った人が戦力にならなかったり、辞めてしまっては意味がないです。

採用と合わせてオンボーディングも考えていくことは必要と感じた次第です。

ウォーターフォール型開発

スクラムとかアジャイルの話をするのがデブサミですが、あるセッションで、

ウォーターフォール型開発をしている人はどれくらいいますか?

これが多かったようです。私もそうです。

ウォーターフォール型は最初に大きな要件を決めてしまいます。ですが、見積もりは外れるもので大きく外れてしまうとリカバリが大変になります。

なのでアジャイルのように小さく作って確認した方がいいですよ、となります。

というのもなかなか、これまでの開発体制から新しい体制に変えるのは壁もあります。

企業としてのスタンスもありますし、ユーザーのこともあります。

メルペイのようなイマドキの企業でも、最初のリリースで後発だったので色々やろうとして、いつまで経ってもリリース出来ない状態であったため、ウォーターフォール型開発で乗り切ったそうです。

GraalVM

AWSJava On Serverlessのセッションで出た言葉。

会社の勉強会でも聞いてはいましたが、やはりパフォーマンスを上げるのに期待が出来るようです。

残念ながらSpring BootではGraal VMの制約上使うのが大変です。使いたいのであればMicronautあたりになります。

GraalVM、これから来るのか?と感じた次第です。Javaユーザーは注目しておいていいのではないでしょうか。

私はJava、興味ないですが。

これまでの良さを取り入れつつ進化する

ティール組織とは、組織の各メンバーが自律的に行動する組織のことです。

そんな皆が勝手に大丈夫か?と思ってしまうのではないでしょうか。

ゆめみのセッションでは、それについての答えをきちんと説明していました。

まず、組織の進化段階というのを理解する必要があります。

  1. 力と恐怖で支配する組織
  2. 軍隊のような上に従う組織
  3. 成果により昇級できる組織
  4. ボトムアップ型の家族のような居心地の良さ組織
  5. 個々が自分で決定し、進化する組織(これがティール組織)

各組織には欠点と利点があります。

ポイントとしては、前の進化段階の組織の良いところを包含するということです。

なので、時としては、経営陣の力で組織を律して短期的な改善必要であり、成果によってやりがいを得て昇給できることも必要、それに加えて、個々が自律的に行動していき成長できる。

ティール型組織という横文字混じりの言葉より、覚えて欲しいのはこれまでの良さを取り入れつつ、新しくなろうという事です。

時に、新しい言葉に胡散臭さに感じるのは、これまでのはダメだ、全部新しくしなければダメだという一元論に陥ること。

そうではなく、新しいことの良さを取り入れつつ、古くても良いものは良いという事。

エンジニアとエンジニア以外

メルペイのセッションで、言い続ける事が大事というのがありました。

メルペイのような最近の企業でも、技術的負債を返すことについてエンジニア以外が理解を示すのは難しいことのようです。

エンジニアがそうなのか、私がそうなのか、エンジニアって正しいことを言えば、わかってもらえるもの。わかってもらえないなら、相手が聞こうとしないか、理解力がないのかと、自分の説明が悪いのかと思いがちです。

そうではなく、ただ、言い続けることでやっと理解してもらえるということ。

星野リゾートの経営者にも開発なってベンダーに任せておけばいいじゃんと言われる中で、結果を出し、行動する中で、やっと理解してもらえたという話がありました。

不具合についてもエンジニアさん、あとよろしく。ではなく、サポートなどが協力していかないと解決しませんという話もありました。

エンジニア以外のサポートや経営層をいかに巻き込んでいくかということがこれから問われていくのかなと。

個人的に面白かったスピーカー

リクルートテクノロジーズの黒田樹さんでした。

パネルディスカッションでしたが、

黒田さん「お前のWill(意志)はあるのかと言われる。いつも白紙で出している」

とか

質問「どんな組織にしたいですか?』

黒田さん「Aボタン押しっぱなし」(組織をスムーズに進める上での障害を取り除きたい)

とか

質問「辛くなったらどうしますか?」

黒田さん「ゲームしてMP回復」

などなど。端的な迷いのない発言で、伝えたいことを伝えていました。

Google Compute Engineをクローンする方法。構成もデータもコピーしたい。

私「検証したいけど、どうするの?」

若手「クローンして、やります」

GCE(Google Compute Engine)でクローンって、どうするの? と知らなかったので調べてみました。

まず、適当なインスタンスを生成し、/usr/HelloWorld.dat を生成します。

f:id:rimever:20200219215044p:plain

で、クローンとなると以下のページなのですが、やってみて気付きました。

cloud.google.com

単に同様のものを作成だけでは、構成のみでデータはコピーされません。

f:id:rimever:20200219215229p:plain

これでは△です。

先にスナップショットを生成しておきます。

f:id:rimever:20200219220941p:plain

そして、スナップショットのデータで復元します。

f:id:rimever:20200219220136p:plain

cloud.google.com

そうすればOKです。

f:id:rimever:20200219220349p:plain

Google Compute Engineへローカルファイルのアップロード

GCP初心者の身なので、単純なファイルのアップロードについて。

cloud.google.com

ここに書いてあるじゃーん。

なのですが、実際にやってみると苦戦しました。

英語の構文みたく言うなら

gcloud compute scp {アップロードするローカルファイル} {インスタンス名}:{アップロード先ディレクトリ}

となります。

f:id:rimever:20200218210830p:plain

f:id:rimever:20200218210932p:plain

ポイントは一つあって、

chmod 777 アップロード先ディレクト

などとしてディレクトリの権限を設定しておく必要があります。

デブサミ2020でメモをとるのに役立ったGoogleドキュメントのショートカット

デブサミ2020では業務で参加だったので、会社にレポートとして提出する形として、私はGoogleドキュメントで作成しました。

理由としては

  • 会社がG-Suiteなので、共有がラク
  • Markdownファイルの共有でもいいが、生ファイルとしてみるとテキストファイルなので味気がない

一番書きやすさとしてはStackEdit でMarkdownファイルなのですが、上記の理由で、見る側からすると、見づらいかなという理由です。

私は幸い2日とも参加出来ましたが、会社のメンバーとしては業務上、1日のみ、ないし参加は出来ない人もいました。

そういう人にこそ共有する必要もあります。

かなりGoogleドキュメントにメモを書いたので、かなり使いこなせるようになったかなと。

コツとしては、基本の基本ですが見出しを使うことかなとは思います。

見出しを正しく使えれば目次が生成されますので、見たいところにジャンプしやすくなります。

見出しはレベル1〜4くらいまでは使うことになります。いちいち画面上部のバーから操作するのは手間ですので、

Windows : Alt + Ctrl + 見出しのレベル(1,2,3,4 ...) Mac : Alt + Cmd + 見出しのレベル(1,2,3,4..)

です。

あとは、箇条書き。

Windows : Ctrl + Shift + 8 Mac : Cmd + Shift + 8

セッションごとにページの区切りを行いたいので、改ページは

Windows : Ctrl + Enter Mac : Cmd + Enter

かなと。このあたりだと思います。

Googleドキュメントでいいのか

Googleドキュメントってありふれているから、もう少し気の利いたツールが良いのかなとも思ったこともあります。

デブサミ2020のセッションで、メルペイのUX ResearchではGoogle ドキュメントでレポートを書いているという話もあったので、それでいいんじゃないか、と思えました。