<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: kimihito</title>
    <description>The latest articles on DEV Community by kimihito (@kimihito).</description>
    <link>https://dev.to/kimihito</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F105757%2Ff6307b92-4295-4ed7-bba1-a265e4460b99.jpeg</url>
      <title>DEV Community: kimihito</title>
      <link>https://dev.to/kimihito</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/kimihito"/>
    <language>en</language>
    <item>
      <title>EchoをVercel（Zeit now）のServerless Function上で動かす</title>
      <dc:creator>kimihito</dc:creator>
      <pubDate>Tue, 28 Apr 2020 21:47:05 +0000</pubDate>
      <link>https://dev.to/kimihito/echo-vercel-zeit-now-serverless-function-9a8</link>
      <guid>https://dev.to/kimihito/echo-vercel-zeit-now-serverless-function-9a8</guid>
      <description>&lt;h3&gt;
  
  
  TL;DR
&lt;/h3&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;p&gt;Goやサーバレスアーキテクチャの初心者なので、もうちょっといいやり方ないかなーと持っています。&lt;/p&gt;

&lt;h3&gt;
  
  
  やりたいこと
&lt;/h3&gt;

&lt;p&gt;Vercel（Zeit now）を使っていて、Serverless functionで&lt;a href="https://vercel.com/docs/v2/serverless-functions/supported-languages#go"&gt;Go&lt;/a&gt;が選択できたので利用してみたいと思ったので試してみた。&lt;/p&gt;

&lt;h3&gt;
  
  
  やったこと
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://vercel.com/docs/runtimes#official-runtimes/go"&gt;ドキュメント&lt;/a&gt;にあるように プロジェクトルートに &lt;code&gt;api&lt;/code&gt; ディレクトリを生成して &lt;code&gt;date.go&lt;/code&gt; などつくる（このときhttp.HandleFuncのシグネチャである公開メソッドを用意すること）と &lt;code&gt;/api/date&lt;/code&gt; というURLを提供できる（ &lt;code&gt;/api/&lt;/code&gt; を指定したい場合は &lt;code&gt;/api/index.go&lt;/code&gt; とする）。&lt;/p&gt;

&lt;p&gt;が、今回はルーティングはEchoに任せたい（そもそもこれでいいのか？）と思ったので、 now.json の &lt;code&gt;routes&lt;/code&gt; オプションを使い、 &lt;code&gt;/api&lt;/code&gt; 配下に来たリクエストは &lt;code&gt;/api/index.go&lt;/code&gt; で受け取って振り分けるようにした。&lt;/p&gt;

&lt;h3&gt;
  
  
  わかっていないこと
&lt;/h3&gt;

&lt;p&gt;go.mod で &lt;code&gt;module github.com/kimihito/hoge&lt;/code&gt; みたいな指定をすると、 &lt;code&gt;now dev&lt;/code&gt; などで開発するとGitHubにアクセスしにいってしまう。 これがGo modのお作法なのか、 利用しているプラットフォームの動作なのかわかっていない（ょゎぃ）&lt;/p&gt;

&lt;h3&gt;
  
  
  参考にしたリンク
&lt;/h3&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vWogaON8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/github-logo-28d89282e0daa1e2496205e2f218a44c755b0dd6536bbadf5ed5a44a7ca54716.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/mini-eggs"&gt;
        mini-eggs
      &lt;/a&gt; / &lt;a href="https://github.com/mini-eggs/go-now-example"&gt;
        go-now-example
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Dev w/ Gin, deploy w/ Now.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="txt"&gt;&lt;div class="plain"&gt;&lt;pre&gt;Because this was slightly annoying to setup.

`$ ./scripts/dev.sh` to run locally.
`$ ./scripts/deploy.sh` to deploy.
&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;



&lt;/div&gt;
&lt;br&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/mini-eggs/go-now-example"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;


</description>
      <category>go</category>
      <category>vercel</category>
      <category>nowsh</category>
      <category>serverlessfunction</category>
    </item>
    <item>
      <title>外部キー制約を付与したデータにより Herokuで db:fixtures:load が落ちてしまう</title>
      <dc:creator>kimihito</dc:creator>
      <pubDate>Mon, 07 Oct 2019 02:35:07 +0000</pubDate>
      <link>https://dev.to/kimihito/heroku-db-fixtures-load-2jdh</link>
      <guid>https://dev.to/kimihito/heroku-db-fixtures-load-2jdh</guid>
      <description>&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;ENV['FIXTURES'] = 'hoge,fuga,bar'&lt;/code&gt; と並び順を指定してから投入しているが、あまり良いやり方ではなさそうなので、なにか良い方法があれば教えてください 🙏&lt;/p&gt;

&lt;h2&gt;
  
  
  遭遇した問題
&lt;/h2&gt;

