moonq515@黄金体験 @moonq5151 夜行バスが満席だったので苦肉の策で夜行フェリーを予約したものの、な、何じゃこりゃー! めちゃくちゃ豪華じゃん!え~?😆飛行機と比べたら安いし、また世界が広がった(笑) pic.twitter.com/NWBt5XJWxt 2019-01-14 21:51:17
moonq515@黄金体験 @moonq5151 夜行バスが満席だったので苦肉の策で夜行フェリーを予約したものの、な、何じゃこりゃー! めちゃくちゃ豪華じゃん!え~?😆飛行機と比べたら安いし、また世界が広がった(笑) pic.twitter.com/NWBt5XJWxt 2019-01-14 21:51:17
ほんとうに必要な物しか持たない暮らし◆Keep Life Simple◆〜インテリアのきろく〜2014年10月一条工務店i-smart Osaka★Japan 本当に必要な物しか持たない暮らしがしたい モノトーン×ダークブラウンをベースに +αでグリーンを取り入れた シンプルなお家です ズボラーのザッパー(大雑把)です 【断捨離】クローゼットから追放したおば見え色はこんな色。2014年に一条工務店のおうちを建て、仕事や子育てをしながらでも簡単にキレイなおうちをキープできる工夫を日々、発信中♪夫婦+子供2人+ホワイトシェパード2匹と暮らしてます。整理収納アドバイザー1級インスタグラム■yukiko_ismart▶▶自己紹介はこちらドッグカフェ経営:DogCafe RUDI淡路島で貸別荘経営:HUGmeOCEAN(ハグミーオーシャン)プロデュースブランド「enn.」ご訪問ありがとうございますク
ぼくは、本が好きだ。 マンガ、小説、自伝、実用書、専門書。 部屋の中には、そんな本たちが溢れかえってました。 しかし、いつしかこの本たちは、部屋のスペースとともにぼくの生活まで圧迫するようになった。 そんな時、自分で本を電子化する”自炊”という方法があることを知りました。 しかし、ぼくも「本はやっぱり紙に限る」と思っていた。 でも、この本の山をどうにかしないとストレスがハンパない。 考え抜いたすえ、ぼくは自宅の本を自炊することにしました。 そして、部屋の中から大量の「モノとしての本」を処分することができました。 本がなくなった部屋を見渡して思ったのは、 「最高に気持ち良い」 ということ。 その他にも、電子書籍を利用することには、「紙で読めない」という欠点を余裕で帳消しにするメリットがある。 というわけで、この記事では 「自炊とは?」 「自炊ってどうすればできるのか?」 ということを書いてい
はじめに 現在、少食を実践するなど食生活に関しては非常に気をつけていますが、どうしても別腹と割り切ってしまうほど好きな食べ物があります。それは、カレーです。 僕が大好物になるカレーの基準は、激ウマか激辛かのどちらかで、この2つを兼ね揃ったカレー屋が秋葉原近郊に多いことに気がつきました。 そこで今回は、長年秋葉原近郊のカレー屋を廻りつくし、僕が是非ともみなさんに行って欲しい激ウマで激辛なカレー屋さんをご紹介します。 秋葉原で美味しいカレーが食べたい!と思った方に参考になればと思います。 トプカ 万世橋を渡り、小川町方面の小路にあるカレー屋です。僕はこれまでに10回以上訪れたことがあるお気に入りのカレー屋です。 インド風カレー、欧州カレーの二つの風味を楽しむことができ、僕は激辛のインド風カレーが大好きです。 特にインド風カレーのムルギーカレーは、激辛なルーと野菜の甘みが絶妙に絡み合っていて辛い
今回はウォール街〜サウスストリートシーポートと、地下鉄に乗ってチェルシーマーケット〜ハイライン〜ハドソンヤーズを案内していただきました。 それぞれの街や建物、そしてニューヨークの歴史を時にはクイズ形式で教えてくださり、楽しくてとても勉強になりました。 特にサウスストリートシーポートでは、かつての港のひとつひとつの埠頭が公園やモールに生まれ変わり、今も人々に楽しまれていることを教えていただきました。 ミエさんも仰っていましたが、既存のものを無駄なく活用するニューヨークの考え方はとても素敵だと思いました。 ニューヨークは歩くだけでころころ雰囲気が変わって楽しいですが、歴史や価値観を学ぶことで、より景色が鮮やかになりました。 また道中、お腹が空いていないか、疲れていないかなど気にかけてくださり、とても嬉しかったです。 この度は誠にありがとうございました。 またニューヨークに来る際はぜひお願いした
Buyer Protection Program When you buy a domain name at Dan.com, you’re automatically covered by our unique Buyer Protection Program. Read more about how we keep you safe on our Trust and Security page. Next to our secure domain ownership transfer process, we strictly monitor all transactions. If anything looks weird, we take immediate action. And if the seller doesn't deliver on their part of the
(2019/04 追記 この記事の情報は古いです。今では、GCPのIAMでも IAM Custom Roles によってカスタマイズしたロールが作れたり、Cloud IAM Conditions が登場してリソースの制限がしやすくなったりしています。また、メディア管轄のAWS Organizationsの活用については 「これ危ない設定じゃないでしょうか」とヒアリングするための仕組み @AWS Summit Tokyo 2018 もご覧ください) メディア事業(アメーバなど)を中心にAWS/GCPを担当している柿島大貴です。前回は、Google Cloud Platform(GCP)の各プロジェクトでコストを追える環境を作る を書きました。前回の続報としては、一部には使ってもらいつつも、可視化の部分で cloudyn を検証中です。 今回は、GCPのリソースの認可の話になります。GCPの利
翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。 ユーザープールにグループを追加する Amazon Cognito ユーザープール内のグループのサポートにより、ユーザーの作成と管理、グループへのユーザーの追加、およびグループからのユーザーの削除が可能になります。グループを使用して、ユーザーのコレクションを作成してそのアクセス権限を管理したり、異なるタイプのユーザーを表したりできます。 AWS Identity and Access Management (IAM) ロールをグループに割り当てて、グループのメンバーのアクセス許可を定義できます。 グループを使用して、ユーザープールでユーザーのコレクションを作成できます。この操作は、これらのユーザーのアクセス権限を設定するためによく行われます。例えば、ウェブサイトやアプ
包丁は大きく分けて「和包丁と「洋包丁」にわけられます。 簡単に言いますと、和食の料理人は「和包丁」 洋食の料理人は「洋包丁」を使っているケースが多いです。 では何が違うのでしょう? まず形状も違います。上の画像が「洋包丁」下の画像が「和包丁」です。 形状だけではなく、素材の「材質」も違います。 包丁に関しては書き始めたらサイトが一つ作れるほど深い世界なので、ここではどんな包丁が良いか迷っている方に僕なりのおすすめをご紹介したいと思います。 まず、僕自身がイタリアンの料理人ということもあり普段使っている包丁は洋包丁なので、和包丁が欲しいな~と思ってる方は他のブログ等をご覧いただいた方がよろしいかと思います。 僕も和包丁は「出刃」「菜切り」程度しかもっていないので詳しくは書けません。 大雑把に言いますと、和包丁は「日本鋼」を材質として作られている物が多いです。 鋼は「鋭い切れ味」ですがとても「
もう半年くらいフルDockerでmicroservicesなサービスを運用してるんですが、イマイチパフォーマンスを出し切れていないなという面がありまして、今回DockerホストのTCPカーネルパラメータを抜本的に見直しました。 そしたら劇的に症状が改善して、インスタンス数も削減できた上に安定してメシウマ状態になったので紹介します。実際効果があったのでチューニングポイントとしてはある程度正解であったと考えていますが、もちろん扱ってるアプリケーションの特性にもよるはずなので一つのケーススタディであることをご了承頂ければと。 前提 まずは今回のお話の前提を。こんな環境です。 EC2 c3.xlarge ホストはUbuntu(EC2 Optimized AMIは未使用) Docker 1.11.2 MySQL(HAProxy経由)やRedisへのデータストアの通信、各microservicesへの
Raspberry Pi 3にArch Linux Armをインストールして、 オンボードのEthernetとWi-FIに個別のIPアドレスを付与する点で 非常にハマったのでメモを残しておく。 起 Arch Linux Armのネットワーク設定は、 デフォルトの場合、Systemd-Networkdが使われていて、 Ethernetの方は自動認識してくれるが、Wi-Fiは設定を作成しないと接続できない。 そこでWi-Fi接続の際は、WPA_Supplicantの定義ファイルとSystemd-Networkdの定義ファイルを作成する必要がある。 WPA_Supplicantの定義 -> Wi-Fi接続設定(SSID、パスワード関連) Systemd-Networkdの定義 -> IPアドレス設定(DHCP、手動接続など) ところが、これをやってもIPアドレスは振られるものの なぜかWi-FI
Google Cloud Next '19にて発表されたCloud Runを触ってみます。 公式ガイドに従ってコンテナの作成からデプロイまで試し、認証付きのAPIを作成します。 Cloud Runとは? 公式ドキュメントによると Run stateless HTTP containers on a fully managed environment or in your own GKE cluster. とのことで、マネージド環境もしくはGKEクラスタでコンテナを実行できるようですね。 つまり、コンテナを利用することでAWS Lambdaなどのようなサーバレスなサービスを任意の環境で実行することができるようです。 詳細な説明はあんまり自信がないので公式サイトを見てください。また、2019/05/08現在Cloud Runはβ版なので今後仕様が大きく変更になる可能性があります。 まずはクイッ
一度買った調理器具はめったに買い換えず、ずっと使い続ける派だというリュウジ@料理のおにいさん。料理研究家である彼の“バズレシピ”に欠かせない調理器具を紹介していただきました。どれも「一家にひとつあれば間違いなし」と太鼓判の逸品です! (執筆/荒川のじみ、編集/メルカリマガジン編集部、撮影/高橋奈水子) リュウジさん これは7〜8年前に購入したものなので年季が入ってます。僕は昔、冷蔵庫にチーズの塊を常備していて、それを削って粉チーズにしていたんです。でも、ボックス型のチーズ削りは硬くてなかなか削れないし、料理する前に疲れちゃうんです。でもこれを使えば、疲れずにめちゃめちゃ削れます。 ニンニクや生姜、レモンの皮もこれでOK。ニンニクなんて、普通のおろし金で削ると刃の間に挟まって取れないときがありますよね。挟まったニンニクを取るためにスプーンを使うと、余計な洗い物も増える。でもこのゼスターなら余
日本生まれの万能包丁「和 NAGOMI」 鋭い切れ味と洗練されたデザインを兼ね備えたおすすめの包丁ブランド。"まぼろしの鋼材”で作られた「和 NAGOMI Professional」も新登場。詳しくはこちら >Amazonで見る >楽天で見る >ふるさと納税で見る レビューおしゃれで"使える"包丁「和 NAGOMI」のリアルな使用感 ー 期間限定!Amazonセール ー 早い者勝ち本日限りのタイムセール Check!人気の包丁が半額も! ー 楽天ポイント最大50%バック ー 期間限定楽天スーパーディール 料理人の私が、家庭用、初心者におすすめの包丁ブランドを本音で紹介します。 ここでは、包丁についてよく知らなくても、とりあえずこれを選んでおけば間違いないよという信頼のおける包丁ブランド7つを紹介しています。 基本は、この7つの日本国内の包丁ブランドをおすすめします。 グローバル(YOSHI
Web developer の大庭 (@ohbarye) です。 今回はタイムゾーンにまつわるお話をしたいと思います。 タイムゾーンは私が Quipper に入社したばかりの頃に最も頭を悩ませたことの一つです。入社以前にはタイムゾーンを跨ぐようなグローバルなアプリケーションの開発を全くしてこなかったので、まさにゼロから学び、考え、そしてハマりました。今でも気を抜くとハマりそうです。 入社からおよそ1年。この間に得た経験と知識を活かし、タイムゾーンと向き合うテクニックをまとめてみたいと思います。 目次 はじめに 前提 - Quipper のご紹介 難しさ 現在時刻を扱う問題 言語、フレームワークの実装 認知の問題 タイムゾーンを考慮した設計の問題 解法 基本的な考え方 デフォルトタイムゾーンを設定する PostgreSQL Rails タイムゾーンを意識した設計 タイムゾーンを意識したプログ
やりたいこと Spring SecurityでWeb API呼び出し時などで、リクエスト毎にヘッダのAPIキーで認証する。 Javaによる例は個人ブログの記事【Spring】Spring Securityを使ってWeb APIの認可を行うに載せています。この記事では@PreAuthorizeによる権限チェックの例も載せています。 実現方法 セッションを使用せずリクエスト毎に認証を実施する設定を行う リクエストヘッダ中のAPIキーによる認証処理を行うためのフィルター、サービスを作成する 2.で作成したフィルター、サービスを登録 1.リクエスト毎に認証を実施する設定 WebSecurityConfigurerAdapterのconfigureメソッドでセッションのポリシーをステートレスに設定する。 具体的には以下のようにSessionCreationPolicy.STATELESSを設定する。
世の中にたくさんのアプリが存在しますが、実はどんなアプリも通知のパターンとしては、だいたいこのようなものに落ち着くのではないでしょうか。 通知パターンの分類から検討事項を洗い出す 送りたいプッシュ通知の内容を分類した結果をみると、いくつか検討が必要な項目が見当たります。それぞれについて見ていきましょう。 検討1:個別通知の発火タイミング ユーザーが作品を投稿できるようなサービスの場合、そのイベントの発生時刻をサービス運営者が制御することは不可能といって良いでしょう。これは、真夜中にユーザーのデバイスに通知が行ってしまう可能性があるということを意味します。 こうした場合、ユーザーのデバイスにプッシュ通知が到達したあと、すぐにメッセージを表示せずに溜めておき(サイレントプッシュ通知)、定時にユーザーに知らせるという手法を検討すると良いでしょう。 一般的な方はアプリを 通勤・通学中(7:00〜9
WebFlux で Server-Sent-Events ができるので、これと Redis を利用してリアルタイムなチャットのようなものを作ってみた。 環境 Spring Boot 2.2.0.RC1 (Spring Framework 5.2.0.RELEASE) (Spring Data Redis 2.2.0.RELEASE) Redis 5.0.5 Server-Sent-Events を行うには body に Flux<ServerSentEvent> を設定してやればいいらしい。 public class HelloHandler { public RouterFunction<ServerResponse> routes() { return RouterFunctions.route() .GET("/sse", this::sse) .build(); } public
オリジナルの英語版はReddieの公式ブログをご覧ください。 この記事は、まだリリースされていない、Redisストリームの探求を目的としています。Redisストリームを使うと、いくつかのパワフルなユースケースが可能となります。ここではストリームを利用して、Hipchat、SlackやIRCのような、エンドツーエンドのリアルタイムのチャットルームを作っていきます。 Github Github上でチェック:github: https://github.com/aprice-/redisstreamchat Redisストリームは、Redis用に構築された新しいデータ構造で、時系列データを扱います。Redisリストに似ていますが、以下の2点において異なります。 オリジナルインデックスではなく、タイムスタンプを使用 各ストリームは、Redisハッシュに似た複数フィールドを持つことが可能 ストリーム
.app 1 .dev 1 #11WeeksOfAndroid 13 #11WeeksOfAndroid Android TV 1 #Android11 3 #DevFest16 1 #DevFest17 1 #DevFest18 1 #DevFest19 1 #DevFest20 1 #DevFest21 1 #DevFest22 1 #DevFest23 1 #hack4jp 3 11 weeks of Android 2 A MESSAGE FROM OUR CEO 1 A/B Testing 1 A4A 4 Accelerator 6 Accessibility 1 accuracy 1 Actions on Google 16 Activation Atlas 1 address validation API 1 Addy Osmani 1 ADK 2 AdMob 32 Ads
こんにちは。Komerco事業部エンジニアの高橋(id:yosuke403)です。 Komercoは、「料理が楽しくなるマルシェアプリ」をコンセプトに、料理が楽しくなる器やカトラリー、リネン雑貨等を出品/購入できるサービスです。現在はiOS版のアプリケーションを提供しています。 komer.co Komerco - コメルコ - by クックパッド Cookpad Inc.ショッピング無料 先日、Komercoアプリの画像表示の速度を改善したので、それについて書こうと思います。 背景と成果 Komercoで商品を選ぶユーザにとって、商品画像は当然重要なものです。 しかし以前は、アプリを起動してみると画像の表示が遅く、商品一覧をスクロールするとしばらく経ってから画像が表示される状況でした。 こちらは改善前のバージョンで、会社のWiFiに接続し、初回起動(キャッシュなし)から新着商品一覧を表示
2018-02-28 wed. 第 3 回 Google Cloud INSIDE Games & Apps Fringe81株式会社 豊島 正規 氏の登壇スライドです。Read less
By Hassan Djirdeh List rendering is one of the most commonly used practices in front-end web development. Dynamic list rendering is often used to present a series of similarly grouped information in a concise and friendly format to the user. In almost every web application we use, we can see lists of content in numerous areas of the app. In this article we’ll gather an understanding of Vue’s v-for
custom_game_engines_small_study.md CUSTOM GAME ENGINES: A Small Study A couple of weeks ago I played (and finished) A Plague Tale, a game by Asobo Studio. I was really captivated by the game, not only by the beautiful graphics but also by the story and the locations in the game. I decided to investigate a bit about the game tech and I was surprised to see it was developed with a custom engine by a
半年前くらいからGAE/Goを結構触っているので、ちょっと書いておく。 今回は、CloudStorage上のファイルをGAE/Goで配信する方法。 概要 GoogleCloudStorageにおいてるファイル(例えば画像)をWebサービス上でユーザに配信したいということがある。 画像ならブラウザ上で表示させるだけでいいかもしれないし、その他のファイルならダウンロードさせたいし、複数ファイルならzipで固めて配信したい。 イメージ cloud.google.com/go/storageのライブラリを利用する。 以下の例では、エラー処理などは省略する。また、普段はEchoを使ってるので以下のコードは試してないし正しく動かない部分があるかも。 コード例 画像を表示させる 画像をブラウザで表示させるケース。 特に難しい部分はなく、シンプルに書ける。 検索して出て来るサンプルだとioutil.Rea
先日公開した Web API サービス Pixelaは、Google App Engine 上で Go Web Application として動いている。Go のバージョンには特に気を使わずに開発をしてたんだけど、GAE で Go の 1.11 がサポート(まだ β だけど)されたこと、そして Go 1.11 であれば GAE Standard Environment で System Package として imagemagick が使えそう(svg → png 変換がしたい)ということもあって、Go 1.11 へのモチベーションが俄然上がったので、今回移行してみた。このエントリは、その際にやったことのまとめメモ。 Before Go 1.9.4 パッケージ管理はなにもしてない状態(ひどい) After Go 1.11.1 パッケージ管理に Modules を使用 やったこと goenv
これは本当に軽微なメモなんですが、GAEでGo1.11を使うために移行をしたことで、認証が動かなくなっていることに気づくのが遅れてしまいました。他の人がそうならないように記録しておきます。 これまで仮にGAE/GoでFirebaseの認証機構を使っていたとして、今までだとGAE/GoでのFirebaseクライアントの初期化はこのようにすればよかった。 もっと詳細に書くと、AppEngineのcontextを含んだ状態でurlfetchを呼び出してさえいれば、Firebaseのサービスアカウントの情報を明示的に指定しなくてもよかった。 opt := option.WithHTTPClient(urlfetch.Client(ctx)) app, err := firebase.NewApp(ctx, nil, opt) if err != nil { ... }これからGAE/Goが2nd
Google Cloud Platformのマネージドサービスを使ってGraphQL APIを開発してみました。GraphQLについては初心者でしたので、実装しながらGraphQLについて学んだことを記録します。 利用した技術 App Engine SE Go 1.11 Go 1.11が11月にβリリース 2nd genと呼ばれる次世代ランタイム Cloud Datastore スケーラビリティの高いNoSQLデータベース Stackdriver Stackdriver Trace for Goを使いたかったため使用 個人で使う分には無料でいけます。動作も速い!! GAEの2nd genではプラットフォームのことはあまり意識することなく普通にサーバーを実装すればよいです。 にもかかわらず、必要な時、必要な分だけ高速に起動するので最高です。 主なライブラリ 使用した主なライブラリは以下のとお
どんな本? 機能ごとに解説している Vue.js 入門書です。これからはじめる方にも、すでに Vue.js をお使いの方にも、楽しんでいただける内容になっています。 しっかり学習できる! Vue.js は直感的に使える機能が多く、雰囲気で使ってしまいがちです。どんなメリット&デメリットがあるかも解説しているため、しっかりと学習できます。 「Vue.js が楽しい!」ウェブフロントエンド界隈でこの言葉を耳にすることが増えました。 フロントエンドを取り巻く技術の進化によって、フロントエンドの役割は増え、フレームワークもより身近なものになっています。 この本では「Vue.js ってなに?」「フレームワークってなに?」という基礎概念と導入からプロダクトに役立つ情報までを体系的に解説しています。 これから JavaScript のフレームワークを始める方にはもちろん、すでに Vue.js をお使いの
Nuxt.js, Firebase, Stripe をフル活用してサーバーレスでJAMStackなECサイトを2日で開発した話stripeVue.jsFirebasedeprecatedNuxt 本記事で紹介しているサービスの公式Twitterアカウントができました → @jslounge_info はじめに potato4d こと花谷拓磨です。 普段は ElevenBack という屋号のもと、フロントエンドを中心としながらも、デザインやサーバーサイドなどをも含めて作業することが多いのですが、屋号での活動の一環として、 JSLounge という渋谷で活動するハンズオン団体の運営を行っています。 その JSLounge にて過去に開催したハンズオン資料を入手できるサイトを構築することとしました。 通常、ハンズオンとなればその場でメンターがついて 1:1 で進めますが、 JSLounge の資
はじめに 質問箱や、ボタンメーカー、診断メーカー等を始めとする 「OGP画像生成系」 を 2個以上作ってそれのベストプラクティスがわかってきたので、共有したいと思います。 宣伝 この技術を使ったサービスを実稼働2日ぐらいで作りました! 使い方は簡単です! メッセージカードを書いて、Twitterにシェアするだけ。 #嵐ありがとう OGP画像生成系サービスとは? 質問箱 みんなのボタンメーカー (。・ρ・)オシテミテ キズナアイな気分のときに押すボタンを作りました!みんな押してね!#キズナアイな気分のときに押すボタン#みんなのボタンメーカー https://t.co/2mzJUE48zj — Kizuna AI@hello,2019‼︎ (@aichan_nel) 2019年1月29日 「ツイッターでつぶやけるボタン」を簡単に作成できるサービスをリリースしました【個人開発】 すごくいいサービ
var transaction = db.runTransaction(t => { return t.get(cityRef) .then(doc => { // Add one person to the city population var newPopulation = doc.data().population + 1; t.update(cityRef, { population: newPopulation }); }); }) .then(result => { console.log('Transaction success!'); }) .catch(err => { console.log('Transaction failure:', err); }); この例だと transaction は1つの DocumentReference に対してのみ行われていますが
Google製、モバイル・ウェブ・サーバー開発に対応したCloud Firestoreを使いこなすための勘所をつらつらと書いていきます。パート1の本記事ではFirestoreの全体観を掴んでいただけたらと思います。 Cloud Firestoreは、Firebaseのサービス群の1つという捉え方と、GCP(Google Cloud Platform)のサービス群の1つという捉え方がありますが、本記事ではFirebase経由で使うことを前提に書いていきます。Cloud Functionsなど関連サービスとして言及するものも同様です。Firebaseはざっくり言うとGCPのクライアントアプリ向けサービスを使いやすく提供しているラッパーサービスなので、それで足りるものはFirebase経由での利用をお勧めします。 ドキュメントも次のように2箇所にあるのですが、Firebase経由で使う場合は基本
Firestore におけるDB設計 DB設計について考える場合、そもそもFirestoreのようなドキュメント指向のNoSQLデータベースではどんなDB設計をするべきなのか、いろいろと情報を漁ってみました。 以下は、いろいろ調べた中で、個人的に参考になった記事です。 おそらくFirestore のDB設計について考える場合、今回挙げた記事は、何度も読むことになりそうなので、備忘録的に残すことにしました。 NoSQLデータモデリング技法 参考になった点 Firestore に限定されず、NoSQLデータベースとしてのプラクティスが網羅されている いきなり具体例ではなく、概念から解説してから、具体的な技法について解説している RDBでは、基本的には、正規化を徹底するが、NoSQLデータベースでは、非正規化を許容する、むしろ活かす Firestore Database Design https
はじめに Firebase Realtime DBを実践投入するにあたって考えたことを読んで頂いてありがとうございます。 多くの方から「いいね」を頂いて、今回のこの記事を書くモチベーションになりました 本当にありがとうございました! さて、CloudFirestoreは、Firebase Realtime Databaseとは全く違うデータベースです。特にSubCollectionやQueryが導入されたことにより、リレーションシップの設計に関して大きく異なります。 この記事では、主にCloudFirestoreにおけるリレーションシップの設計方法から、アプリ・CloudFunctionsに至るまでを幅広く解説して行こうと思います。 次の記事ではデータベースの歴史を解説しています。 RDBの限界とNoSQLの登場 Cloud Firestoreでの開発について 私の経験上確実に断言できるこ
A few months ago, a really nice Go package vektah/gqlgen for GraphQL became popular. This article describes how GraphQL is implemented in "Spidey", an exemplary microservices based online store. Some parts listed below are missing, but complete source code is available on GitHub. Architecture Spidey encompasses three services that are exposed to the user through a GraphQL gateway. Communication wi
Yesterday at reInvent, Amazon launched AppSync, a new GraphQL service featuring real-time updates and built-in offline support. Managed in the AWS console, AppSync’s GraphQL layer aggregates data from other AWS products such as ElasticSearch and DynamoDB. In your application, you query your GraphQL API with the AppSync Client, available for web and native. The AppSync announcement got a lot of lov
この記事は Vue.js #3 Advent Calendar 2018 の14日目の記事です。 はじめに ある日、「Vue.jsとGraphQLでなんか簡単な画面を作るハンズオン的なのできないか?」という要請が来たので、この記事を書きました。 ついでにAmplifyCLIを使えば、より簡単にAWSのサービスを構築することができてアプリ側からの連携も楽になるので、Amplifyも採用しました。 この記事では、Vue.jsでタイトルと内容TODOリスト(みたいなもの)を作成/削除するアプリケーションを、AWSにバックエンドのサービスをデプロイしながら開発していくことを体験することを目的に書いています。お時間のある方はぜひ試してください。 前提条件 下記がインストール済みであること。 Node.js / npm AWSCLI アーキテクチャ フロントはVue.js(以下、Vue)で書きます。ロ
こんにちは、虎塚です。 先月のAWSサミットで行われたセッション「Amazon DynamoDB テーブル設計と実践 Tips」をタイムシフト聴講しましたので、またまたレポートします。 講師は、アマゾン データサービス ジャパンの安川健太さんです。 AWS Summit Tokyo 2014 開催レポート動画・資料一覧 | アマゾン ウェブ サービス(AWS 日本語) Amazon DynamoDB テーブル設計と実践 Tips(AWS Summit Tokyo 2014 | TA-10) はじめに Amazon DynamoDBとは NoSQLの技術をサービスとして使う 構築と運用はAWS 開発者はコードを書くだけで使える 安定した予測可能なパフォーマンス シームレスなスケーラビリティの低コスト Amazon DynamoDBの特徴 書き込んだデータは3ヶ所のAvailabilityZo
はじめに サーバーレスにした動機 AppSyncベースでいくと決めたこと リソースが限られていたこと 新しい技術に投資しておきたかった 実際のアーキテクチャ Step Functionsについて サーバーサイドkotlinについて 所感 良かった点 課題 おわりに はじめに グノシー事業部でサーバーサイドの開発を担当している吉澤です。好きなスポーツは釣りです🎣 今回第4回目のグノスポ記事は、サーバーサイドのアーキテクチャについてです。グノスポではサーバーレスアーキテクチャを採用しています。言語はほぼkotlinです。 それぞれ採用した理由や技術要素について説明したいと思います。 その他のグノスポ記事はこちら tech.gunosy.io tech.gunosy.io tech.gunosy.io サーバーレスにした動機 AppSyncベースでいくと決めたこと 第二回で紹介したようにApp
.app 1 .dev 1 #11WeeksOfAndroid 13 #11WeeksOfAndroid Android TV 1 #Android11 3 #DevFest16 1 #DevFest17 1 #DevFest18 1 #DevFest19 1 #DevFest20 1 #DevFest21 1 #DevFest22 1 #DevFest23 1 #hack4jp 3 11 weeks of Android 2 A MESSAGE FROM OUR CEO 1 A/B Testing 1 A4A 4 Accelerator 6 Accessibility 1 accuracy 1 Actions on Google 16 Activation Atlas 1 address validation API 1 Addy Osmani 1 ADK 2 AdMob 32 Ads
インタプリタ式の言語処理系を書いたことが無かったので一度実装してみようと思って,この手のは Lisp が定番だということで,前々から気になっていた Make a Lisp (mal) に挑戦してみました. Make a Lisp (mal) とは Make a Lisp は色々な言語で mal という Lisp 方言を実装してみようというプロジェクトです. 30以上の言語での mal 処理系実装 11段階のステップに分けられた実装ガイド(全体の構成図付き) 各実装ステップごとのテストケース といったほしい情報が揃っており,言語処理系初心者でも Lisp 実装について簡単に学べる環境が整っています. 11段階の各ステップは以下の様な感じです. The REPL : 実装を始める準備(自分の言語を Makefile に登録して make 一発でテストを走らせられるようにする,関数のスケルトンの
1. Mal is a Clojure inspired Lisp interpreter 2. Mal is a learning tool Each implementation of mal is separated into 11 incremental, self-contained (and testable) steps that demonstrate core concepts of Lisp. The last step is capable of self-hosting (running the mal implementation of mal). See the make-a-lisp process guide. The make-a-lisp steps are: step0_repl step1_read_print step2_eval step3_en
こんにちは、クラウドワークスの新規事業のエンジニアとして仕事をしている高梨です! 最近、「実践ドメイン駆動設計」という本を読みました! 500ページ近くもある技術書で、なかなか量は多かったのですが、DDDがどんなものなのか一通り大枠を掴めた気がします。 ただ読み終わった後にこんな疑念や不安をいだきました。 「たしかにかなり面白そうだけど、実際にやるとどれだけ工数かかるんだろう...?」 「設計の話は全然出てこなかったけど、DDDで作るとなるといったい何から始めればいいんだ?」 「戦術についての知識はついたけど、実際に書こうとしたらできなそうだな...」 そこで、そういった疑念や不安を解決するために、実際にDDDでサンプルプロダクトを作ってみようと思ったわけです。 実際に作ってみるのが、結局一番理解が進みますしね。 今回は、そのプロダクトがリリースされるまでの過程や感想を、作成した設計書やソ
TOP 東京タヌキ探検隊!は緊急事態宣言下であろうとなかろうと通常運転しています。 東京都23区内にタヌキがいるって?! そう、いるのです。 500〜1000頭(推定)が生息しているのは確実です。 では、タヌキたちは大都会でどうやって生活しているのでしょう? その謎を解くのが東京タヌキ探検隊!の目的です。 東京タヌキ探検隊!はタヌキ情報の収集、調査活動を行っています。タヌキを追い回すのが目的ではありませんので誤解のないよう。逆に、タヌキをそっと静かに見守り、タヌキたちが住みやすい環境を守ろうと考えています。 東京タヌキ探検隊!は皆様からの目撃情報によって成立しているまじめなサイエンス・プロジェクトです。 みんなでサイエンスしませんか? 東京タヌキ探検隊!は1999年に原型がスタートしました。「オープンサイエンス」や「シチズンサイエンス」の最も初期の取り組みであり、世界的にも極めて先駆的なも
AWS CDKをさわれば触るほど、素晴らしさに気づけます。 今回は、AWS CDKを使ってAppSyncとDynamoDBを使用したサービスを作ってみたいと思います。 本記事では、TypeScriptの使用方法や、CDKの基本的な使い方は紹介しません。 もくもくと、CDKでAppSyncを使うまでにしたことを記載します。 また本ブログで使用した、AWS CDKのバージョンは1.3.0です。 プロジェクトの初期設定 AWS CDKのスタックを作成するための初期設定を行ないます。 個人の趣向ですが、cdk initをせずにプロジェクトの設定を行います。 $ mkdir cdk-appsync-101 && cd $_ $ git init $ npm init -y $ npm i @aws-cdk/{aws-appsync,aws-dynamodb,aws-iam,core} $ npm i
CDKプロジェクトと必要なライブラリのインストール $ mkdir aws-cdk-construct-library-sample $ cd aws-cdk-construct-library-sample $ cdk init app --language=typescript $ npm install --save @aws-cdk/aws-lambda @aws-cdk/aws-apigateway @aws-cdk/aws-iam @aws-cdk/aws-ecs-patterns @aws-cdk/aws-ecs High Level Constructで実装 まずは、High Level Constructで実装します。Lambda + API Gatewayのリソースを作成します。 サンプル用のLambdaのコード export async function handle
Comfortable C3 makes it easy to generate D3-based charts by wrapping the code required to construct the entire chart. We don't need to write D3 code any more. Customizable C3 gives some classes to each element when generating, so you can define a custom style by the class and it's possible to extend the structure directly by D3. Controllable C3 provides a variety of APIs and callbacks to access th
はじめに Sentry は OSS のエラー検知プラットフォームです.様々な言語に対応した SDK が用意されており,例えば JavaScript モジュールを使うとブラウザ上で発生したエラーや Node 上のエラー通知が可能になります. SPA でフロントエンドでの責務が多くなってきた昨今,エラーの検知は課題になりがちです.ユーザーの申告でしか気づけなかったバグや,特定のブラウザ・デバイスでしか発生しないエラーに気づけるようになります. Nuxt.js アプリケーションと Sentry を組み合わせた本番運用で,考慮が必要になった Nuxt.js モジュールと環境変数の扱いに関して紹介したいと思います. TL;DR; 本番環境のエラー検知のため Sentry を使うときの DSN 管理に困った DSN をサーバの環境変数として設定し,クライアント側には動的に渡したい nuxt-env は
最新の情報はAtCoder公式情報サイトAtCoderInfoに記載されています info.atcoder.jp 以下、古い記事の内容となります。 近頃「AtCoderの色を就活等でアピールしたい時に上手く出来ない!」と言われるので、「どれくらいのレベルの人なの?」という説明と、エンジニアさん向けに「実際どういう問題が解けるの?」というまとめを書いておきたいと思います。解き方のヒントが書いちゃってあるので、自分で解きたい人は、ヒントを読む前に解いてください。 Update履歴 2020/6/22 茶色・緑色に関する評価を書き足しました。参加人数を更新しました。 2022/10/02 アップデート要求が多くありますが、現状でも大きな変化はありません。(この文章を追記しました) 2023/12/09 公式サイトへのリンクを冒頭に追加しました。この記事は昔のものになります。 大前提:AtCod
はじめまして。kawap23(twitter ID: kawap23)と申します8月10日に行われたAtCder Begginer conntest 137で水色になれたので、(競技プログラミングを始めてから)今までにやってきたことを(忘備録も兼ねて)書いておこうと思います。 現状~水色~ 初回参加が2019年4月20日で8月10日現在最高1220で水色になりました。 爆上がりや爆下がりしているのはAGC, ARC相当のコンテストで1問無理やり通したり、嘘通したり、0完激萎えをかました結果です。 進捗 ~AtCoder Problems~ ちなみに精進の具合はこんな感じです。ABCのC問題はあと2問でABCのD問題に手を出し始めてます。 競技プログラミングを始めるにあたって 自分のバックグラウンドは物理であり、プログラミングに触れた経験は大学の授業(Fortran 12時間)、実験・測定用
わけあって新しく環境を設定することになったので備忘録代わりに。 スクリプタブルであること 新しいMac買ったときって環境作るの面倒臭いですよね。 OSの設定 必要なパッケージのインストール 必要なアプリケーションのインストール 各種アプリケーションの設定 やることがたくさんあります。 これを手でやっていると面倒臭いですし、抜け漏れ出ますよね。 まぁ気付き次第ちょこちょこ設定していけばいいんですが、自分色になっていくまで結構不便だったりします。 だからスクリプト化しようや パッケージやアプリケーションのインストールについてはMac-geekなみなさんであればbrew(cask)など使ってうまいことスクリプト化されていると思うので、今回は触れません。 ですので、OSの設定について解説します。各種アプリケーションの設定も実は今回の話でだいたいスクリプト化可能です。 defaultsコマンド 読ん
DIを使わない状態ではUserRepositoryというインターフェースが定義されているのにもかかわらず、UserServiceはUserRepositoryImplの参照も持っていました。 これではせっかくインターフェースを分離した意味がありません。 UserServiceがUserRepositoryインターフェースだけを参照(依存)するようにすれば、具体的な実装であるUserRepositoryImplの変更に影響されることはありません。 この問題を解決するのがDIの目的です。 それではDIのインジェクタを加えて、上記のクラス図を修正しましょう。 謎のインジェクタの登場によりUserServiceからUserRepositoryImplへの参照がなくなりました。 おそらくインジェクタは何らかの手段でサービスであるUserRepositoryImpl(Dependency)をクライアン
たまに検討するけど、よく忘れるのでまとめておく。ごく個人的な感想としては、Rundeck, Azkabanあたりで始めてみるのがいいかもと思う。 要件 重複実行の防止 ジョブの実行結果、かかった時間、ログ出力などが見れる 失敗時の通知 候補 OSS系 Rundeck http://rundeck.org/ Java Runtimeで動く RUNDECK PROという有料サービスもある http://simplifyops.com/ 参考: http://heartbeats.jp/hbblog/2015/01/rundeck.html Oozie http://oozie.apache.org/ Workflow Scheduler for Hadoop Java http://oozie.apache.org/docs/4.1.0/DG_Overview.html Webコンソールもある
半年ほど前のことでうろ覚えなのですが、pixivで複数のリポジトリを統合したときの方法を紹介します。 AAAAAリポジトリとBBBBBリポジトリを統合し、ZZZZZという大きなリポジトリを作成します。もちろんコミットログを統合前まで遡れるようにするのが絶対条件です。 最終形↓ ZZZZZ .git AAAAA BBBBB filter-branch まず、新しくgit clone AAAAAしてきます。(なぜなら、このディレクトリはこの後使い捨てられるので、pushされてないbranchとがあると困るからです) 次にcd AAAAAして、次のコマンドを実行します。 git filter-branch --index-filter \ 'git ls-files -s | sed "s@\t\"*@&AAAAA/@" | GIT_INDEX_FILE=$GIT_INDEX_FILE.new
みなさんReactやってますか。やってますよね。最近React Native流行ってるし。 んでいきなりなんですが、あのReactとかいうやつ、実は 特にウェブとは関係ないライブラリ なんですよね。ええぇ……。なのでこの記事ではそれについてだらだらと説明したいと思います。 この記事の背景 最近のReact Nativeブームで「React is 何」「React Nativeについて3行で教えてくれ」みたいなアレコレがよく発生するんですが、その際に「Reactはウェブ向けライブラリである」という先入観がだいぶ素直な理解を阻害しているなーと感じました。 「Reactはウェブ向け」って登場初期は全然間違ってなかったんですけど、厳密には2015年には全く違う状況になって、2019年とか2020年になると完全に間違ってると言える状況が発生し出したので、改めて説明させていただこうと思いました。 別に
はじめに この記事ではcreate-react-appを使わないReact開発環境の構築方法を紹介します。 この記事で紹介する開発環境は以下に置いています。 詰まった場合、もしくは手っ取り早く開発環境が欲しい方は こちらを利用して下さい。 https://github.com/ohs30359-nobuhara/react-starter なぜ create-react-app を使わないのか? これはあくまで自分の考えですがcreate-react-appは初心者の入門のためのツールであり 実開発者の...ましてサービスレベルで使うものではないと思っています。 このツールが解決していることは複雑なビルド周りの設定を隠蔽して 手早くReactを始められるようにすることであり、 実開発における開発環境の構築を目的としているわけではありません。 実際のサービス開発ではテンプレートがそのまま使え
Rubyコミッター・笹田耕一に世代別インクリメンタルGCを発想したプロセスを聞いてみた Rubyのフルタイムコミッターである笹田耕一さんに、Rubyの処理性能を向上させるいくつかのブレイクスルーをどのように解決し、どのような困難があったのかを聞きました。 直感的な文法や生産性の高さから、世界中の人々に愛されるオブジェクト指向スクリプト言語Ruby。その黎明期から現在に至るまで、大きな変化を遂げてきた要素があります。“処理速度”です。数々の最適化が行われた結果、Rubyの処理性能はかつてとは比べものにならないほど向上しました。 その改善を支えたのは、世界中のRubyコミッターたち。中でも、性能向上において多くの成果を残してきたのが、クックパッド株式会社でフルタイムRubyコミッターとして働く笹田耕一(ささだ・こういち/ @koichisasada )さんです。本稿では、彼がいかなる設計方針に
Instagantt は、カンバンを「時間軸(の概念)で拡張してくれるツール」と感じている。 asana を使ってカンバンで見ていると、Doing で止まっていることは見えるけど、 「いつから止まっている」とか「いつまでにできる?」とか 「じゃあこのあとどうする?」とかは可視化できない。 カンバンが「存在」にクローズアップしたツールだから、それはしかたのないことだ。 Instagantt でタスクを見ていると、 Done できないタスクがどんどん置いてきぼりになって、いずれは赤い線で表示される。 と、「これ、どーしよー。このままじゃ、まずいじゃん。」って思えてくる。思うよね? 私の場合、 いったん今の状態で「チェック一発、Complete!」にしてしまう。 それでまずは、気持ちの上でスッキリ!する。 そして、止まっていた、まだできていない作業をさらにタスクとする。*1 「何ができてない?」
asana でガントチャートを扱うには、Instagantt を使います。 (asana 単体でもガントチャートは使えます(有料)) まずは、このへんの動画とか説明を見ておくと、 どんなことができるのか、どんなふうに操作するのか、イメージしやすいです。 英語だけど、絵をみているだけで、雰囲気はわかります。 www.youtube.com projectmanagementpros.com 以下、 ガントチャートのひき方です! asana、Instagantt とも Free 版です。 asana の用語は説明してません。 asana は少しさわってるよね?という前提で書いています。あしからず。 1) asana でタスク(WBS)を入力する。 階層構造でガンガン WBS を打ち込んでいきましょう。 セクションもサブタスクも、Instagantt ではグルーピングされます。 タスクを階層化
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く