dackdive's blog

新米webエンジニアによる技術ブログ。JavaScript(React), Salesforce, Python など

JavaScript

@octokit/rest.jsのテスト用モックサーバー(@octokit/fixtures-server)のしくみ

@octokit/rest.js は GitHub 社が提供する公式の REST API クライアントライブラリです。 以前この@octokit/rest.js のアーキテクチャがどうなっているか調査した 際、テストに @octokit/fixtures-server という別のパッケージが使われていることまではわか…

@octokit/restのアーキテクチャについて調べた

良いREST APIクライアントの設計というものに関心があり、GitHub社の公式REST APIクライアントである @octokit/rest のコードを読んでみたメモです。 (ドキュメントは https://octokit.github.io/rest.js/) 知りたかったこと 漠然と、こういう疑問に対してな…

「Google API Expertが解説するClosure Libraryプログラミングガイド」を読んだ

業務で Closure Library を使うので読んだ。 正確には、最後まで写経しながら読み進めようと思ったけど第5章あたりで挫折して、第6章以降はさっと目を通す程度になってしまった。 Google API Expertが解説する Closure Libraryプログラミングガイド作者:伊藤…

Google Closure CompilerとかGoogle Closure LibraryなどのClosure Tools概要まとめ

Google Closure ○○ シリーズが多くてわからん、となったのでメモ。 主に Closure Compiler と Closure Library を中心に。 総称として Closure Tools と呼ぶらしいです。ここにまとまってます。 またソースコードはすべて GitHub で公開されている模様。 htt…

Vim+ALEでファイル保存時にPrettierを実行する

メモ。 Prettier という JavaScript のフォーマッターをファイル保存時に自動的に実行する、というのを Vim でやりたい。 特に自分は ESLint や Flow のチェックに ALE というプラグインを使っているため (参考:VimでESLintとFlowを使うためにNeomakeからA…

Numeral.jsのlocaleを変更して桁区切り文字をカンマからピリオドにする

日本だと桁区切り文字は,(カンマ)、小数点は. (ピリオド)だけど世界的に見ると国によって異なる。 世界各国での数字の区切り方 | コリス JavaScript で数値を扱うときには Numeral.js を使っていたんだけど、Numeral でも(Moment.js などと同じく)loca…

Salesforce:JavaScript Remoting(@RemoteAction)をPromiseで扱う

はじめに Visualforce で Angular や React などの JavaScript ライブラリを使ったアプリケーションを作ろうと思った場合、 Apex で定義したメソッドの実行には JavaScript Remoting を使うのが一般的かと思います。 似たようなことを実現するための手段とし…

FlowtypeのUtility TypesでESLintエラーを出さないようにする

ちょいメモ。 Flowtype の Utilty Types を使っていて type Exact<T> = T & $Shape<T>; などと書いたら ESLint でエラーになった。 error '$Shape' is not defined no-undef eslint-plugin-flowtype は導入済みで、各バージョンは以下の通り。 $ npm list --depth=</t></t>…

npm installしたパッケージの更新確認とアップデート(npm-check-updates)

タイトルの通り。 npm install --save なり --save-dev なりして package.json に書き込まれたパッケージのバージョン、どうやって定期的にアップデートしていけばいいかわからなかったので。 新しいバージョンがリリースされているかどうかの確認と、実際に…

package.jsonのパッケージバージョンに記載される ^ (キャレット) とは?どうしてつくのか?

$ npm install --save react などのコマンドでパッケージをインストールすると、package.json にはインストールした(その時点での最新)バージョンが記載されますが そのとき "dependencies": { "react": "^15.3.2" } というように、バージョン番号の前に ^…

Hubotに管理画面のような静的ページを追加する

メモ。 ブラウザから /admin にアクセスしたら管理画面みたいなものが開いて Bot の簡単なカスタマイズができる、みたいなことがやりたくて 特定の URL で静的なページを返すようなことができるのか調べてみました。 結論から言うと robot.router が Express…

Slackのチャンネルのメンバーからランダムで一人選ぶBotを作る

タイトルの通り。 GitHub の PR のレビュアーを、開発チームの特定のメンバー数名から一人指名したい 開発チームの一部のメンバーで持ち回りでやらないといけないタスクがあって、毎回誰がやるか決めるのめんどい といったことがあって、せっかくなので bot …

JavaScript(ES2015&React)で画像を扱う:リサイズとプレビュー表示

はじめに web サイト/アプリケーションで画像のアップロード機能などを実装する場合、 最近のスマホのカメラで撮影した画像はサイズが数 MB にも及ぶので、あらかじめクライアント側で送信可能なサイズまで縮小する必要があります。 今回はそのような画像の…

HubotをES2015で書いてHerokuにデプロイする

今さらながら Slack bot を作りたくて、フレームワークは Hubot を選んだ。 Hubot はそのままでは CoffeeScript で書く必要があるんだけど、ES2015 もやっと覚えたばかりなのに CoffeeScript の勉強はしたくない。 ということで、ES2015 で書くための手順を…

ES2015時代のJavaScriptテストツールまとめ

最近になって JavaScript を勉強中です。 ES2015 と React にもちょっとずつ慣れてきましたが、テストについては Karma とか mocha とか名前は聞くけど何が何なのかよくわかってなかったので、軽く整理してみます。 JavaScript テストツールの大まかなカテゴ…

WEB+DB PRESS Vol.87のECMAScript 6特集を読んだ(+TypeScript)

特集1の「今すぐ活かす! 最新JavaScript 進化した仕様ECMAScript 6をまるごと解説」を読んでES6(またはES2015)について勉強している。 WEB+DB PRESS Vol.87作者:佐藤 鉄平,小林 明大,石村 真吾,坂上 卓史,上原 誠,鳥居 英,佐藤 歩,泉水 翔吾,うさみ けん…

[JavaScript]D3.jsを触ってみた

秋のJavaScript祭りに参加しました。 その中のセッションで紹介されていたD3.jsというJavaScriptライブラリを触ってみたのでちょいとメモ。 セッションスライドはこちらです。 D3.jsでのデータビジュアライゼーション -人口統計データから使い方を学ぶ-

[dojo]dojo.onでthis.[変数名]がundefinedになる

前回の記事の続き。 dojoでカスタムウィジェットを作成するチュートリアルを読んでいたけど マウスオーバー時のアクションの部分でundefinedエラーが発生していた。 該当のコードはこんな感じ。 // colors for our background animation baseBackgroundColor…

[dojo]カスタムウィジェットを作成する

公式ドキュメントのうち、こちらのページの内容を一通り学習してみる。 Creating a custom widget - Archived Tutorial - Dojo Toolkit Dojoのバージョンは1.7.2。 Dojoはチュートリアルが充実しているんだけど 最終的なソースコードをフルで書いてくれてい…

[dojo]dojoConfigの主なパラメータまとめ

ほぼほぼ、このへんの内容をまとめたものです。 Dojo道場 ~ 第11回「Dojo 最新動向 - Asynchronous Module Definition」 (5/5):CodeZine(コードジン) Configuring Dojo with dojoConfig - Archived Tutorial - Dojo Toolkit dojo.config (dojo/_base/con…

Browser.msgBox内で改行する方法

なかなか検索しても出てこなかったのでメモ。結論からいうと、 \\nでできる。\を2つ重ねるのがポイント。\を2つ重ねる、というのはどこかのサイトで見かけたんだけど それでもいっこうに改行できないなーと思って良く見たら \でなく ¥になっていた。 PCはm…

dojo.Stateful のwatchメソッドを学ぶ(書きかけ)

dojoにおいて、特定のプロパティが変更されたことを監視し、値の変更をトリガーとして何かイベントを実行させたい場合に使うらしい。以下、簡単な使用例(Dojo道場 ~ 第10回「Dojo 最新動向 - Dojo 1.6」 (2/3):CodeZine(コードジン)から) dojo.require…

dojox.datagridで全itemを取得する方法

選択中のitemすべて取得するには grid.selection.getSelected() とリファレンス(http://livedocs.dojotoolkit.org/dojox/grid/DataGrid)にも書いてるけど、 そうじゃなくてグリッドに表示されてるitemを全部取得する方法。結論から言うとこの方法でとりあ…