そんな今日この頃の技術ネタ

本家側に書くほどでもない小ネタ用

要ProxyなGCEインスタンスでgcloudコマンドを動かすためのno_proxy設定

前に一度やったことがあってふんわり認識はしていたけど、いざ調べようと思ったら意外と時間を食ってしまったので今後のためにメモ。 セキュリティ要件なんかで外部へのアクセスにProxyを介する必要があるGCEのインスタンス上でgcloudコマンドを叩きたいとい…

Google Cloud Functions / Go111からSlackに投稿してみる

Google Cloud Functionsで新たにgolangが使えるようになったので、試しにHTTPリクエストをトリガーとしてSlackにメッセージを投稿してみるコードを組んでみた。 1. Slackトークンの取得 ひとまずSlack投稿のためのトークンを取得しておく必要がある。 (毎度S…

claspでのGAS開発環境にLintを追加する

claspを使ってGASにデプロイする話のつづき。 blue1st-tech.hateblo.jp 前の記事でpush時に自動でTypeScriptをトランスコンパイルしてくれるということを書いたのだが、実際にゴリゴリ長いコードを記述するとなるとコード整形などで保守性を良くしておきたく…

golangの開発環境を整える

Go言語は年に何回か必要に迫られてちょっとだけ触る程度の使用頻度だったりするのだが、若い言語ということもあってツールやら環境まわりは調べる度に状況が変わっててちょっと戸惑ったりする。 いつの間にやら$GOPATHを明示的に指定しなくても良くなったり…

claspでGoogle Apps Scriptの開発環境を整える

Google Apps Scriptを使わざるを得ない案件があって調べていじっている今日この頃。 Apps Script – Google Apps Script Web上の機能もなかなか良くできていて簡単なものを作るだけならさほど不便は無いのだけど、流石に数百行ものコードをES5のシンタックス…

Makefileに定形作業をまとめて横着をする

月イチ更新を目標にしてたのに気づけばサボりにサボって約半年・・・そんなわけで、今回はリハビリがてら軽めのネタで。 makeというと普段Webの浅瀬でピチャピチャしてる系のエンジニアからすると縁遠いものな印象があるものの、その実態はMakefileにコマン…

Kubernetes関連の便利ツール: Helm

便利ツール紹介その2。 HelmはKubernetesのパッケージ管理ツールである。リポジトリに登録された構成情報(これをChartと呼ぶ)をinstallコマンドに適時引数で設定情報を与え、簡単に自分のクラスタに導入(これをReleaseと呼ぶ)することができるものである。 …

Kubernetes関連の便利ツール: stern

Docker for MacにKubernetesが載ったということで、今回は複数のPodのログをまとめて参照できるsternを紹介。(前々から書こうとは思ってたんだけど、機会を逸していたんだよね) github.com

Docker for Mac にKubernetesがやって来た!(ちょっと追記)

今朝メーリングリストで通知が来たので試してみた! docs.docker.com

Vue.jsで最低限文化的なクリッカーを作ってみる

個人的に新しいJavascriptフレームワークを素振りする際の定番がクリッカー(某クッキーのアレ)だったりする。今回はごくごく簡素なクリッカーを作りつつVue.jsの使い方を紹介したいと思う。 github.com

vue-cliでサクッと始めるVue.js

ここのところ仕事ではもっぱらVue.jsを使って(慣れない)フロントエンド開発をやっていたりする。 以前に触っていたAngular.jsと感触が近い部分もあって個人的にはReact.jsより親しみやすい。 昨今のフロントエンド開発というとbabelだのwebpackだのと最初…

Deep Learning学習その1 ひとまずChainerを動かしてみる

セミナーで学んだ内容を自分なりに噛み砕いてまとめて復習してみる。 ニューラルネットワークとは、さながら脳のシナプス結合のようにして個別に数値処理をするノードを積み重ねてた処理のモデルである -> 世の中の事象を何らかの数列操作として表現する -> …

GitHubとDockerHubを連携させて自動でイメージのビルドを行ってみる

ローカルにDocker Registry立てたりGCR使ったりはしたことあったけど本家たるDockerHubって使ったことが無かったので、思い立ってちゃんと使ってみることにした。 DockerHubにはAUTOMATED BUILDというGitHub(もしくはbitBucket)のリポジトリにDockerfileを…

GitHubに課金してプライベートリポジトリを使えるようにしてみた

自宅サーバにはGitLab立てて運用してたりしたけど、グローバルに非公開のリポジトリが欲しいタイミングもあるのでGitHubのDeveloperプランに課金してみることにした。 github.com 単にリポジトリが欲しいだけならbitBucketとかGitLab.comとかいった無料の選…

macOSで「dyld: Library not loaded: /usr/local/opt/readline/lib/libreadline.6.dylib」というエラーが出るようになった

新しく買ったMacbook Proでhomebrewでansibleをインストールしようとした所、以下のようなエラーが出てきた。 dyld: Library not loaded: /usr/local/opt/readline/lib/libreadline.6.dylib じゃあってんでreadlineなるものをhomebrewでインストールしようと…

OS X上にPythonの学習環境を整える(anyenv、pyenv、virtualenv)

最近の機械学習の流行もあってかPython環境を整える系の記事がいっぱい出回ってて「コイツラまた環境構築してるよ・・・」なんて揶揄されてたりするけど、調べてみると色々な方法があるようで、なるほど確かに人によって状況によって最適な手段は変わってく…

Docker/Docker ComposeのSecretsを試す

接続情報などコンテナ内への記述が憚られる情報について外部から与える方法としてsecretsがdocker 1.13/docker-compose.yamlのformat ver3.1からサポートされた。 予めdocker secretコマンドでファイルを登録するか、もしくはdocker-compose.yaml内でファイ…

kubernetes学習番外編 コンテナ起動時のコマンド実行

何かしらの設定ファイルが必要なアプリケーションをDockerイメージとして作成する場合、可搬性を考慮するならコンテナ内に予め特定の状況の設定ファイルを格納するのではなく、コンテナ起動時に環境変数から設定ファイルを生成するのが望ましかったりする。 …

kubernetes学習その4 GCRの認証

Dockerイメージの保管場所としてGoogle Container Registry(GCR)を用いる場合、同じプロジェクト内の例えばGoogle Container Engine(GKE)なんかでpullする分には認証も要らないのだけど、開発環境としてminikubeだったり他の場所でk8sを動かしたりしている場…

kubernetes学習その3 スケールとかB/Gデプロイとか

引き続きk8s学習話。 前回k8sでPodとServiceという概念や、その中で名前やラベルといった抽象的な表現を用いて扱うことを学んだ。 blue1st-tech.hateblo.jp 今回は実際にそれを利用してスケールしたりB/Gデプロイ的なことをしてみる。

kubernetes学習その2 最低限文化的なサービスを立ち上げてみる

引き続きkubernetesの使い方について学習。 前回作ったminikubeの環境で実際にyamlファイルを用いた操作を行ってみる。 blue1st-tech.hateblo.jp 最低限把握しておくこと 作業の前にザックリと用語と概念を把握。 Node: 実際にコンテナが動いているマシンの…

webpackのビルドが尋常じゃなく長い→不必要な遅延読み込み処理をやめたら改善した

あまりフロントエンドには明るくない+チームもそこまでフロントに力を入れてる人がいないという感じなんで厳密さには欠けるネタかもしれないけどご勘弁を。 現象 Vue Adminをベースとした管理画面開発を行っている案件。 github.com 先に述べたようにあまり…

kubernetes学習その1 minikubeを導入して学習環境を整える

どうも世の中の趨勢はkubernetesを使う方向で決してる感じがあるわけで、そろそろ押さえておかねばなるまいと勉強しはじめた今日この頃。 一年前に前職でDockerのオーケストレーションツールを検討していた頃はまだどれが有力とも言いづらい状況だったし、導…

Docker for Macが重くてしんどくなってきたのでdocker-syncについて調べてみた

OSXでWebアプリケーションを開発する上でDocker on Macは非常に便利ではあるのだが、ファイルシステムの関係上、 多数のファイルをマウントし書き換えが高頻度で発生するような用途では動作が非常に重くなってしまう。 (僕の場合だと最近はWebpackのdev-ser…

突然Dockerコンテナ内からネットワークに繋がらなくなったらiptablesを疑ってみよう

ちょっと前まで問題なく使えていたはずのイメージが、 ある日起動してみたらどうもネットワークに接続できない。 イメージは当然作成時と同じものだし、Dockerまわりの設定は変えてない、 ネットワークも別に阻害するような設定はしてないはずなのに・・・ …

Ubuntuで/boot以下がいっぱいでapt-get upgradeできない時の対処メモ

ひとまずapt-get autoremoveする。 $ sudo apt-get autoremove 導入済みのlinux-imageの一覧を参照。 $ sudo dpkg --get-selections | grep linux-image 一般には新しい方から2~3バージョンあれば良いので、古い方からapt-get removeしていく。 $ sudo ap…

Chrome拡張機能を作ってみる その2. UIを作成する、設定を保存する

前回に引き続きChrome拡張機能を作ってみる話。 blue1st-tech.hateblo.jp 今回はHTMLでUIを構成したり、設定を保存したりしてみる。 「ページのタイトルとURLを事前に指定したフォーマットでクリップボードに保存する」というお題で作ってみた。 github.com …

Chrome拡張機能を作ってみる その1. HTMLを改変する

ざっくりChrome拡張機能(Chrome Extension)の作り方を学んでみた。 学ぶにも相応にモチベーションは必要ということで、 ある程度実用的かつ拡張機能らしさがある例題として「ログインページのパスワードフォームの文字列を平文で表示する」機能を作成してみ…

Google Compute Engineを使ってみる

職場が変わると色々見えてくるものが変わるもんで、 2016年も末となって今更ながらにクラウドのサービスの凄み有り難みを体感している今日この頃。 そろそろサーバサイドエンジニアの職能として、 インフラエンジニアが用意してくれる箱をいじるだけでなく、…

Airbnb版Redash(?)なSupersetをひとまずDockerで立ち上げてみる

Web上でSQLを記述・保存できて気軽にデータの可視化できるスグレモノRedash。 blue1st-tech.hateblo.jp Redashはシンプルながらも十分な機能があるのだが、 一方で使い込んでくるともう少しグラフに表現力があれば・・・とか、 ダッシュボードの配置がもっと…