GAミント至上主義

Web Monomaniacal Developer@ビズオーシャン

Google Pixelbookでdockerを動かす

Linuxを入れた前回に引き続き。機種はこれGoogle Pixelbook (i5, 8 GB RAM, 128GB) [並行輸入]出版社/メーカー: Googleメディア: Personal Computersこの商品を含むブログを見るdocker公式通り行くと下記エラーで止まる $ sudo docker run python:3.7 docker…

Google Pixelbookが届いたので早速公式サポートのLinuxを動かす

ずっと欲しかったPixelbookを毎月やってるAmazonタイムセールのタイミングで買いました。 SSD128GBでお値段10万ちょっと。 開発メインだけど、なるべくクラウド使うので128GBで十分かなと思ったけど、node_modulesが容量は怖い。今年中に新機種が出るっぽい…

new Date()のミリ秒対応はブラウザによって違う

ギャラクシーエンジェルのメンバーが幼児化するのは3期14話の激辛お子様ランチですが、JavaScriptでその日の終わりをなるべく厳密に指定しようとミリ秒を指定してnew Date()したとき、動くブラウザと動かないブラウザがあってバグった。 new Date()でミリ秒…

続vue-router + Firebaseで404ページをちゃんとやる方法を考える

夏アニメが終わってしまい気持ちが落ち込む季節。以前の記事で、Firebaseで使われる404.htmlにリダイレクトして満足していたが、404.htmlへのアクセスはFirebase Hostingはステータスコード200を返してしまい、Googleにインデックスされてしまっていた。uyam…

Vue CLI 3でビルド時に古いファイルを消さずにとっておく

沢城みゆきといえばギャラクシーエンジェルのミントの声優ですが、ServiceWorkerを使ったPWAを運用していると、強力なキャッシュに困ります。ServiceWorkerのライフサイクルは通常のページとは違い、普通の再読み込みでは更新されないこともあったりと複雑で…

Google Hangouts ChatでAPIからスレッドを指定して書き込む

以前のこの記事の続き。チャットから返信できるようになったけど、ユーザーの書き込みが毎回新スレッドになるため、同一ユーザーの書き込みは同じスレッドにしたかった。uyamazak.hatenablog.com要約としては、書き込み成功のレスポンスにthread.nameが入っ…

Headless Chromeを使ったPDF変換サーバーがエラーで止まってしまったので調査

yagishで使っているPDF変換サーバーが落ちてしまったので、エラーログを確認して対策を考える。 復旧は再起動だけでひとまず完了。比較的アクセスの少ない朝4時から10時ぐらいまでの営業日だったのが幸い。昼間や連休中だったら大変だった。Stackdriverで周…

Firestore + Cloud Functions + Hangouts Chatで簡易メッセージフォームを作る

yagish履歴書で、お問合せ用にGoogleフォームは設置しているけど、もっと気軽な問合せフォームみたいのを作りたい。でも、メールで送るのも、受け取るのもちょっと面倒なので、チャットに来ればいいやと考えた。Slackも使っているけど、会社でG Suiteを使っ…

5000兆円欲しい!.cssをHeadless Chrome+Google App Engineを使いサーバーで画像化する

Headless Chromeの登場で、HTML+CSSのPDF化だけでなく、画像化においてもWEB系開発者にとっては最強の手段となった気がする。 やりたいこと この5000兆円欲しい!の装飾で動的にテキストを画像化したい。こんな素敵なCSSを公開してくれたVoQnさんに感謝と畏…

Webサービスの作り方(ふくろうの描き方)

勢いで作ってしまったけど、おおむねこれで合ってる気がするyagish履歴書の経験を元にWebサービスの作り方を1枚にまとめました pic.twitter.com/RljudgAtx3— uyamazak (@uyamazak) September 11, 2018 元ネタ:ふくろうの描き方 - Google 検索

Ubuntu再起動後dockerが使用できないとき

UbuntuのLinuxサーバーを再起動後、Docker自体が起動していないのことがよくあるのでメモ。 sudo docker run foo sudo /etc/init.d/docker startなどが反応しない。なぜかip aでdockerのネットワークが存在しないので network-manager再起動 sudo service ne…

mochaとsupertestを使ってexpressとHeadless Chromeを使ったアプリのテストを書く

Headless Chrome(以下HC)を使ったPDFサーバーのテストを書いた。github.com HCが別プロセスのため非同期処理などではまり面倒だったため、外からHTTPリクエストを投げるテストにした。結合テスト? だいぶ雑だけど今まで手でたたいていたのに比べれば効率…

Vue.js + Reactもくもく会@東銀座#43に参加8/21 Vueのデザインフレームワーク調査

個人開発のため、もくもく会を探していたところ、超近所でぴったりなテーマがあったので参加。medpeer.connpass.com やること Ubuntuが入った古いレッツノートにVue.jsの開発環境構築個人開発用のVueのUIフレームワークを選定する 以下作業中のメモ Ubuntu18…

ヘッドレスChromeを使ったPDF変換サーバーをGoogle App Engineに対応させた

yagishでも使っているHeadless Chromeを使ったHTML→PDF変換サーバーhcep-pdf-server。github.com これまでDockerコンテナだけだったけど、Google App Engineでも同一コードで動くようにいろいろ変えた。 まだ実運用はしてないのでベータ版。 現在テストで使…

Google App Engine Node.js Standard EnvironmentでPuppeteerを使ったPDF変換サーバーを動かす

yagish履歴書でも裏で使っているHTML→PDFの変換サーバー。 GitHubでも公開してます。 github.comこれがGoogle App Engineでも動きそうなので試してみた。 さすがにChromeはインストールできないのでPuppeteer付属のChroniumを使う点と、日本語フォントでちょ…