&lt;p&gt;今作っているアプリケーションをHerokuで開発している。 Review Appsで動作を確認したいので、 &lt;code&gt;db:fixtures:load&lt;/code&gt; を読みだしたところ下記のようなエラーが出た。&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ActiveRecord::InvalidForeignKey: PG::ForeignKeyViolation: ERROR: insert or update on table "hoge" violates foreign key constraint "fk\_rails\_xxxxx"
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;&lt;a href="http://d.hatena.ne.jp/keyword/Rails"&gt;Rails&lt;/a&gt; のバージョンは 5.2.3 。&lt;/p&gt;

&lt;h2&gt;
  
  
  原因
&lt;/h2&gt;

&lt;p&gt;テーブル fuga が &lt;a href="http://d.hatena.ne.jp/keyword/hoge"&gt;hoge&lt;/a&gt; に対して外部キー制約を持っていたが、 &lt;a href="http://d.hatena.ne.jp/keyword/hoge"&gt;hoge&lt;/a&gt; より先に fuga のデータを作ろうとしてしまいエラーになっているようだった。&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/rails/rails/pull/27636"&gt;Use &lt;code&gt;SET CONSTRAINTS&lt;/code&gt; for &lt;code&gt;disable_referential_integrity&lt;/code&gt; without superuser privileges (take 2)&lt;/a&gt; が&lt;a href="https://github.com/rails/rails/commit/2812694aa65e4d0591e0ea6c5f7d8c97927be7dc"&gt;Revertされており&lt;/a&gt;、現状解決策はなさそう？&lt;/p&gt;

&lt;h2&gt;
  
  
  やったこと
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/rails/rails/blob/b9ca94caea2ca6a6cc09abaffaad67b447134079/activerecord/lib/active_record/railties/databases.rake#L210-L215"&gt;この辺を見て&lt;/a&gt;、&lt;code&gt;ENV['FIXTURES'] = 'hoge,fuga,bar'&lt;/code&gt; と投入順を指定することで対処した。ただこれだと &lt;code&gt;fixtures/*.yml&lt;/code&gt; の増減に引っ張られてしまうので、微妙だと思っている。&lt;/p&gt;

&lt;p&gt;なにか他に良い方法があれば教えて下さい 🙏&lt;/p&gt;

&lt;h2&gt;
  
  
  参考
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://stackoverflow.com/questions/43709491/heroku-ci-with-rails-fixtures"&gt;Heroku CI with rails fixtures - Stack Overflow&lt;/a&gt;&lt;/p&gt;

</description>
      <category>heroku</category>
      <category>rails</category>
      <category>postgres</category>
    </item>
    <item>
      <title>アバター画像のプレースホルダに avatars.dicebear.com  を利用する</title>
      <dc:creator>kimihito</dc:creator>
      <pubDate>Thu, 03 Oct 2019 15:00:00 +0000</pubDate>
      <link>https://dev.to/kimihito/avatars-dicebear-com-480n</link>
      <guid>https://dev.to/kimihito/avatars-dicebear-com-480n</guid>
      <description>&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;https://avatars.dicebear.com/v2/種類/値.svg&lt;/code&gt; みたいな感じで入力すれば&lt;a href="http://d.hatena.ne.jp/keyword/%A5%A2%A5%D0%A5%BF%A1%BC"&gt;アバター&lt;/a&gt;画像の&lt;a href="http://d.hatena.ne.jp/keyword/%A5%D7%A5%EC%A1%BC%A5%B9%A5%DB%A5%EB%A5%C0"&gt;プレースホルダ&lt;/a&gt;が手に入る。 他にもいろいろオプションがあるので便利かも。&lt;/p&gt;

&lt;h2&gt;
  
  
  やりたいこと
&lt;/h2&gt;

&lt;p&gt;&lt;a href="http://d.hatena.ne.jp/keyword/Web%A5%B5%A1%BC%A5%D3%A5%B9"&gt;Webサービス&lt;/a&gt;でよくある、ログインユーザのア&lt;a href="http://d.hatena.ne.jp/keyword/%A5%A4%A5%B3%A5%F3%B2%E8"&gt;イコン画&lt;/a&gt;像を表示するときデフォルトをどうしようと思っていた。&lt;/p&gt;

&lt;p&gt;&lt;a href="http://d.hatena.ne.jp/keyword/GitHub"&gt;GitHub&lt;/a&gt;のようなアイコン生成は &lt;a href="https://github.blog/2013-08-14-identicons/"&gt;identicons&lt;/a&gt; というらしく、似たような形で表現したいなーと思っていた。&lt;/p&gt;

&lt;h2&gt;
  
  
  やったこと
&lt;/h2&gt;

&lt;p&gt;npmパッケージなどないか調べていたら、上掲の &lt;a href="https://github.com/DiceBear/avatars"&gt;DiceBear/avatars&lt;/a&gt; を見つけたので導入した。 上掲のURLで利用することを推奨していたけど、npmパッケージで導入。&lt;/p&gt;

&lt;p&gt;「Sprite Collections」を見ると identicons だけじゃなくていろんな種類がある。&lt;/p&gt;

