理系学生日記

おまえはいつまで学生気分なのか

javascript

npm auditのaudit-levelとCVSSの関係

npm auditにはaudit-levelオプションがありますが、このオプションで渡せるSeverityとCVSSにはどのような関係があるのでしょうか。 この興味が湧いたのは、運用設計においてどの程度のCVSS値を持つ脆弱性から真剣に対応するかを定めようとしているからです。…

クライアントサイドJavaScriptとOSSライセンスの関係、及び、その自動チェック

多くのライブラリにはライセンスが付属しています。 利用する側は、当然このライセンスに定められた条件を満たさねば、当該ライブラリを使うことができません。 多くのライセンスでは「頒布」(distribution) 行為に対して条件を課しています。そして、この「…

AWS SDK for JavaScript v3のGetObjectCommand、TypeScriptで使いにくくないか?

S3上にあるオブジェクトの内容をTypeScriptで読み込みたい、こういうユースケースは多数あります。 自身としては今回初めて、AWS SDK for JavaScript v3の@aws-sdk/client-s3を使って実装してみました。 そこで感じたのは、GetObjectCommandまわりのインタフ…

特定ディレクトリ配下にあるすべて package.json について yarn install を実行する。ただし node_modules 配下のものは除く

開発プロジェクトには便利ツールみたいなものを作って生産性アップの夢を見ることが多いです。 いまのプロジェクトでもその例外に漏れず、WIndows と Mac の二者がいるということもあって、node.js で CLI ツールを作っています。 そこで抱えている課題は、…

Electron から native module を使うときの NODE_MODULE_VERSION のエラー

Electron でとある node のモジュールを使おうと思ったら (snip) hoge.node' was compiled against a different Node.js version using NODE_MODULE_VERSION 45. This version of Node.js requires NODE_MODULE_VERSION 64. Please try re-compiling or re-i…

Vue.jsのslot-scopeは振舞いを抽出するのに便利なのか

Vue.js の slot-scope、なかなか理解できなかったのですが、ようやく得心に至りました。 slot-scope、振舞いを抽出するのに便利なのか。 TODOリストの個々の要素への処理 実行例 完了済の TODO のみ出力 実行例 というわけで TODOリストの個々の要素への処理…

食わず嫌いだったVue.jsが結構おもしろかった

WebSocket を使う一環で React とか Vue.js とか流行りのヤツを調べたりしていたのですが、特に Vue.js がやたらおもしろいです。 コンポーネント ソース 双方向バインディング 算出プロパティ JSX コンポーネント たとえばこれ、クソ簡単な文字カウンタのコ…

ブラウザから印刷ダイアログなしで印刷したい

Web ページに「印刷」ボタンを用意してボタン押下したらそのまま自分のオフィスで印刷したいんだという要望はよくあるわけですが、印刷ダイアログを飛ばしてそのままプレビューや印刷をしたいという要望が生じるケースがあります。印刷ダイアログで OK ボタ…

PhantomJS ではてなにログインしたけど挙動が不明な件について

PhantomJS は、公式サイトで以下のように説明されています。 PhantomJS is a headless WebKit with JavaScript API. It has fast and native support for various web standards: DOM handling, CSS selector, JSON, Canvas, and SVG. PhantomJS - Scriptabl…

readitlater.js でエラーが発生

Vimperator から Read It Later を使おうという readitlater.js ですが、:ril get でエラーがでる。具体的には ListCache に update というメソッドが定義されていないという例外が出ている模様です。 ListCache は、内部的に Read It Later のエントリのリ…

v キーで RILDrize の pin を消化せずにエントリを開く

diff --git a/rildrize.user.js b/rildrize.user.js index 2c97da1..b2e018a 100644 --- a/rildrize.user.js +++ b/rildrize.user.js @@ -15,6 +15,7 @@ const KEY_NEXT = 's'; const KEY_PREV = 'a'; const KEY_REMOVE = 'x'; + const KEY_VIEW = 'v'; // c…

JavaScript パターン

ファーストインプレッションとしては、Perl Best Practice に似た Practical Tips をまとめたプログラミング本かと思って読み進めた*1ところ、最終的にはむしろクックブックに近いなという印象を受けました。ただし、主題はプログラムに出てくるパターンであ…

fraddict-rate を表示する UserScript

こんにちは、体調不良で会社を休んでいるぼくです!!!!!!!! いつも元気なぼくでも、今日という日は吐き気に負けてて、なんか吐いたり吐かなかったりを繰り返してるかんじです。このように、ぼくという存在はかくも脆く儚いものですから、みなさんはガ…

RILDRize 更新

https://github.com/kiririmode/rildrize 更新点としては以下の 2 点です。 ピンを立てた記事のエントリを開くことなく消去するときに、合わせてピン情報も消去するようにした リロードの動作を変更 ピンを立てたエントリを開くことなく消去するときに、合わ…

いきなりですが修正はいりました。

