銀の弾丸

プログラミングに関して、いろいろ書き残していければと思っております。

Node.js

JavaScriptで文字列のバイト数を得るにはどーする?

ブラウザのJavaScriptとNode.jsで文字列のバイト長を知る方法です。文字数ではありません。両環境で、やり方が違いますけど、統一コードについても書いています。

AWSでランダムな画像を返すURLを作りました(Stravaのワークアウトのシェアのため)

HTMLのIMG要素のSRC属性に設定しておけば、ランダムに画像を表示するURLです。 複数の画像をAWS S3のバケットに置いておき、CloudFront - API Gateway - Lambda Function というルートで画像を返します。

AWS S3 の putObject API でメタデータを設定する

AWSによるサーバーレスアーキテクチャposted with amazlet at 19.04.15Peter Sbarski 翔泳社 売り上げランキング: 157,672Amazon.co.jpで詳細を見る AWS S3 の putObject API でバケットにファイルをアップロードするときには、メタデータをきちんと指定して…

npmパッケージのダウンロード数をアカウント別に一括取得

npmのユーザーアカウントを指定して、そのアカウントが公開している全パッケージの直近ダウンロード数を一括取得するnpmを公開しました。

非同期Lambdaのコンテキストはどこ行った?

非同期Lambdaのひな型がasync関数になって引数リストが `event` ひとつになっています。従来第2引数で渡されていた context はどこに行ったのか?と調べてみた結果を書きました。

async / await の基本事項 ― やっぱりPromiseは無視できない

JavaScriptのES2017で使えるようになった async / await を理解するとき勘違いしそうな所をまとめてみました。結局Promiseを理解していないとコードを追いかけられないですよねという話でもあります。

ES6に対応した「grunt-contrib-uglify-es」を使用する

grunt-contrib-uglifyのES6対応版がgrunt-contrib-uglify-esという名で別途公開されてましたというお話。 速習ECMAScript6: 次世代の標準JavaScriptを今すぐマスター! 速習シリーズposted with amazlet at 18.03.22WINGSプロジェクト (2015-08-28)売り上げ…

DynamoDBをSQLで操作するNodeモジュール

Amazon DynamoDBをSQL的な記述言語(SQL-ish)で操作できるNodeモジュールのご紹介。最新版は v0.8.8 。SQLに小数点を含む数値を指定した時、正しく解釈できなかったバグを修正。

コンソールからGoogle OAuth2の認証を行う

photo credit: suzyhazelwood DSC04299-02 via photopin (license) コンソールから Node.jsを使って Google OAuth2 クライアントID による OAuth 認証のお試しコードを書いてみました。 日々の作業でGit BashやMSYS2を多用していますが、コンソールからGoogle…

C++でJsonを扱うクラスライブラリ jsonexpr

8月から支援に入った画像処理(リアルタイム・オブジェクト・トラッキング)プロジェクトの検証システムで、C++の本体からJSONを吐く必要がありまして、急いでやっつけたのですが、「そういや昔、C++でJSON扱うクラスライブラリ作ったね・・・」と思い出しま…

Node.js+Sqlite(npm sqlite3)のeachメソッドは中断できない

npm sqlite3で一件ずつレコードを読む Database#each または、Statement#each は途中で中断できません。代替手段は・・・

意外に悩ましい整数部分の四捨五入

photo credit: danmachold calculator via photopin (license) JavaScriptで整数部分を四捨五入する場合の注意点。桁落ちに気を付けましょうってお話です。 JavaScriptで、小数を整数に四捨五入するにはMath.roundを使いますね。 でもこれ、残念なことに桁数…

「プロミス地獄」に落ちないための基本事項

「コールバック地獄」からボクらを救ってくれた「Promise」ですが、ふと気が付けば、ちょっと種類の違う別の地獄に落ちてる場合がありますよと。 「なんだPromiseお前もかっ!」的な(笑) 「コールバック地獄」は見た目にネストが深くて「ダメだコリャ感」…

JavaScriptのラムダ式(アロー関数)は丸括弧で括らなければ即時実行できませんのね

Link: Flickr PAGE - CC BY 2.0 Node.jsで以下のようにラムダ式を即時実行していたのですが、ブラウザでは構文エラーとなって動かないんです。 (()=>{ console.log("これ動きません"); }()); まさかコレが動かないとか思いもよらず。 どう見直しても問題があ…

JavaScriptでマイクロ秒単位の定期処理を実行する(npm fractional-timer)

JavaScriptで1ミリ秒より短いインターバルタイマー処理を提供するモジュール fractional-timer のご紹介。 Link: Flickr PAGE - CC BY-SA 2.0 実際のところ、精度はよくありませんので、クリティカルな用途には向きません。 単純な処理をなるべく高速にタイ…

DynamoDB:条件式のプレースホルダを自動生成してみましょう

Amazon DynamoDBのテーブルをコマンドラインから操作する3つのコマンドをご紹介。 条件式で厄介なプレースホルダーを気にせずに使えるようにしています。

npm「list-it」― コンソールへ列を揃えてデータを表示

コンソールへ表形式での表示を支援するNode.jsのモジュールです。

npm 「hash-arg」 ― コマンドラインパラメータに名前でアクセス

コマンドラインで指定されたパラメータに名前でアクセスする為の、シンプルなNode.jsのモジュールをnpmで公開したので御紹介。

Node.jsで正常終了するとき process.exit(0) を呼んではいけない

Node.jsで正常終了するときに、`process.exit(0)` を明示的に呼び出すべきではないってことを書いています。「引数0は省略できる」とかそういうことではなく、非同期処理との関連です。

AWS Lambdaの関数アップロードをお手軽に

AWS Lambdaの関数を、ローカルPCからアップロードするコマンドのご紹介。ダウンロードも出来ますよ。

AWS LambdaからDynamoDBをQueryする

AWS Lambda からDynamoDBをQueryする、Node.js のサンプルコードをご紹介。