ほぼ日刊サービス開発日誌

とある情報系大学院生のメモ。React, firebase, 機械学習など

サーバーサイドjavascript・canvasでpng画像をリアルタイム描画する仕組み

これは以下の記事のつづきです。 www.daily-dev.net これは https://text2ogp.com から、 もう一つ別に立てた画像生成サーバーにリクエストを送って、返却されたpng画像をプレビュー画像として表示するという仕組みで作っています。 将来的に自分が色々なサ…

テキストからアイキャッチ画像を自動生成するサービスをつくりました

テキストからアイキャッチ画像を生成するサービスを作りました。 text2ogp.com というサービスです。 良かったらブログのサムネイル画像づくりにお使いください。 テキストを入力して、背景色を変えたり、フォントを変えたりして、ワンクリックでダウンロー…

ユーザーが設定したアラート時刻をjavascriptで【世界標準時ミリ秒】に直してリモートサーバーに保存して実行するには

問題 時刻文字列をパースしたときに返ってくる数字とは? 最終的な仕様 スクリプト 問題 アラートアプリを作っていました。 ユーザーは自分のタイムゾーン設定に合わせて時刻を決定できます。 クライアントサイドの時間設定は人それぞれなので、そのまま保存…

iOSのアプリ画面みたいに自分のブログやアカウントを表示できるサービス「Linqs」を作りました

自己紹介がわりに自分のアカウントをまとめて共有できる、大げさじゃない気軽な形がほしくて作りました。 Linqs 作ったきっかけは、firebase for web を使う練習としてなにかやってみたいと思ったことです。 普段から、自分のことをプロフィール上でなんと表…

自動でOGP画像を生成できるサービスtext2ogp.comをつくりました【node, canvas】

画像生成サーバー 描画 フォントの読み込み 画像の読み込み グラデーション 文章を改行しつつ、真ん中に表示する 生成したcanvasオブジェクトをpngとして返す CORS SSL化 text2ogp.com 本体 概要 クリックしてリモートの画像生成サーバーの画像をダウンロー…

【3分デプロイ】nodeプロジェクトをデプロイする最速の手段・now【登録から独自ドメインまで】

now とは ミニマルなデザインが素敵なこのサービス Now – Global Serverless Deployments javascriptで開発されたサイトもしくはDockerで構成されたサイトをコマンドラインから簡単にデプロイできる。 それでは早速 $ npm install -g now で入れます。 githu…

firebase cloud functions で爆速でAPIサーバー作ってcron-job.orgで定期実行する

firebase cloud functions HTTP request のここがすごい cronで定期実行 ちなみに cron-job.orgってどうマネタイズしてるの heroku とかだとデフォルトでスケジューラ機能が付いているんですが 2018.9時点でfirebaseには付いていないので、 cron-job.org と…

Node.jsのWebアプリケーションの自動デプロイ【pm2のecosystem】

pm2というプロセスマネージャを使ったら、非常にカンタンにデプロイできたのでメモしておきます pm2はnodeでインストールできる、複数プロセスを管理するコマンドライン。 これを使うとnodeサーバを走らせるデーモンをバックグラウンドでカンタンに作れます…

firebase について最初から知っておきたかった細かいポイント(cloud function, firestore)

firestore: set({params,merge:true})とupdate()のちがい mergeオプションのあるset()は、ドキュメントが存在しなければ作成するし、存在すれば更新する。mergeオプションがないとすべてを上書きする。 updateは、対象ドキュメントが存在しない場合、エラー…

最初にこう説明してよと思った、javascriptのPromise, async/awaitの直感的な説明

わたしの理解力はアレなので、あまりスッと入ってくる直感的な説明がなかった。1ヶ月後の自分に向けて書く。 Promiseの使い所 javascriptで、APIを叩いたり、データベースと接続して、そうやって得た値にまたホニャララして、それを改造した値をさらにホゲホ…

jsのmap と forEachをどう使い分けるといいのか:実行速度、使いドコロ

拡張機能を作ったり、フロントエンドをreactで作ったり、なんか必要だからと、その場しのぎに使ってきた、javascript。 特にわかっていなかったのが、map/forEachの使い分けと、Promiseの使い所などだった。 初歩的で恥ずかしいけど、どうせ忘れるので書いて…

create-react-appでreactプロジェクトを作成してからreactでデプロイするときにconsole.logを消す+scssを自動反映する+firebase deployするなどの設定