おはずかしいかぎりです。 https://github.com/kiririmode/AlreadyHatenaBookmarked $ git diff HEAD~2 HEAD diff --git a/alreadyhatenabookmarked.user.js b/alreadyhatenabookmarked.user.js index 07247aa..bb797ee 100644 --- a/alreadyhatenabookmarke…

ブラウジング中のページがブックマーク済かを表示する Greasemonkey UserScript

つくった。 https://github.com/kiririmode/AlreadyHatenaBookmarked 概要 今ブラウジング中のページを既にはてなブックマークしているかを表示する UserScript です。 需要 ぼくは、見ているページをブクマするとき、Tombloo という Firefox Addon を使って…

現在のページ番号を永続化する

Read It Later 上の現在のページが、リロード後、あるいは再訪問時に引き継がれるようにしました。localStorage を使ってみたかったのですが、UserScript からは unsafeWindow 経由じゃないと呼び出せないんですかね。いざ呼び出そうとすると、例外が発生し…

RILDRize へ進む、戻る機能追加した

Read It Later は 1 画面 10 エントリしか表示できなくて、それ以降のページを表示したいときとかは、基本やっぱしマウス操作になってしまいます。これはメンドい。メンドくさいことで限りある寿命を縮めるわけにはいかない。そういうわけですので、s キーで…

さっそく RILDRize を更新しました

今日つくりはじめて今日 commit した、Read It Later に pin 機能を追加する UserScript (RILDRize) ですが、いきなし更新が入りました。Read It Later では、一度にエントリを 10 個表示します。そしてエントリを読む(既読化する)毎に、未読エントリのみが…

Read It Later に pin 機能を追加する UserScript

Read It Later を Livedoor Reader 的に使えるようにする UserScript を書いたでござる!!!!!!! http://userscripts.org/scripts/show/92470 https://github.com/kiririmode/rildrize j: フォーカスを下に移動 k: フォーカスを上に移動 p: フォーカスのあるエ…

Read It Later 用 GreaseMonkey (2)

昨日の GreaseMonkey の UserScript は連続タブオープンができないという致命的なバグを抱えていたので修正した。 「o」の押下で 2 つの記事が開かれ、同時に既読になる。まったく関係ないけど blog に gist のコードスニペットを貼り付けるのは良いですね。…

Read It Later 用 GreaseMonkey (1)

Read It Later は便利な Web サービスですが、マウス操作前提なのがいただけない。記事を読むのに逐一クリックが必要になるし、既読化するのもクリックが必要になる。もちろん Vimperator を使えばキーボードで全て操作可能にはなるが、基本的には 2 キータ…

kiririmode のつぶやきなんて目の前から消せ!!

無駄に Twitter の tweet を mixi にも流す設定にしはじめたのですが、ぼくの tweet のペースって多いときで、日に 数十 tweets/日 です。 これは一般的に見るとそれほど多いペースではありませんが、mixi 的には多い。つぶやきページがポンデライオンのアイ…

サイ本の読み直しが始まりました

こないだの自家製 CDTube にダウンロード機能が実装されて、大変危険なかんじです。 そのダウンロード機能は、ボタンを押すと XHR がサーバに非同期で飛んでダウンロードが始まるかんじ、ぼくは久しぶりに JavaScript を書いた。JavaScript 書いたは良いんで…

Alc を使いやすくするグリモンを作ろうとしたがムダだった

Alc というと論文を書くときも,何か英語文献読むときも,鬼神のごとく大活躍をしてくれる素晴らしい英和・和英辞書機能を提供してくれて,ぼくは日々 Alc に感謝して,米を作ってくれる人に感謝しながら毎日を必死,それはもう必死で生きています.そんな日…

作りたい Ubiquity コマンドを作るために

あーなんか作りたい Ubiquity のコマンドがあって,それを作るためにはどうしたらいっかなーって考えてたり調べてたりしたんですけど,なんか JavaScript はもちろんだけど,やれ XmlHttpRequest やら JavascriptTemplates やら jQuery やらたくさん勉強する…

JavaScript の人が潔癖症だと思うとき

決してプロパティは追加しません,汚しませんという気合を Userscript 中に普通にみるとき. (function() { // いろいろ })();

オブジェクトの型変換フロー

数値コンテキストにおいて,オブジェクトからプリミティブ型への変換がどう行われるのかについて,ちょっと確かめてみたりしたのでした. var obj = { toString: function () { return "hello world"; }, valueOf: function () { alert( "valueOf" ); return…

人生初の GreaseMonkey Script

とりあえず,JavaScript でなんか作らないと良く分かんないよなーと思いましたので,急遽 GreaseMonkey のスクリプトを作ってみた!! xmlHttpRequest とか使ってみたかったんですが,まずは基本的なのを作らねばと,とりあえず見ているページに存在するのリン…

navigator.constructor の不思議

これ不思議じゃないですか? var navi = navigator; document.write( navi.constructor + "<br>" ); // prints "[object Navigator]" var agent = navigator.userAgent; document.write( agent.constructor ); // prints "function String() { [native code] }" …