【GAS】シートをDBのテーブルっぽく使う
最近、GoogleAppsScriptにハマり始めた
GASはjsのバージョンが古くて好きじゃなかったけど、開発環境のセットアップが不要で気軽に始められるのが良い
で、いろいろ作ってるとスプレッドシートをDBのように扱いたくなるのでライブラリ化した
シートをDB化できると結構夢が広がる
例えば大量データのバッチ処理がしたい場合、通常はGASの処理時間制限にかかって処理できない
そこでシートをキューみたいに使って処理を分割すればこの制限を回避できる
しかもGASはWebAPIも作れるから、ちょっとしたサンプルアプリなら普通に作れそう
とりあえずGithubAPIを使って遊んでみようかと考え中
projectsのバーンダウンチャート作るとか、API仕様書(swagger)やDB仕様書のビュワー作るとか
楽しみだ
「ヤフーが語る、1on1の実際」を聞いた
田祐の「人事放送局」~有名企業の人事にズバリ聞く!~
というpodcastでヤフーの1on1の話が全4話で放送されていたので聞きました。
以下はそのまとめです。
vscode上のplantumlでマインドマップを書く
plantumlでマインドマップが書けるらしい。 シンタックスはこんな感じ
@startmindmap * Debian ** Ubuntu *** Linux Mint *** Kubuntu *** Lubuntu *** KDE Neon ** LMDE ** SolydXK ** SteamOS ** Raspbian with a very long name *** <s>Raspmbc</s> => OSMC *** <s>Raspyfi</s> => Volumio @endmindmap
http://plantuml.com/ja/mindmap-diagram
このコードをplantumlのプラグインをインストールしたvscodeに貼ると...エラー...
たぶんplantumlのバージョンが古い
なので自力でバージョンを上げてvscode上でマインドマップが書けるようにします
前提条件
vscodeにPlantUMLプラグインがインストールされていてクラス図等が書ける
最新のjarをDLする
下記リンクから最新版のjarをDLして任意の場所に置く
ダウンロードのページ
vscodeに設定する
cmd + ,
- 設定の検索に
plantuml jar
と入力 - ヒットした中から
Plantuml: Jar
を探す - 入力欄に先ほどDLしたjarのパスを書く
確認
さっきエラーになったコードをプレビューすると、ちゃんと表示されました。
まとめ
vscodeに最新のplantumlを適用してマインドマップが書けるようになりました
最新のplantumlはマインドマップ以外にもガントチャートやWBSが書けるっぽいから使ってみよう。
適当にmybatis用テンプレつくーる
風邪をひきました
そんな中コードを書いたらミスしまくりでイライラした
特にミスが多かったのがmybatis用に書くSQL文
1つのテーブルにINSERTしたりSELECTしたりするだけなんだけど。。
テストが全然通らない
カンマが多いだの、少ないだの、そんなカラム名ねぇ〜よだの、型違うだの
うぜーー
てことでCreateTable文から適当にmybatis用のテンプレを作ってくれるやつ作った
https://naosim.sakura.ne.jp/app/mybatistool/
相当テキトーだから自分のプロジェクトの書き方じゃないと動かないと思う
とりあえず雰囲気だけお楽しみください
javaのStream#map()とjsのArray#map()は実行順が違う
java8から追加されたmap
他の言語にも似た機能はありますが実行順が違うので備忘録的なメモ
javaのmap
Stream.of(1, 2, 3, 4, 5) .map(v -> { System.out.printf("%dに1を加える\n", v); return v + 1; }) .map(v -> { System.out.printf("%dを2倍する\n", v); return v * 2; }).forEach(v -> System.out.println(v));
jsのmap
[1, 2, 3, 4, 5] .map(v => { console.log(`${v}に1を加える`); return v + 1; }) .map(v => { console.log(`${v}を2倍する`); return v * 2; }) .forEach(v => console.log(v));
パっと見、まったく同じに見えますが実行してみると結果が違います
javaの実行結果
1に1を加える 2を2倍する 4 2に1を加える 3を2倍する 6 3に1を加える 4を2倍する 8 4に1を加える 5を2倍する 10 5に1を加える 6を2倍する 12
jsの実行結果
1に1を加える 2に1を加える 3に1を加える 4に1を加える 5に1を加える 2を2倍する 3を2倍する 4を2倍する 5を2倍する 6を2倍する 4 6 8 10 12
結果的に生成されるリストは同じですが実行順が違います
気をつけないと間違えそうですね
carloでHTTP通信してみる
- carloとは
- 疑問 クロスドメインなサイトにajaxでHTTP通信できるの?
- 1. hello world
- setup
- htmlを作る
- index.jsでhtmlを読み込む
- 起動
- 2. UIからnodeを呼ぶ
- index.jsに呼ばれる側を作る
- htmlからnodeを呼ぶ
- 実行
- 3. node-fetchで通信する
- node-fetchのインストール
- nodeに通信部分を実装する
- UIから呼び出す
- 実行
- まとめ
- 追記
- index.js
- inde.html
- セキュリティには気をつけろ
carloとは
Carloは、ノードアプリケーションにGoogle Chromeのレンダリング機能を提供し、Puppeteerプロジェクトを使用してローカルにインストールされたブラウザインスタンスと通信し、ノードとブラウザ間の通信のためのリモート呼び出しインフラストラクチャを実装します。
ポイントは「ローカルにインストールされたブラウザインスタンスと通信」の部分。 ローカルのchromeを使うから必然的にバイナリサイズが小さくなる。
続きを読むドメイン駆動設計なエンジニアの育成プログラムを作った
この記事は Engineering Manager vol.2 Advent Calendar 2018 - Qiita の16日目の記事です。
今の会社にはチームにジョインした方に対してドメイン駆動設計での開発ができるように育成するプログラムがあります。
「プログラムがある」と言っても有志で持ち回りでやってるちょっと真面目な勉強会のようなものです。
それを私がやることになったので、今日はその時に考えたことを書きます。
身の回りに勉強会等開いてくれる人がいたら「あの人はこんな感じのことを考えてるのかー」と思ってもらえたら幸いです。
誰?
- 名前: なおしむ
- 某ISPでエンジニアをしている
- 最近は新しく来た人の育成もしている
背景
- 現在のプロジェクトはビジネスの特性上、市場変化に対応しつつバグのない開発が求められている
- そのために内製 + ドメイン駆動設計(DDD)で開発している
- リンクいろいろ
- 「内製xDDD」の規模は5人x10チームで50人くらい
- エンジニアは随時募集しているがDDDを経験済みのエンジニアは少ないため、メンバーがジョインしてから育成している
- メンバーがジョインしたときにやる育成プログラムが本題の「DDDスタート塾」です
DDDスタート塾とは?
- 新しく来た人が最初に入る塾
- 塾の講師は「塾長」と呼ばれる
- チャットルームのアイコンはこれ
- 塾の期間はだいたい4週間
- 塾の受講者はだいたい4人くらい
- 塾自体はずっと前からあったが、私は塾長をやったことがなかったので今回引き受けてみた