&lt;p&gt;READMEの通りに導入した。&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev.to/scottw/stimulus-2jio"&gt;Stimulus: A modest JavaScript framework for the HTML you already have.&lt;/a&gt;で使うときはこんな感じで&lt;code&gt;connect&lt;/code&gt; で呼び出す。&lt;/p&gt;

&lt;p&gt;&lt;a href="https://gist.github.com/5e003daad409e4688ab04798acd94373"&gt;gist5e003daad409e4688ab04798acd94373&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>placeholder</category>
      <category>icons</category>
      <category>npm</category>
    </item>
    <item>
      <title>Pocketでお気に入りしたページをはてなブックマークに追加するWebアプリを書いた</title>
      <dc:creator>kimihito</dc:creator>
      <pubDate>Wed, 27 Feb 2019 23:00:00 +0000</pubDate>
      <link>https://dev.to/kimihito/pocketweb-1ha6</link>
      <guid>https://dev.to/kimihito/pocketweb-1ha6</guid>
      <description>

&lt;h1&gt;
  
  
  TL;DR
&lt;/h1&gt;

&lt;p&gt;はじめてGo言語（Echo）でコードを書いてみた。&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/kimihito/tohatebu/"&gt;https://github.com/kimihito/tohatebu/&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  やりたいこと
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://getpocket.com"&gt;Pocket&lt;/a&gt; でお気に入りした記事をIFTTTのメール通知機能を使って&lt;a href="http://d.hatena.ne.jp/keyword/%A4%CF%A4%C6%A4%CA%A5%D6%A5%C3%A5%AF%A5%DE%A1%BC%A5%AF"&gt;はてなブックマーク&lt;/a&gt;に投稿していたが、メールでのブックマーク投稿機能の提供が終わってしまった。&lt;/p&gt;

&lt;p&gt;&lt;a href="http://bookmark.hatenastaff.com/entry/2018/12/17/150243"&gt;メールでのブックマーク投稿機能を終了します - はてなブックマーク開発ブログ&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;なのでGo言語の勉強も兼ねて作ってみた。Go言語わからなすぎてだいぶハマってしまった… 😭&lt;/p&gt;

&lt;h1&gt;
  
  
  やってること
&lt;/h1&gt;

&lt;p&gt;POSTが呼ばれたらパラメータにいるURLを&lt;a href="http://d.hatena.ne.jp/keyword/%A4%CF%A4%C6%A4%CA%A5%D6%A5%C3%A5%AF%A5%DE%A1%BC%A5%AF"&gt;はてなブックマーク&lt;/a&gt;&lt;a href="http://d.hatena.ne.jp/keyword/API"&gt;API&lt;/a&gt;を叩いて追加するだけ。&lt;/p&gt;

&lt;p&gt;Pocketでお気に入りをしたらPOSTを呼ぶ部分は IFTTTの webhook serviceからやっている。&lt;/p&gt;

&lt;h1&gt;
  
  
  使ったもの
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://d.hatena.ne.jp/keyword/Golang"&gt;Golang&lt;/a&gt; 1.11.5 （ Go modulesを利用 ）&lt;/li&gt;
&lt;li&gt;echo&lt;/li&gt;
&lt;li&gt;&lt;a href="https://heroku.com"&gt;Heroku&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://ifttt.com/maker_webhooks"&gt;IFTTT webhooks&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://ngrok.com/"&gt;ngrok&lt;/a&gt; （ローカルでの動作確認）&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  ハマったこと
&lt;/h1&gt;

&lt;p&gt;&lt;a href="http://developer.hatena.ne.jp/ja/documents/auth/apis/oauth/consumer"&gt;リクエストトークンの取得&lt;/a&gt; 部分がうまく書けず、結局&lt;a href="https://blog.kymmt.com/entry/hatenablog_gem"&gt;はてなブログ API 用の gem を書いた - blog.kymmt.com&lt;/a&gt; に入っている&lt;a href="https://github.com/kymmt90/hatenablog/blob/61b1015073cba9a11dfb4fd35d34922757abd70b/exe/get_access_token"&gt;トークンを取得するRubyコード&lt;/a&gt;を呼び出して取得した。&lt;/p&gt;

&lt;p&gt;書いてはみたけどまだGo言語に慣れていない…&lt;/p&gt;

&lt;h1&gt;
  
  
  参考にしたもの
&lt;/h1&gt;

&lt;p&gt;特に hatena-go についてはめっちゃコード参考にしました。ありがとうございます。&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/8pockets/hatena-go"&gt;https://github.com/8pockets/hatena-go&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://nasust.hatenablog.com/entry/2016/12/14/194519"&gt;Go言語 / golangで、はてなAPIをOauth1.0aでアクセスする為にトークンを得る - nasust life blog&lt;/a&gt;&lt;/p&gt;


</description>
      <category>go</category>
      <category>ifttt</category>
      <category>heroku</category>
    </item>
  </channel>
</rss>
