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

taiki-t's diary

あいうえお

Relay Modernへの移行検討をした

結論: もう少しドキュメントとサンプルが増えてからにしよう(rcが外れる頃かな?) 背景 現在アプリを作っていて、フロント側の構成はReact Native + Relay + Reduxという感じだ。 (Relay Modern以前のバージョンはModernの登場によりRelay Classicと呼ば…

Grammarly cm の曲

Youtubeで流れていいなと思った Soul City の Here I come というやつらしい ↓ みたCM www.youtube.com 調べてみるとMarmosetという音楽出版社で配信している。映像に合わせるBGM向けのライセンス提供が主な業態らしい。個人で試聴するぶんには無料でダウン…

React Navigationにコントリビュートした

React Navigation, APIはいい感じなんだけど現状beta版ということもあり、プロダクションで使っていこうと思うとなかなか機能が足りない。 それで2017/4/7現在では、v1リリースに向けて最低限必要な機能を実装していこうという状態にある。(と信じている) …

おーい磯野〜 callback使ってる関数をPromiseでラップしてasync/awaitで書こうぜ〜

JS

例1 const sleep = (ms) => { return new Promise(resolve => setTimeout(resolve, ms)); } const something = async () => { await sleep(100) doSomething() } 例2 // クラスの中 getCurrentPosition(options) { return new Promise((resolve, reject) => …

Relay: viewerとかrootにあるのよく見るけどあれアンチパターンらしいよ

関連しそうな記述があるものをとりあえずまとめておく。 Possible optimization related to setVariables and Node · Issue #1370 · facebook/relay · GitHub Viewer ID and node interface implementation · Issue #1542 · facebook/relay · GitHub

Reactエレメント、コンポーネント、そしてインスタンス

React Components, Elements, and Instances - React Blog を読んだメモ エレメント(要素) エレメントは、コンポーネントインスタンスまたはDOMノードを記述する、普通のオブジェクト エレメントは、実際のインスタンスではない エレメントは、何を画面上…

React Nativeでのナビゲーションに便利なReact Navigation

3/17追記: beta-7時点で、ネストされたナビゲーター内からナビゲーター全体のstackをリセットできないという問題がある。ので、認証してトップに戻るとか、アップロード完了したらトップに戻るとかまともにできないと思うので辛そう。Specify reset key to d…

React NativeでiOSのランディングスクリーンに画像を設定する方法

という記事を書いた。 taiki-t.hatenablog.com だいたい図にした。constrainsの設定の時だけ、対象のオブジェクトからviewへcontrol + click してドラッグというのがわかりにくいかも。

React Native から S3に画像アップロード

という記事を雑にかいた。 taiki-t.hatenablog.com コードは参考になると良いと思う。

Presigned post to aws s3 from React Native

It took a longtime to figure out how to upload images to aws s3 using presigned post from React Native. The key part is to use FormData to construct a payload and post it with POST http method. PUTing FormData payload with pre-signed URL d…

Make commit messages great again.

github.com github.com github.com https://github.com/search?p=1&q=make+again&ref=searchresults&type=Commits&utf8=%E2%9C%93

React Nativeのリリース間隔は月次

facebook.github.io 2017/1 から。以前は2週間に一度だった。月末に新しいバージョンがリリースされるので、月の初めには新しいバージョンが利用可能になっている。また、リリース時にはすでにFacebookのプロダクションで2週間ほど運用した状態であるだろう…

Relay: containerのinitialVariablesに値を渡す

Introduction 非同期処理で何かごにょごにょした後、Relayにその値を使ってサーバーにリクエストを投げてほしかった。 やり方 Relay.createContainerを関数でラップする 雑な実装例: componentDidMount() { this._asyncFunc() } async _asyncFunc() { try { …

React Nativeの画像キャッシュ

プロローグ React Native使ってみた。Imageコンポーネント、毎回ネットワークから取得してるじゃん、これキャッシュしてくれないの?と思った。 調べた [0.32] Image caching broken · Issue #9581 · facebook/react-native · GitHub なんか壊れてんヨーとい…

浅草寺の思い出

数年前に浅草寺に行った。時期は忘れた。おみくじを引くところに年季の入ったお姉さん方が群がり、何やら盛り上がっていた。一人一人何が出たかを読み上げている。わたし小吉、わたしは吉。そして恋愛運がなんたらだとか。よくある光景だ。特に気にもとめず…

Show an image on launch screen in React Native iOS app

My long attempts to show an image on launch screen (or splash screen) in iOS app with React Native have failed so far and here is a solution I finally found. The key is to make use of LaunchScreen.xib and not to use bunch of launch screen …

React Native で文字を truncate

プロローグ Railsって色々ヘルパーが用意されていて便利。ActionView::Helpers::TextHelper#truncateもその一つ。これは、文字列を切り詰めて末尾に...と付けてくれる。そういうヘルパーみたいなのがRNにもあったら便利だな?と思った。そしたら、あった。 n…

S3のログから日付とアクセス元を漁るコマンドライン

プロローグ S3のログ、見たいと思ったんだよね。アクセス時間と、アクセス元を。 やったこと ターミナル開く aws-cliをいれて設定などする brew aws-cli, aws configure 詳しくは: http://docs.aws.amazon.com/ja_jp/streams/latest/dev/kinesis-tutorial-cl…

感情と雪解け

あれほど憎らしく思えた相手でも、その背景を知るとその気持ちがあっという間に変わることがある。それはさながら春の雪解けのように。実はその相手にものっぴきならない理由があって、たとえ自分がその発散の対象になったのは許しがたい事実だとしても、で…

は、ロボット

「誰が作ったとか、人間は夢が持てていいな。」 彼は誰に言うでもなく、虚空に向けて一人つぶやいた。芝の上に腰をおろし、膝を抱えている。さながら、孤独な人間のようだ。しかし彼は、ロボットだった。 遠い昔に、人間は人間と同等の知能を持つロボットの…

「この世界の片隅に」 みた

この世界の片隅に、を見てきた。Twitterやなんかで見てきた人の感想を読んでいるうちに、これは行かなければなぁという気持ちになり、どうしても見たくなったので新幹線の切符を買い東京に行って見てきた。地元ではやってなかった。 まぁ東京に用事があった…

どういうものを作っていきたいか、整理

よくサービスの目標とかで「人々を幸せにする」ってのをみる気がするし、俺も気をぬくと、「人が幸せにするサービスを作れたらいいなぁ」なんて漠然と思ってしまったり、言ってしまったりする。けれど、「幸せ」という指標は漠然としていて定量的にはかれな…

Carrierwave TypeError - no implicit conversion of nil into String on multiple upload

Carrierwaveで複数アップロードしようにもどうにもうまくいかない。 調べたあげく普通にIssueにあった。 mount_uploaderじゃなくてmount_uploadersを使うとのこと。 同じくs見落としてた… github.com

書くことでしか文章は生まれない

文章が先か、書くことが先か。 僕の場合、書くことが先だ。頭の中で書きたいことができるまで待っていると何も書けない。 けれど、一旦書き始めてしまうと堤防が決壊したかのようにとめどなく文章が溢れてくる。 必ずしもまとまった内容で出てくるわけではな…

良い文章は自分の中に

良い文章は自分の中にある。誰がなんと言おうと。 世の中には事実は一つしかないかもしれないが、真実は2つぐらいある。 一つは他人の中にある真実。もう一つは自分の中にある真実。 この二つの真実は必ずしもいつも一致するわけでもないし、そもそも一致す…

Photos from last week 2016-11-7 - 2016-11-20

Did some paintings. I like liquitex prime acrylic. expensive though. And went to see red leaves. It's getting colder day by day in Japan.

「えーと」と「あのー」の違い

http://www.ninjal.ac.jp/event/young/tanken/files/20150718_handout.pdf に載ってた 「えーと」は「計算中であること」 「あのー」は「言おうとしていることはきまっているけれども、その言い方を考えている」 ということを表すと考えられる。とのこと。 …

Twitterの検索結果からtweetのurl一覧を取得

$$('.time > a').map(v => v.href) ↑これをChrome の console に貼り付けてEnter consoleは、macだったら Shift + Command + C で開くと思う。 やってるのは、<time>要素内の<a>各要素からhrefを取得してる。マークアップに依存してるので、いつ使えなくなってもおか</a></time>…

Google Sheets API v4を適当に叩いて適当にデータをJSONで取得する

TL/DL; ここを読もう Introduction to the Google Sheets API | Sheets API | Google Developers (もっと長い) で やりたかったことは creator.aainc.co.jp を Google Sheets API v4 やりたいじゃん、みたいな。 v3から変わったこと API v4からはAPI keyを…

ブログの副題を変えた

「平日夜+土日でwebサービスを開発していく。その日記。」 としてたけど、諸事情でできていなかった。 で、諸事情は解消したが、今となっては別な諸事情で副題のコンセプトにはこだわらなくて良くなったので変えた。適当に。 諸事情についてはまたそのうち書…

Sketch3で画像をぼかしてみる(均一にぼかす編)

Sketchで画像ぼかしてみよう、ってことで調べてやってみました。 均一にぼかす方法と、グラデーション的にぼかす方法を2回に分けて紹介します。 この記事では均一にぼかす方法を紹介します。 均一にぼかす 手順 基本は以下の3ステップです。 画像をSketch3…

Sketchやるために資料集めた

と思ったらだいたいここにまとまってたからこれでいいや Sketch Resources | Denzil Doyle | Trinidad - Developer & Designer

ApplePencilはジョブスが生きていてもいずれ出たよねって話

ApplePencil、でたね。 で、スタイラスってジョブスがめちゃくちゃ反対していたやつじゃん、みたいな話がちらほらあるけど、 そういうことじゃないじゃん、ってことを書こうとおもう。 別にジョブスの意思に反しているわけじゃないし、生きていてもいずれ出…

建設的であること。

建設的であることは難しい。 けれど、できる限り建設的でありたいと思う。 この世には、完璧なものも、完璧な人もいない。 だけど、人はいる。 人にはそれぞれ得意、不得意なことがあって、 それぞれの特徴をレーダーチャートに表したら、きっとでこぼこする…

Chrome拡張をクローズドβに。

Chrome 拡張を一旦は公開しましたが、アルゴリズムの変更などに伴い、過去のデータとの互換性がとれなくなるケースもでてくるので、 現時点では一旦クローズドβにしました。 ベータ版ユーザーを随時募集していますので、気になる方はtwitterか何かで@taiki__…

tmux で pbcopy(クリップボードへのコピー)を使えるようにする

Homebrew 使ってる前提で書くよ brew install reattach-to-user-namespace .tmux.confに下記を追記 set-option -g default-command "reattach-to-user-namespace -l zsh" tmuxを再起動すればok 例: git のローカルにあるbranch一覧をクリップボードにコピー …

持たざる者には持たざる者の戦い方があるという話

息抜きに、読んだ記事の紹介。以下は要約&意訳。 ゴールドマンサックスの社長兼COOの人の話。 Goldman Sachs' second most powerful exec pulled an audacious move to get his first job on Wall Streetwww.businessinsider.com.au 識字障害だったんだ。6時…

Chrome拡張を公開

前回webサービス開発日記はじめました - taiki-t's diaryは主にサービスのコンセプト、やることについてだった。 今回はサービス公開の一環として、Chrome拡張の公開をしようとおもう。 Chrome拡張を公開すると、一応誰でもサービスを使えることになるので、…

webサービス開発日記はじめました

今、なんか個人的にwebサービスを作っていて、その開発&公開までのプロセスが面白そうなのでブログにしてみることにした。 これからwebサービス作ってみたい、とか興味あるって人には面白いかも。 自分も手探りでやっているので、これが王道とか、正解とかい…

再帰処理書けると嬉しい

def deep_keys(hash) hash.map{ |k,v| v.respond_to?(:keys) ? [k] << deep_keys(v) : k } end h = {:hoge=>"hoge", :fuga=>{:foo=>{:nested1=>{:nested2=>:nested_val2}}}} deep_keys(h) # => [:hoge, [:fuga, [[:foo, [[:nested1, [:nested2]]]]]]] 嬉しい…