ushumpei’s blog

生活で気になったことを随時調べて書いていきます。

PhRUG(Philippine Ruby Users Group) September 2017 Meetupに行ってきた

最近フィリピンに滞在しています。2017/09/21にフィリピンのRubyユーザーグループのイベントが行われるということで、海外勉強会ってどんな感じだろう?日本と違いがあったりするのかな?とか思い参加してきました。たくさん写真撮ってくるの忘れました。 と…

iOS11アップデートについていくためのSwift入門(主観)

2017/09/20に、iOS11がリリースされました。今回のアップデートでは機械学習やSiriアプリ、ARなど様々な新機能が使えるようになりました。リンクを見ていて、「ちょっとSwift読めるようになっておかないと、おそらく半年くらいつまらなくなってしまう…上がっ…

文法の勉強のため簡単なObjective-CのコードをXcodeで実行してみた

前回、React Nativeのソースコードを読もうとして挫折したので、基礎文法を勉強するためにObjective-Cで何か書いて見ます。 その前にObjective-Cのwikiを少し読んで感じをつかみます。とりあえず読むために必要そうなこと3つです。 C言語としてもいける、コ…

React Nativeの画像遅延読み込み(ライブラリのソースを読んで見る)

この記事を要約すると、「画像遅延読み込みの方法が知りたくて、ライブラリのソースコードを読んで、Objective-Cのコードにたどり着いて、次に進めなくなってしまい一旦諦めたけれど、これを糧にもっと勉強しようという気になった」という自己満話です。 概…

ハノイの塔

