今年はわりとたくさんLTをしてきました。
ここにあるものは一部で、技術関係ないものも結構やりました。以前の日記で書きましたが、Yahoo! JAPANのイベントで開催2時間前にネタを考えて、スライドなしの飛び入りLTなんてものをやったことも。
勉強会でLTをする人もいるかと思いますので、普段心がけている役に立つ(かもしれない)ポイントをいくつか紹介。
いろんな人が「LTのコツ」みたいな記事を書いてくれていますので、なるべくあまり書かれていないことを紹介します。「自己紹介は短く」なんてのは鉄板なのであえて書きません。
LTに限らず、もっと長めの発表や研究発表でも使える部分はたくさんあるとおもいます。
え?LTって何かって?ほら、アレだ。ライトニングトーク(英: Lightning Talks)とはカンファレンスやフォーラムなどで行われる短いプレゼンテーションのことなんですよ。様々な形式があるが、持ち時間が5分という制約が広く共有されているんです。
2018年12月23日日曜日
Web APIの逆引きステータスコード
Web APIでは、呼び出しに失敗した場合にステータスコードでエラーの種類を返します。
それぞれのステータスコードの意味はMDN等でよくまとめられていますが、逆に「どんなエラーのときにどのステータスコードを返せばいいのか」という情報はあまりありません。
そこで、逆引きリファレンスとしてまとめてみました。
それぞれのステータスコードの意味はMDN等でよくまとめられていますが、逆に「どんなエラーのときにどのステータスコードを返せばいいのか」という情報はあまりありません。
そこで、逆引きリファレンスとしてまとめてみました。
2018年12月16日日曜日
クライアントとサーバーで共有できるコード
Node.jsでウェブサービスを開発するとクライアントとサーバーで同じ言語(JavaScript)を使うことになるわけですが、そうなると当然考えるのが「言語が同じだったらコードも共通化できるんじゃね?」ということ。
でも、クライアント用のコードとサーバー用のコードは基本的に言語が同じだけの別物と考えたほうがよく、あまり共有できるものがなかったりします。
それでは悔しいので、共有できそうなコードをピックアップしてみました。
でも、クライアント用のコードとサーバー用のコードは基本的に言語が同じだけの別物と考えたほうがよく、あまり共有できるものがなかったりします。
それでは悔しいので、共有できそうなコードをピックアップしてみました。
2018年12月9日日曜日
2018年12月2日日曜日
Chromiumのビルド高速化@Gentoo Linux
Gentoo Linuxを使っていて面倒なのがブラウザのアップデート。
CPUをフル稼働するから他に何もできないし、特にChromiumは丸一日くらいかかります。
そのせいで、先日の東京Node学園祭はわりと焦るハメになりました。
そしてまたもアップデート(70.0.3538.110)がありました。
なぜか今回は三日三晩かけても終わらない。
というわけで今日はビルド高速化のお話です。
CPUをフル稼働するから他に何もできないし、特にChromiumは丸一日くらいかかります。
そのせいで、先日の東京Node学園祭はわりと焦るハメになりました。
そしてまたもアップデート(70.0.3538.110)がありました。
なぜか今回は三日三晩かけても終わらない。
というわけで今日はビルド高速化のお話です。
2018年11月25日日曜日
東京Node学園祭2018に登壇したけど質問ある?
先日報告した東京Node学園祭2018(11/23-24) に行ってきました。
iOSDC JAPAN 2018は急用で欠席、builderscon tokyo 2018はチケットを購入していなかったため辞退という散々な結果でしたが、3回目にしてようやく参加できました。
ただし、例によっていろいろなハプニングが…
iOSDC JAPAN 2018は急用で欠席、builderscon tokyo 2018はチケットを購入していなかったため辞退という散々な結果でしたが、3回目にしてようやく参加できました。
ただし、例によっていろいろなハプニングが…
2018年11月18日日曜日
2018年11月11日日曜日
2018年11月4日日曜日
2018年10月28日日曜日
1週間使用した結果…
先週、今冬の静電気対策の記事を書きました。
今まで放電グッズは腕に巻くヘアゴムみたいなやつしか使っていませんでしたが、体に溜まった静電気を放電してくれた試しがないので今回は別のものにしました。
一方の金属部分を握って、もう一方をドアノブとかの金属に近づけると静電気が溜まっていたらフィラメントが光るやつ。なんかめっちゃ効果ありそう。
邪魔にならないようにズボンに取り付けて、必要なときにスッと取り出す。なんだかカコ (・∀・)イイ!!
これを1週間使ってみたので報告します。
- 放電グッズ
- リール
今まで放電グッズは腕に巻くヘアゴムみたいなやつしか使っていませんでしたが、体に溜まった静電気を放電してくれた試しがないので今回は別のものにしました。
一方の金属部分を握って、もう一方をドアノブとかの金属に近づけると静電気が溜まっていたらフィラメントが光るやつ。なんかめっちゃ効果ありそう。
邪魔にならないようにズボンに取り付けて、必要なときにスッと取り出す。なんだかカコ (・∀・)イイ!!
これを1週間使ってみたので報告します。
2018年10月21日日曜日
2018年10月14日日曜日
2018年10月7日日曜日
結果報告 3/3
3つの大規模カンファレンスの3つめ、東京Node学園祭2018の結果が出ました。
1つめのiOSDC Japan 2018は採択されたけど急遽不参加、2つめのbuilderscon tokyo 2018はチケットを購入するのを忘れて応募取り消しという、1勝1分0参加というよくわからない結果です。今回は果たして。
1つめのiOSDC Japan 2018は採択されたけど急遽不参加、2つめのbuilderscon tokyo 2018はチケットを購入するのを忘れて応募取り消しという、1勝1分0参加というよくわからない結果です。今回は果たして。
2018年9月30日日曜日
【Docker】コンテナ起動時に一般ユーザ権限でコマンドを実行したい
…ってことありませんか?
システムの初期化するとか初期設定するとかイニシャライズするとか。
普通の物理マシンや仮想マシンならナンボでも方法はあるんですが、Dockerにはブートという概念がないのでちょっとハマりました。
システムの初期化するとか初期設定するとかイニシャライズするとか。
普通の物理マシンや仮想マシンならナンボでも方法はあるんですが、Dockerにはブートという概念がないのでちょっとハマりました。
2018年9月23日日曜日
2018年9月16日日曜日
RFC3986に準拠したURI検証用正規表現
以前、可能な限りRFCに準拠したEメールアドレス検証用正規表現という記事を投稿しました。
今度はそのURLバージョン、RFC3986に準拠したURIの正規表現を作ってみました。
前回と違い、可能な限りではなく完全準拠です。多分。
今度はそのURLバージョン、RFC3986に準拠したURIの正規表現を作ってみました。
前回と違い、可能な限りではなく完全準拠です。多分。
2018年9月9日日曜日
2018年9月2日日曜日
2018年8月26日日曜日
入力データの検証場所に関する議論
Webアプリケーションに限らず、ほぼ全てのアプリケーションでは外部からの入力値のバリデーション(検証)が必要です。
いわゆるMVCアーキテクチャでは、それをControllerでやるのか?Modelでやるのか?についての議論が度々俎上に載ります。
今回はそれについての私見を。
いわゆるMVCアーキテクチャでは、それをControllerでやるのか?Modelでやるのか?についての議論が度々俎上に載ります。
今回はそれについての私見を。
2018年8月19日日曜日
2018年8月12日日曜日
2018年8月5日日曜日
2018年7月29日日曜日
2018年7月22日日曜日
2018年7月15日日曜日
2018年7月8日日曜日
2018年7月1日日曜日
和楽器展示会
6/29にNode学園 31時限目に参加・登壇してきました。
それはいいとして、翌日会場の近辺を散策していると、こんなものを見つけました。
和楽器展示会。
和楽器に関しては完全なる無知なので、この機会に見てみようとフラフラ立ち寄ってみました。
それはいいとして、翌日会場の近辺を散策していると、こんなものを見つけました。
和楽器展示会 |
和楽器展示会。
和楽器に関しては完全なる無知なので、この機会に見てみようとフラフラ立ち寄ってみました。
2018年6月24日日曜日
2018年6月17日日曜日
【Node.js】adjuster v0.9.0を公開しました。
先週はいろいろバタバタしていたので記事を更新できませんでした。申し訳ない。
さて、先日このブログでフライング紹介した入力値調整ライブラリnode-adjuster(npmのパッケージ名はadjuster)の最新情報をまたまたフライング紹介しちゃいます。
さて、先日このブログでフライング紹介した入力値調整ライブラリnode-adjuster(npmのパッケージ名はadjuster)の最新情報をまたまたフライング紹介しちゃいます。
2018年6月3日日曜日
2018年5月27日日曜日
【Node.js】入力値調整ライブラリ"adjuster"のフライング紹介
ウェブアプリケーションを作っていると、入力値の型とか値のバリデーションをしたいときありますよね。
そして、バリデーションだけじゃなくて状況に応じていい感じにデフォルト値をつけたり、上限下限に収まるように数値を調整したくなるときありますよね。
そんなあなたに朗報です。
そして、バリデーションだけじゃなくて状況に応じていい感じにデフォルト値をつけたり、上限下限に収まるように数値を調整したくなるときありますよね。
ありますよね?
そんなあなたに朗報です。
2018年5月20日日曜日
【Node.js】BigIntの追加情報2つ
先月Node学園 30時限目に登壇したときの記事を書きましたが、登壇時には時間の都合上カットした、BigIntとbig-integerの比較記事をQiitaに書きました。
JavaScriptの任意精度整数: BigInt vs big-integer
はい、今更ですね。
これが1つめです。
JavaScriptの任意精度整数: BigInt vs big-integer
はい、今更ですね。
これが1つめです。
2018年5月13日日曜日
可能な限りRFCに準拠したEメールアドレス検証用正規表現 完全版
以前、可能な限りRFCに準拠したEメールアドレス検証用正規表現を紹介しました。
記事中にも書いてあるとおり、あの正規表現はIPアドレスを性格に判定できませんでしたが、今回その欠点を解消した完全版をお届けします。
記事中にも書いてあるとおり、あの正規表現はIPアドレスを性格に判定できませんでしたが、今回その欠点を解消した完全版をお届けします。
2018年5月6日日曜日
【Node.js】ひらがな→ローマ字変換
とある事情でひらがなをローマ字に変換する必要があったので、ちょっとコードを書いてみました。
仕様はこんなかんじ。
仕様はこんなかんじ。
- ヘボン式
- 単独の「ぁ」「っ」「ゎ」などは、xをつける(
xa
/xtsu
/xwa
) uu
やou
やoo
などはそのまま(「とうきょう」→toukyou
)- ひらがな以外の文字は変換しない
2018年4月29日日曜日
2018年4月22日日曜日
可能な限りRFCに準拠したEメールアドレス検証用正規表現
2018年4月15日日曜日
ヤフーでライトニング手品してきたけど質問ある?
何がなんだかさっぱりわからないタイトルですが、まあ気にしないでください。
4/5にYahoo! JAPAN OsakaでLT会がありました。
テーマは「新○○」だったので、とりあえず「新ネタ」を披露しようとLTに応募。
なんやかんやで発表が終わって…
ヤフーの中の人に「ライトニング手品」と命名されました。
4/5にYahoo! JAPAN OsakaでLT会がありました。
テーマは「新○○」だったので、とりあえず「新ネタ」を披露しようとLTに応募。
なんやかんやで発表が終わって…
ヤフーの中の人に「ライトニング手品」と命名されました。
2018年4月8日日曜日
【英語】前置詞ってむずかしい。
突然ですが、「土曜日にパーティーやるよ!」って英語でどう言いますか?
いや、別に本当にやるわけじゃないですけど。
正解は "We're having a party on Saturday!" です。
いや、別に本当にやるわけじゃないですけど。
正解は "We're having a party on Saturday!" です。
2018年4月1日日曜日
2018年3月25日日曜日
【Node.js】64bitの16進文字列→10進文字列
タイトルのとおりです。
もともとはNode.jsでランダムな64bit整数を作りたかったんですが、JavaScriptの数値型では整数は2^53までしかサポートされていないので数値じゃなくて10進文字列で取得しようとしたんです。
別に四則演算を全部やりたいわけではないので、自分で作れるんじゃね?と思いました。
もともとはNode.jsでランダムな64bit整数を作りたかったんですが、JavaScriptの数値型では整数は2^53までしかサポートされていないので数値じゃなくて10進文字列で取得しようとしたんです。
別に四則演算を全部やりたいわけではないので、自分で作れるんじゃね?と思いました。
2018年3月18日日曜日
GPLのソフトウェアをサーバサイドで使う場合の著作権表示について
GPLのライブラリをサーバサイドで使う場合、ソースコード公開義務はないという解釈が一般的です。
ただ、著作権表示に関してはどうなのよ、というのは今まであまり深く考えたことはありませんでしたので条文を読んで解釈してみます。
なお、本記事ではGPL自体の是非や「抜け道」を使うことの是非については論じません。また、GPLのバージョンは本質的な問題ではありませんが、一応解釈する文書はGPLv3です。
多分他のオープンソースライセンス(AGPL以外)でも同様だと思います。
そして、この解釈が正しいことを保証しません。この解釈が間違っていたとしても一切責任を負いませんのでご了承ください。
(むしろ間違っていたら教えてください)
ちょい長いので、結論だけ知りたい人はシュパッとスクロールして「結論」を見てください。
ただ、著作権表示に関してはどうなのよ、というのは今まであまり深く考えたことはありませんでしたので条文を読んで解釈してみます。
なお、本記事ではGPL自体の是非や「抜け道」を使うことの是非については論じません。また、GPLのバージョンは本質的な問題ではありませんが、一応解釈する文書はGPLv3です。
多分他のオープンソースライセンス(AGPL以外)でも同様だと思います。
そして、この解釈が正しいことを保証しません。この解釈が間違っていたとしても一切責任を負いませんのでご了承ください。
(むしろ間違っていたら教えてください)
ちょい長いので、結論だけ知りたい人はシュパッとスクロールして「結論」を見てください。
2018年3月11日日曜日
2018年3月4日日曜日
2018年2月25日日曜日
2018年2月18日日曜日
【Node.js】Node学園 29時限目に登壇してくるけど質問ある?
今週の木曜に開催されるNode学園 29時限目。
イベントが発表されたときから参加しようと思っていたのですが、先週ふと思い立ちました。
さっそく主催の2人に「LT枠空いてる?」と連絡を取ったところ、「15分枠ならね!」とお返事が。
節子、それLT枠やない。一般枠や。
いやいやそれでもせっかくのチャンス。なんとかして15分しゃべります。おたのしみに。
イベントが発表されたときから参加しようと思っていたのですが、先週ふと思い立ちました。
どうせなら登壇してやれ。
さっそく主催の2人に「LT枠空いてる?」と連絡を取ったところ、「15分枠ならね!」とお返事が。
( ゚д゚)?
節子、それLT枠やない。一般枠や。
いやいやそれでもせっかくのチャンス。なんとかして15分しゃべります。おたのしみに。
2018年2月11日日曜日
【Node.js】リソースマネージャーといふもの
これまで、Node.jsでリクエストが切断されたときの処理、レスポンス完了後の処理について説明してきました。
そこから導き出されたのは、PerlとかPHPと違って、リソースは勝手に解放されないからちゃんと解放しろよというもの。
正確には言語の違いというよりアーキテクチャの違いですけどね。
そして前回、Node.jsのリクエスト内でリソースを保持する方法と解放の仕方を説明しました。
今回はこれまでのまとめとして、前回の最後に書いた「リクエストが飛ぶと問答無用でリソースを確保するんじゃなくて、必要なときにだけ確保するには?」の実装例(間違いと正しい作法)を解説します。
そこから導き出されたのは、PerlとかPHPと違って、リソースは勝手に解放されないからちゃんと解放しろよというもの。
正確には言語の違いというよりアーキテクチャの違いですけどね。
そして前回、Node.jsのリクエスト内でリソースを保持する方法と解放の仕方を説明しました。
今回はこれまでのまとめとして、前回の最後に書いた「リクエストが飛ぶと問答無用でリソースを確保するんじゃなくて、必要なときにだけ確保するには?」の実装例(間違いと正しい作法)を解説します。
2018年2月4日日曜日
【Node.js】おまいらちゃんとリソース解放してますか
先月の記事で、クライアントからの接続が途中で切れても、レスポンスを返し終わっても、処理自体はまだ続くことがわかりました。つまり、こんな注意が必要。
従来のスクリプト系言語では、リソースはリクエストの処理が終わったら勝手に解放されるから特に何もしなくてよかったりします。
その感覚でNode.jsを触ると、知らないうちにDBの接続数が異常に増えていたりします。
さて、どう対処しましょうか。
- (意図しない)無限ループのようにCPUを専有する処理があった場合、クライアントからの接続を切っても専有が解除されるわけではない。つまりそういう処理を作り込んでしまったらどうしようもない。
- DBの接続やファイルハンドルのようなリソースは、処理完了時にきちんと解放する必要がある。
従来のスクリプト系言語では、リソースはリクエストの処理が終わったら勝手に解放されるから特に何もしなくてよかったりします。
その感覚でNode.jsを触ると、知らないうちにDBの接続数が異常に増えていたりします。
さて、どう対処しましょうか。
2018年1月28日日曜日
2018年1月21日日曜日
2018年1月14日日曜日
【Node.js】クライアントからの接続が切れたリクエストはどうなるのっと
ブラウザでアクセスしたページの応答が遅かった場合、タブを閉じたりして接続を切るじゃないですか。その後のサーバ側の動作がふと気になったので調べてみました。
いわゆるLAMPスタックのように、1リクエストに1プロセスとか1スレッドを使うアーキテクチャの場合は簡単なんですよ。
プロセスやスレッドをぬっころすだけで全部終わるので。
Node.jsはシングルプロセス・シングルスレッドのイベント駆動だからいろんなリクエストのイベントハンドラやコールバック関数が混在(呼び出し待ち)しているわけで、その場合にうまく該当リクエストの関連イベントだけぬっころしているのかな、と。
いわゆるLAMPスタックのように、1リクエストに1プロセスとか1スレッドを使うアーキテクチャの場合は簡単なんですよ。
プロセスやスレッドをぬっころすだけで全部終わるので。
Node.jsはシングルプロセス・シングルスレッドのイベント駆動だからいろんなリクエストのイベントハンドラやコールバック関数が混在(呼び出し待ち)しているわけで、その場合にうまく該当リクエストの関連イベントだけぬっころしているのかな、と。
2018年1月7日日曜日
登録:
投稿 (Atom)