scss自動コンパイラの設定 package.jsonにて "scripts": { "build-css": "node-sass-chokidar src/ -o src/", "watch-css": "npm run build-css && node-sass-chokidar src/ -o src/ --watch --recursive", "start-js": "node scripts/start.js", "start": "…

reactのライトな多言語化ならi18nextを使おう - 言語認識ライブラリ,ネスト翻訳も利用

ライブラリの追加 # npm $ npm install i18next --save ​ # yarn $ yarn add i18next CDNで読み込みたい場合は、以下URLで貼ります。 <script src="https://unpkg.com/i18next/i18next.js"></script> 多言語jsonデータを、言語の分だけ作成 (src/locals/ja/translation.json , src/locals/en/translation.json など、分か…

アカウント間・リージョン間でRDSインスタンスを移行/変更したいならDMS(Database Migration Service)を使うのが一番速い

Database Migration Serviceって知らなかったけどめちゃめちゃ簡単で便利なサービス。>< 「RDS リージョン 変更」で調べるとデフォルトのシングルAZをマルチAZにして、手動でフェイルオーバーするとリージョンが変わりますよ、って記事がググって一番上に…

モーションキャプチャデバイスの方式とそれぞれのメリット・デメリットについてまとめた

モーションキャプチャとは、人や物の動きをデジタル化するシステムで、 スポーツやリハビリ等における身体の動きのデータ収集 CGで作られるキャラクタの動きを、人間らしく再現 自動車部品や機械製品の挙動、ゴムや布等の素材の伸縮や反応のデータ化・評価 …

Amazon machine image(AMI)のアカウント間共有の仕方

1. 共有対象のAmazonアカウントIDをメモる ログイン後右上のアカウントページからIDの確認可能。 2. 共有側でAMI を選択し、[Actions] から [Modify Image Permissions] を選択 [AWS Account Number] フィールドに AMI を共有するユーザーの AWS アカウント…

Atomから乗り換え。vscodeでvimのキーマップ割当:Ctrl+j をescキーに割り当てる

先月はAtom使っていたけど、いまいち起動が遅くて乗り換えることにした。 早速vim関係のキーマッピング設定をした。 Ctrl+j をescキーに割り当てる設定にしているのだけど、 調べたら「できない、issueになっている」と出てきた。とはいえ試したら普通にでき…

Atomで快適にVimの矩形選択モードを利用する(2018)

atom-sublime-selectとか、vim-mode-visual-blockとか、いろいろプラグインはあるけれど、メンテナンスされていなかったり、マウスを使わなければいけなかったり、v+control+j/k で操作したい自分には適していなかった。 vim-modeの作者さんが作った、 2015…

Pythonでdotenv

pip install python-dotenv # coding: utf-8 # 環境変数のあれこれ from os.path import join, dirname from dotenv import load_dotenv dotenv_path = join(dirname(__file__), '.env') load_dotenv(dotenv_path) import os for k, v in os.environ.items()…

kerasでモデルと重みを保存して再利用する方法

kerasは モデルの構造 モデルの重み を別々に保存する構造になっています。 モデルの構造はjson、もしくはyamlで保存されます。 モデルの重みは HDF5フォーマットで保存されます。これは多次元の配列を保存するのに適した形式です。 # モデルの構造を保存す…

sshでTensorboardする!kerasのmodelをTensorboardに出す!簡単

Tensorflowの可視化をするTensorboard。 まずリモートサーバーでポートを指定して起動 この場合9999ポートで動かす。 tensorboard --logdir=/home/ext/shiho-wyb/dev/cnn_nlp --port 9999 次にクライアントでポート転送設定をする。 いつも ssh -p {接続先ポ…

EC2のボリューム(EBS)容量拡張方法とそのエラー:resize2fs してもCouldn't find valid filesystem superblock.

ボリュームの追加方法は以下を参考にしました。 dev.classmethod.jp 当然なのですが、AWSコンソールからボリュームを追加したがそれだけでは、反映されていませんでした。 拡張したボリューム領域をインスタンス(もしくはOS)で認識させる作業が必要でした。…

imapとnoremapとmap - vim

新しいMacを買ったらescキーがなかったので、Control + jにescキーを割り当てることにしました。 vimrcにうろ覚えで imap <C-j> <esc> と書いてもうまく行きませんでした。 インザートモードの時に、Control + j つまり<C-j>を押すとノーマルモードに戻るのですが、 ビジュ</c-j></esc></c-j>…

sshでもatomしたい

remote-atom Command + , でatom設定を開いて、上記のパッケージをインストール。 ナビゲーションのパッケージ>remote-atom>start-server をクリック リモートサーバーではrmateコマンドを使えるようにする必要がある 以下のようにしてパスの通じているとこ…

テキストデータをCNNを用いて既定カテゴリに自動分類する実装のまとめ

目的 テキストデータをあるカテゴリに自動分類したい。 既存の手法を集めてみた。といっても論文からではなく、ブログ記事を参考に手法と結果をまとめてみた。 1. 全結合層が2つのシンプルなCNN KerasのCNNを使って文書分類する より。 keras/imdb_cnn.py a…

rubyでarxivの論文タイトルをPDF/absのURLから取得する

APIを利用してJSONをパースする。 APIは以下のような構造。 https://api.altmetric.com/version/arxiv/arXiv_id require 'net/http' require 'uri' require 'json' arxiv_id = target_url.split('/').last.match(/\d+\.\d+/).to_s api_url = "https://api.al…

Unicornで動かしたRailsのログをtd-agent に流してS3にアップロードする

td-agentのログはアプリサーバーにおいて置くと膨大になってしまいます。 RailsアプリのログをS3に流してあとで分析できるようにします。 S3との連携プラグインをいれる gem install fluent-plugin-s3 /etc/td-agent/td-agent.conf に設定ファイルを置く <source> @t</source>…

図で理解する畳み込みニューラルネットワークの設計「実装ディープラーニング」第3章〜第4章

CNNの仕組みを図にすることで、畳み込み層、プーリング層、全結合層の意味合いや、設計の勘所などがだんだん掴めてきました。 今回の内容は、 実装 ディープラーニング作者: 藤田一弥,高原歩,株式会社フォワードネットワーク出版社/メーカー: オーム社発売日…

図で理解する「実装ディープラーニング」第1章〜第2章 畳み込み層、プーリング層、バッチ学習、損失関数 

書かなきゃ覚えられない体質なので、「実装ディープラーニング」の内容を図にしてまとめていきます。 実装 ディープラーニング作者: 藤田一弥,高原歩,株式会社フォワードネットワーク出版社/メーカー: オーム社発売日: 2016/11/30メディア: 単行本(ソフトカ…

AWS EC2 UbuntuでNo space left on device になってしまったよ... ブロック追加

とりあえず、 df -h(disk free, ディスク空き容量) してどれくらい使い込んでいるかをみると、 /dev/xvda1 7.7G 7.7G 100% で満杯だった。 sudo du -h --max-depth=1 {somedir} (disk usage, ファイル空き容量) で当たりをつけたディレクトリ配下でどれくら…