なんだか久しぶりにjavascriptでハノイの塔を解いて見ました。以下の関数は、number枚のハノイの塔をtime回操作した時の状態を計算するものです。特に目新しいものではないと思います。 const hanoiSnapshot = (number, time) => { // 円盤の移動が完了した…

wgetでサイズ確認

ものすごく小さな話かつググったら速攻出ますが、自分にとっては切実な問題なのでメモします。 結論から言うと--spiderオプションです。 $ wget --spider ***URL.zip*** Spider mode enabled. Check if remote file exists. --2017-08-31 09:49:43-- ***URL.…

辞書.appのデータ構造の補足

注意: 結論としては補足になっていません。。。RELAX NGXMLスキーマをここで勉強した際のメモ書き程度になっています 先日書いた辞書.appの記事ではあまり辞書を作ることに関して調べきれていなかったところがあるので追記します。先日の記事でも単語と意味…

外国語学習のためにMacの辞書.appに追加する辞書を作成する

概要 Macでは設定すると三本指タップで単語の辞書検索が行えます、文章書いている時や読んでる時に作業を中断せずに意味を調べられるのですごく便利に使わせていただいています。 最近フィリピンで生活しているので、タガログ語を読み書きすることがたまにあ…

iTunes ConnectにアプリをアップロードしてTestFlightでテスト

概要 iTunes ConnectにアプリをあげてTest Flightする方法がわからなかったので、多分これでいけるんじゃないかという手順をまとめました。個人的にメモしておきます。間違い、訂正ありましたら教えていただきたいです。 前提としてApple Developer Program…

FlatListのデータ更新時に再描画されない

概要 ちょっと困ってしまって、検索が時間かかったので他の人の手助けになればと思いメモします。 問題 React NavigationとFlatListでリスト編集サンプルアプリを作成した時に、FlatListのデータ更新時に再描画されない問題に遭遇しました。 データをFlatLis…

React Navigationで画面遷移してみる

React Nativeで画面遷移したかったのでまとめました。 内容としてはcreate-react-native-appで作ったアプリで、2つのナビゲーター(StackNavigator、TabNavigator)を使ってみた勉強記事です。 注意としてはDrawerNavigatorは使わないことと、redux等との連携…

React NativeのNavigatorがなくなった

ちょっと困った SectionListが使いたいのでreact-nativeのバージョンをあげようと思ったら、 バージョン0.44にはNavigatorコンポーネントがないみたいであげられなくなっちゃいました。 なんか書いてある Navigatorはお手軽だったので、結構使ってしまってい…

Reactコンポーネントをディレクトリにまとめる(ES6)

Reactのディレクトリ構成が全然わかりません。 Reactコンポーネントを分割する方法についてもメモです。ES6の文法の話だと思うのですが、正式なドキュメントが見つけられていないので間違いがあったら申し訳ないです。 書いたものをgithubに上げています。参…

Railsからキーがキャメルケースのjsonを返す(jbuilder)

Reactでアプリを書いていて思ったことのメモです。 大概jsのオブジェクトのプロパティはキャメルケース(camel case)ですよね。 Railsをサーバサイドにしたのですが、返却されるjsonがスネークケース(snake case)でした。 クライアントサイドで書き換えるのも…

Promise + reduceで逐次処理

setIntervalでもいいですが、Promiseとreduceでもできるようです。 /* 逐次処理したいデータ */ const arr = [1,2,3,4,5]; arr.map( /* データの配列から`Promise`を返す関数の配列を作る */ e => ( () => new Promise( (res, _) => { setTimeout( () => { /…

React Native実機動作中のcommand+d

お疲れ様です。 とりあえず結論というか、言いたい事です。 React Nativeで作ったアプリを開発段階で実機にXcodeで転送した場合、 シミュレータでcommand+dしたときに出るメニューは、実機を振ると出すことができるようです。 (2017/02/22時点) 説明 最近、…

ブラウザでテキスト読み上げるコンポーネント: react-voice-components

テキスト読み上げをしてくれるReactコンポーネントの存在を知りました。grvcoelho/react-voice-components ブラウザで音声を使って何かしたいと思っていたので、試しに触ってみて、GitHub Pageにあげてみました。 以下ちょっと苦労したので、メモです。 Reac…

GitHubのIssuesを閉じる方法

GitHubのIssuesを閉じる方法、GitHubのHelpページでも紹介されていますが、commit messageに関して書かれているだけなので、PullRequestからでも閉じられるか確認しました。 確認内容 結論から言うと、PullRequestからでも閉じられます。 以下試したことです…

Yesodのquick startが重い

題に掲げた問題を解決するための記事ではないです。HaskellのwebアプリケーションフレームワークYesodのquickstartをDockerfileで行っただけの記事です。 Dockerfile Dockerfileを書きます。 FROM haskell:latest MAINTAINER ushumpei ARG project_name RUN …

Leap Motionを手に入れました

Leap Motionを手に入れました。Leap Motionは手の動きをかなりの精度で取得できるセンサーです。たくさんの言語でプログラミング可能なAPIが提供されていますが、とりあえずjavascriptのAPIを使ってみます。また、各クラスの内容もざっくりと整理していこう…

screenコマンドの小さな話

ターミナル操作をいい感じにできる仮想端末マネージャコマンドscreenを最近知りました。メモしておきます。 私の理解では、ターミナルをラップして、通常のシェル操作に加え、セッション、ウィンドウ、領域という概念を取り込み、それらを操作できるようにす…

dockerに関するメモ

golangを少しだけ試して見たくなったけれど、環境を作りたくなかったのでdockerを使って見ました。特に目新しい内容ではないですが、自分用にメモします。 構成というほどでもないですが、 コーディング: 自分のマシン 実行環境: コンテナ とするために、ま…

redisのレプリケーション

redisのレプリケーションがとても簡単だったのでメモです。勉強も兼ねてdockerを無駄に使っています。環境は以下です。 macOS Sierra Docker for Mac Version 1.12.3-beta29.2 とりあえずredisが入ったAlpine Linuxのイメージを作成します。my-alpineディレ…

¥eあるいはedit

mysqlの対話環境でちょっと長い処理を実行したくなった時のメモです。 mysqlコマンドを実行すると対話環境が起動します。ただ改行を含んだクエリを書こうとすると、どこか間違えた時に書き直すのが非常に面倒です。 そういった時は¥eまたはeditコマンドを使…

git logの折り返し

gitのlogやdiff表示時の、文字列の折り返しの切り替え方をメモします。 自分の環境(mac 10.12、terminal、git version 2.8.4 (Apple Git-73))ではデフォルトで折り返しがされていたのですが、以下の指定で折り返しが無効になりました。 折り返し無効 $ git c…

アロー関数(Arrow function)の書き方色々

アロー関数は引数や戻り値の種類によって色々な書き方ができます。分割代入を使うことで柔軟な関数をシンプルに宣言できてとても気持ちいです。 基本的な書き方から、やや直感的ではない書き方まで、メモしていこうと思います。 ざっくり アロー関数の記述方…

Reactコンポーネントを純粋な関数で書こう

Reactコンポーネントの書き方は色々あり、es6を使う場合の選択肢は以下の2つがあると思います; クラス 純粋な関数 クラス classの構文を使う場合、React.Componentクラスを継承してコンポーネントを定義します。 class App extends React.Component { rende…

オブジェクトリテラル内でのスプレッド演算子

こんにちは。 スプレッド演算子(spread operator)がオブジェクトリテラル内で使えませんでした。babel-preset-es2015入れとけばなんとかなるだろうと思っていたのですが、babel-preset-stage-2が必要みたいです。ECMAScriptの仕様策定方法を知らないのでstag…

Ctags と vim と Git

概要 vimでタグジャンプを楽にする方法です。以下適当な翻訳です。 参考: Effortless Ctags with Git Ctags はコードのインデックスを作成し, 関数, 変数, クラス, その他の識別子への Vim でのジャンプを容易にします. Gitのフックはリポジトリ単位です(Git…

Promiseのthenが素敵

javascriptではes2015からPromiseが使えるようになります。Promiseで非同期処理を包むことで、非同期処理が終わったタイミングで次の処理を開始できて、コールバック地獄をなくす、等と言われていたりします。 詳しい使い方は検索するとたくさん出てくるので…