Google App Engine standardのNode8 & Python3.7対応で移転祭りはっじまっるよ~!

わぁい!GCPでコスパ最強のアプリ環境App Engineで長年待ち望んだPython3が公開されました。まだβ。従来のGAEと大きく変わるためSecond generationと呼ばれてます。 App Engine standard environment runtimes | App Engine Documentation | Google Cloudこ…

Nuxt.jsいらない説

Vue使うなら最初からNuxt.js使えよ、という条件反射みたいな風潮にちょっと反論してみる。 ※2018/9/4 viewsフォルダ等について追記またこの記事はNuxtにしようかなと思っていたところでVue CLI3に移行して感動し、今も使っていないのでその持論でもあります…

本番環境と開発環境でファビコンの色を変えるとすごい分かりやすい話

環境ごとにファビコンの色を変える小技。 前々職にいたデザイナーさんがやってたのを見てから、使わせてもらってます。yagishの場合こんな感じ。タブを見ると一瞬で分かる。 明らかにヤバい紫のヤギ大根が開発(社内サーバー) まだできてなさそうな緑のヤギ…

GKEでIngressを使ってService単位でロードバランシングする

以前の下記記事の続きで uyamazak.hatenablog.com本番とステージング環境で、管理コストを削減するために 同じロードバランサー 同じドメイン 同じクラスタ を使いまわし、 /api/* → 本番用Service /api-staging/* → ステージング用Service とパスでサービス…

個人開発にFirebaseとVue.jsとPWAがおすすめな理由

おかげさまで様々なメディアに取り上げてもらったり、はてブも800超えたりしているyagish。 想像以上の反響の大きさに、勢いがあるうちにもっと良くしようといろいろ施策を考えてます。 が、yagishで使ったVue.js、Firebase、PWAが新規事業だけでなく、個人…

Firestoreでコレクションだけ持ってるドキュメントを一覧で取得できなくてハマったらFirestoreの構造を実感できた

Firebase Admin SDKでデータを抜き出そうとしたら取れなくてハマった。 結論としてはコレクションのみを持つドキュメントは一覧を取得することができないのが分かった。Firebase Consoleだと見れるけどどうやってるかわからないが、よく見ると注意書きがある…

Vue.jsとFirebaseで本番環境、ステージング環境をなるべく節約して構築する

yagish履歴書は、システム1人、デザイン1人、イラスト1人、計3人の小さなチームで作っていて、開発は非常に身軽なので、本番公開時もローカルの開発環境+Firebase本番環境だけだった。rirekisho.yagish.jpでもさすがに大きな変更を本番でやるのは怖いので、…

Google Cloud FunctionsでNode.js 8が使えるようになってる件

Python3.7に引き続き。 これで偉大なるasync/awaitが使えるようになった。 id:takuya_minami373がasync/awaitが無くて困ってPythonで書き直すか、と思ってたところのナイスタイミングで気づいてくれた。 おそらくLTSだし、これで気兼ねなくCloud Functionsを…

Vue Cli 3への開発環境移行でつまづいたこと

yagish履歴書は2018年2月ごろから開発を始めた影響で、開発環境が古かったので現時点で最新のVue Cli 3を使った環境に変更中。 rirekisho.yagish.jpcli.vuejs.org導入の流れは以前の記事参照 uyamazak.hatenablog.comつまづいて時間を無駄にした点をいくつか…

vue-routerでtitleとdescriptionを動的に切り替える

yagishの公開から2週間ぐらいたち、Googleサーチコンソールをみるとtitleタグが同じ、descriptionが同じという、SEO対策でよくある初歩的な警告を目にしたので、なんとかする。rirekisho.yagish.jpSPAのSEOはまだ情報が少なくSSR(さーばー・さいど・れんだ…

Google Cloud FunctionsにPython3.7が追加されてる件

今日Cloud FunctionsってNodeのバージョン選べるっけと思ってみたら、Python3.7があることに気づく。package.jsonの代わりにrequirements.txtがありpipのパッケージを指定できるっぽい。Nodeは6系と古いままのにPythonは6月ごろに出たばっかの最新の3.7とこ…

ブログのRSSをCloud Functionsを使ってJSONに変換してajaxで使う

yagish履歴書で今後のアップデートのお知らせ用にはてなブログProを利用しようと考えている。rirekisho.yagish.jp (関係ないけどはてブ800超えてうれしい)もちろんRSSがあるので、これをVue.jsアプリ内で読み込んでもいい。 でも、RSSとかXMLとかを扱うと…

yagish履歴書がはてブ(IT)1位でうれしい

rirekisho.yagish.jpリリース出したのは7/11だけど、なぜか今朝になっていつも見てるはてブ上位にいた うれしいファビコンがルートに置いてないせいか出てないから直そう 2018/7/12 12:43追記 テクノロジー1位やったー この記事のタイトルも変えたなんでこん…

Vue.jsのPWAでLighthouse100点を目指したがPerformance77点で挫折した

WEB上だと空のプロジェクトとかでLighthouseの高得点を目指す記事はあるけど、実用的なPWAアプリでの情報は少ないので試したことをまとめてみる。履歴書をスマホで入力できてPDFで出せる新サービスyagish履歴書。 まだまだ改良の余地はあるけど使える状態。r…

Vue + PWAの開発環境をvue-cli3 + pwa plugin + yarnを使ってDocker上で構築する

uyamazak.hatenablog.com 2018年の2月ごろ、VueでPWAの履歴書作成アプリを作り始めて、もうすぐ本番公開だけど改めて調べると環境がすでに大きく変わっていた。 作ったのこれ↓ rirekisho.yagish.jp半年もたってないけどこの変化だからなるべく早く変更する準…