読者です 読者をやめる 読者になる 読者になる

DRYな備忘録

Don't Repeat Yourself.

AppEngineで自分のドメインを使いたい

Google App Engine について - Google Apps 管理者 ヘルプ Google AppEngine - Custom Domain + SSLが簡単になった - Qiita 独自ドメインの設定 - Google App Engine 入門 tl;dr GCPのコンソールで、TXTレコードの値をもらう DNSサービスのほうで、該当ドメ…

electronのWebView.executeJavaScriptがコールバックを呼ばない問題

以下のようなコードを書いて、electronのwindow内に作ったWebViewの中の情報を取得しようとした。 let webview = document.createElement('webview'); webview.addEventListener('did-finish-load', function() { // 第1引数に内部で実行したいJavaScript文…

PostgreSQLのJSONデータ型っていうのをためしてみる

JOSNデータ型とは 8.14. JSONデータ型 "このようなデータは、text型として格納することもできますが、" "各種JSON固有の関数と演算子もあります" "JSONデータ型にはjson型とjsonb型という2種類" " jsonb型の重要な利点はインデックスをサポートしていること…

react-reduxでmapStateToPropsが呼ばれてるのに再度renderされない問題

こういうコード書いて、末端コンポーネントで直接stateの変化をsubscribeしようとした class Logs extends React.Component { render() { return <ul> {this.props.logs.map((log) => { return <li>{JSON.stringify(log)}</li> })} </ul> } } Logs = connect((state) => { retu…

Reduxって一体なんなのかちっとも分からないよ【追記あり】

参考 Read Me | Redux "Redux evolves the ideas of Flux" Flux | Application Architecture for Building User Interfaces Example: Todo List | Redux Redux入門【ダイジェスト版】10分で理解するReduxの基礎 - Qiita Redux入門 1日目 Reduxとは(公式ドキ…

webpackでnpmのbinつくっててfs.readFileSync is not a functionと言われる問題

tl;dr webpack.config.jsに以下を追加 module.exports = { entry: './src/bin/main.js', output: {filename:'./bin/main.js'}, + target: "node", module: { loaders: [ これだけで、ES6のほうでnodejsの標準モジュールをrequireしたとき以下のようにコンパ…

webpackでjsx記法(HTMLっぽいの)がsyntax errorになる問題

毎回つまづくのでメモ 問題 % npm run build > myproject@1.0.0 build /Users/otiai10/proj/web/react-examples/myproject > webpack Hash: bbba9acdc8b879c1ad6d Version: webpack 1.13.0 Time: 402ms + 1 hidden modules ERROR in ./src/js/app.jsx Module…

undefined method `descrbe' for main:Object (NoMethodError)

RSpecでテスト書いてて掲題のように叱られる 原因 タイポやん。stackoverflow書いてて気づいた。 解決 - descrbe MyModule::MyController, type: :controller do + describe MyModule::MyController, type: :controller do Don't Repeat Yourself!!

RSpecでspec/featuresにテスト書いたのに動かない

RailsでRSpec使ってて、featuresにそれっぽいテスト書いたのに、ぜんぜん動かない。失敗してくれない。通ってない。 feature "なんかするやつ" do sinario "なんかある" do expect(true).to be false end end 原因 ファイル名に _spec サフィックスつけない…

【GCP】GoogleComputeEngineでHello,World

Compute Engineとは? Compute Engine - IaaS — Google Cloud Platform What is Google Compute Engine? - Compute Engine — Google Cloud Platform EC2だと思えばいいかな。 ログ まずプロジェクトの選択 VMインスタンスの作成 ハローワールドなので、お安…

React NativeでHello, World

React Nativeとは facebook.github.io React Native ファーストインプレッション - Qiita “コードは特に別のトランスパイラなどを必要とせず ES6 前提で書くことができる” “JavaScript のコードがコンパイルされてネイティブコードになるわけではなく、内部…

【GCP】Google Container Engineで Hello, World

Google Container Engineとは Container Engine | Google Cloud Platform Google Container Engine ドキュメント | Container Engine | Google Cloud Platform Google Container Engine へようこそ。Container Engine は、Google がコンテナベース分散システ…

【kubectl】The connection to the server localhost:8080 was refused と叱られる

問題 Google Container Engineをためしてみたくて、Kubernetesを使ってGoogleContainerEngineのクラスター上にdeploymentをつくろうとして、 % kubectl run PROJECT_NAME --image=IMAGE_NAME --port=8080 などとすると、 The connection to the server local…

【GCP】AppEngine GoからCloudSQLをつかう

前回までのあらすじ AppEngine GoでHello,Worldやってみたログ - DRYな備忘録 【GCP】AppEngine Goからメールを送りたい - DRYな備忘録 【GCP】AppEngine GoからCloudStorage上にファイルをREADしたりWRITEしたり - DRYな備忘録 AppEngineでWebサーバをうご…

【GCP】AppEngine GoからCloudStorage上にファイルをREADしたりWRITEしたり

前々回のエントリでは、GAE/GoがWebサーバとしてちゃんと動くことが確認できたし、前回のエントリでは、GAE/Goからメールを送ることが確認できたので、今回はGAEからGoogleCloudStorage上にファイルをアップしたりそれを読んだりしてみたい。 参考 Storing D…

【GCP】AppEngine Goからメールを送りたい

前回のエントリでは、GAE/GoがWebサーバとしてちゃんと動くことが確認できたので、今回はGAEからmailを送る。 参考 Mail Go API Overview - Go — Google Cloud Platform y.okano blog: GAE + Go でメールを送る 送信元のメールアドレスに制限がある For secu…

Googleスプレッドシートで勤務時間の合計を計算したい

小一時間くらい探しまくって疲れたのでメモ まとめ 表示形式の詳細設定から経過時間を選択 ふつーにエクセルっぽくSUMする 表示形式の詳細設定から経過時間を選択 この123って書かれてるところ これでほとんどできたようなもの エクセルっぽくSUMする 行の合…

AppEngine GoでHello,Worldやってみたログ

ゴール ローカルでAppEngineSDKを使ってサーバを動かす それをAppEngineServiceにデプロイして確認する docs cloud.google.com 結論から言うと5分ではなく10分だった ローカルで動かすまで % cd $GOPATH/src % mkdir oppai % cd oppai % vi main.go package …

docker-composeでEC2にデプロイしたい

問題 EC2上でdocker containerを立てて運用するようなサービス の、デプロイをdocker-composeでやりたい tl;dr Amazon Web Service - docker すべてここに書いてあった。docker-machineのdriverをamazonec2としてcreateすれば、あとはいつものdocker-compose…

【追記】babelのバージョン揃えるのみなさんどうしてるんですか? Unexpected token

% npm install --save-dev babel babel-core babel-loader こういうの出る % webpack ERROR in ./src/js/app/app.jsx Module parse failed: /app.jsx Line 1: Unexpected token You may need an appropriate loader to handle this file type. | import Reac…

【AWS】S3のbucket以下のリソースをpublicに読み込み可能にしたい

AWS

問題 S3上に置いた画像ファイルをブラウザから読むと403が返る AWSのコンソールでbucket以下ディレクトリ(正確にはObject)を Make Public すると見れる しかし、もちろんその後追加されるObjectについてはpublicにならない S3のBucketのPermissionsをいじ…

【Elixir】argument error, :erlang.++({'content-type', 'image/png'}, [])

いやーよくわからないエラーメッセージとスタックトレースなんだけど。なんか深そうだし。 ** (exit) an exception was raised: ** (ArgumentError) argument error :erlang.++({'content-type', 'image/png'}, []) (erlcloud) src/erlcloud_s3.erl:699: :er…

React+Babel+webpackの最小構成つくってだるかったことメモ

サンプルページ 3がつく数字でアホになるやつ tl;dr npm install -gはだるいので、npm scripts経由でwebpack呼ぶのがよさそう webpackが扱うべきファイルによってloaderがひつよう(babel-loaderとか) loaderを書く順番でひっかかって非常にだるかった impo…

【Elixir】protocol String.Chars not implemented for【エラー】

っていうエラーが出る protocol String.Chars not implemented for %{"avatar_url" => "https://avatars.githubusercontent.com/u/12345?v=3"} 文字列補完(string interpolation)に、String.Charsを持っていないデータ(MapとかStruct)を渡していることに…

【Elixir】Ecto.Migrationで外部キー参照とNOT NULL制約を追加

こういうことを学んだので↓ otiai10.hatenablog.com これを、Ecto.Migrationでやりたい defmodule MyApp.Repo.Migrations.CreateUserToken do use Ecto.Migration def change do create table(:posts) do add :user_id, references(:users, on_delete: :dele…

【MySQL】DEFAULT NULLと外部キー制約の同居

同居できるんかなと(ほんとはMariaDB) mysql> CREATE TABLE users ( id SERIAL, name VARCHAR(255) ); Query OK, 0 rows affected (0.01 sec) mysql> CREATE TABLE posts ( user_id BIGINT(20) UNSIGNED DEFAULT NULL, # ← あえてつける message VARCHAR(2…

【Elixir】Module内のfunctionのリストを取得する

stackoverflow.com Ecto.Repo.__info__(:functions) [__adapter__: 0, __pool__: 0, __query_cache__: 0, __repo__: 0, all: 1, all: 2, config: 0, delete: 1, delete: 2, delete!: 1, delete!: 2, delete_all: 1, delete_all: 2, get: 2, get: 3, get!: 2,…

Ecto.Migration内でINSERTする

Ecto.Migration – Ecto v2.0.0-beta.0 execute使お... defmodule MyApp.Repo.Migrations.CreateProviderTable do use Ecto.Migration def change do create table(:providers) do add :name, :string timestamps end create unique_index(:providers, [:name…

Elixirで無名関数の実行

Elixir (iex) iex(1)> (fn msg -> IO.puts msg end).("hello!") hello! :ok Go func(msg string) { fmt.Println(msg) }("hello!")

Herokuインスタンス上の環境変数を取得、確認する

% heroku run --app my-app env env実行したらええやん的な

ElixirでFizzBuzz

前回まで 【Elixir】バージョン管理しつつErlangとElixirをMacにインストールする - DRYな備忘録 【Elixir】the result of the expression is ignored - DRYな備忘録 【Elixir】use of operator === has no effect と言われる - DRYな備忘録 Elixirでゼロ埋…

Elixirでゼロ埋め【zero padding】【elixir】

iex(6)> String.rjust("hoge", 8, ?0) "0000hoge" zero paddingしたい対象がintegerなら、適宜、第1Integer.to_striingなど使う。 123 |> Integer.to_string |> String.rjust(8, ?0) 参考 In Elixir, how do you format numbers with string interpolation -…

【Elixir】use of operator === has no effect と言われる

問題 Elixirのコンパイラに掲題のように叱られる。 原因 「===使ってもええんやで」という意味。 解決 1..max |> Enum.each fn(n) -> - case {rem(n, 3) == 0, rem(n, 5) == 0} do + case {rem(n, 3) === 0, rem(n, 5) === 0} do {true, true} -> 雑感 たと…

【Elixir】the result of the expression is ignored

問題 ElixirでFizzBuzz書いてて、掲題のように怒られる main.exs:4: warning: the result of the expression is ignored (suppress the warning by assigning the expression to the _ variable) the result of the expression is ignored (suppress the war…

docker-composeで Unknown MySQL server host 'localhost' とかなる現象

問題 だいたいどんなDBのイメージ使ってても、同じdocker-composeでサーバアプリケーションも一緒に動かそうとすると、いかのように叱られることがよくある。 Unknown MySQL server host 'localhost' べつにMySQLに限らない。MongoDBでもRedisでも、ありがち…

【Elixir】バージョン管理しつつErlangとElixirをMacにインストールする

just want "Hello, World"? brew install elixirで、ErlangもElixirも入ります。 参考 qiita.com Prerequisite JDK installed on your mac brew install wget Good Bye Elixir, installed via brew brewで入れたelixirは消す % brew uninstall elixir % brew…

【Postgres】function uuid_generate_v4() does not existとしかられる

問題 CREATE TABLE文を実行すると、(書いてて思ったけど、UUID v4、255byteもなくていいな) CREATE TABLE "users" ( "id" varchar(255) DEFAULT uuid_generate_v4(), "name" text, PRIMARY KEY ("id") ) 以下のようにしかられる ERROR: function uuid_gene…

HerokuにDockerで動くアプリケーション(Go)をデプロイする

追記(2016/12/22) 任意のパッケージがインストールされた環境をHerokuにつくりたい、という目的でDockerを選択したけれど、Dockerfileに書かれているinstallコマンドは有効に動かない、みたいな情報を得ました。で、どうやらさいきんはbuildpackをうまいこ…

MacでPostgresの停止

いろいろやったけど結局これでした launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist ログ % pg_ctl stop pg_ctl: no database directory specified and environment variable PGDATA unset oh... % pg_ctl stop -D /usr/local/var/…

Linuxサーバ上でdocker-composeを使う

ゴール MacOSXで、docker-machineでvirtualbox VMをつくって、そこをdockerホストとして、docker-composeを使って複数種類のコンテナをオーケストレーションしている じゃあ、もともとdockerが使える環境にしているLinuxで、docker-composeを使って複数種類…

docker-machine envがこける

問題 docker-machine envすると、 There was an error validating certificates for host ~ と叱られる Error checking TLS connection: Error checking and/or regenerating the certs: There was an error validating certificates for host "192.168.99.1…

docker-compose内でmongodbがFailed to connect to a master node at 0.0.0.0:27017となる

問題 docker-compose.yml mongodb: container_name: mongodb image: mongo:3.2.0 ports: - "27017:27017" myapp: container_name: myapp build: . dockerfile: Dockerfile links: - mongodb # まずはもちろんこれが必要 main.rb(抜粋) require 'mongo_mapp…

docker-compose buildでbundle installがCould not fetch specs from rubygems.orgとなる

問題 Mac上でdocker-machineでVMを立て、そこに向けてdocker-composeを華麗に決める % docker-compose build # 略 Step 5 : RUN bundle install ---> Running in e8c4e026277a # 略 Fetching source index from https://rubygems.org/ Could not fetch specs…

GoでHTTPのレスポンスをキャッシュしたいなと思ったので

つくった github.com 今んとこGETだけ

RedshiftのCOPYコマンドが失敗する

問題 docs.aws.amazon.com S3からRedshiftにレコードをコピー(insert)できるコマンドCOPYが便利なので COPY users FROM 's3://my_bucket/backup.users.csv' CREDENTIALS 'aws_access_key_id=xxx以下略' CSV とかすると ERROR: Load into table 'users' fai…

sendResponseが動いてないように見える現象に半年に1回ひっかかってる気がする

background.js chrome.runtime.onMessage.addEventListener((req, sender, sendRes) => { setTimeout(() => { // ここまで来てるのに sendRes("元気でーす"); }, 100); }); contents_script.js chrome.runtime.sendMessage(null, {msg:"元気ですか?"}, (res…

アメッシュをターミナルに表示して、ついでに雨降ってたらSlackでおしえてくれるところまで、Goでやったことのまとめ

go

このエントリはGo その2 Advent Calendar 2015 - Qiitaの8日目です。 7日目のS_Shiomtoriさんの記事もコマンドラインツールの話でした。 % go get github.com/otiai10/amesh/amesh % amesh -g 思ったことや詰まったこと書きます Goでコマンドラインツールを…

Elasticsearchの2.0にキャッチアップしたいんですが、Dockerで分離したい。Macで

背景 みんなだいすきElasticsearchがいつのまにか2.0になってた これを叩いていろいろためしたい だけど生ローカルで動いているElasticsearchがあり、これはカジュアルにAPI変えたくない Dockerイメージあるし、docker-machineでホストごと分離するのがよさ…

SlackのAPIでチャンネルに投稿

ライブラリじゃなくてcurlのサンプルがほしい 追記 POST 限定になってたので注意 しかもGETだとエラーメッセージがchannel_not_foundとかになって「は?」ってなるので注意 以下原文 # 都合により改行 % curl "https://slack.com/api/chat.postMessage ?toke…

OCamlでHello World

\オッキャムル/ % brew search ocaml ocaml ocamlsdl % brew install ocaml ==> Downloading https://homebrew.bintray.com/bottles/objective-caml-4.02.1_2.yosemite.bottle.1.tar.gz ######################################################################…