さわらブログ

さわら(@xhiroga)の技術ブログ

Macお掃除備忘録

最近Macが容量が少ないって警告を出すようになった。 調べると、どうも使ってるうちにいらないファイルが溜まっていくらしい。 また同じ掃除をすることになりそうなので、備忘録化しておきましょう。

お掃除の手順

  1. どこが容量を使っているか調べる
  2. 容量を使っている場所ごとに対応する 2-1. Xcode 2-2. VirtualBox 2-3. 不要なApp 2-4. その他(TrashとかCacheとか)

1.どこが容量を使っているか調べる

Disk Inventory X www.derlien.com

ディスク容量を食っているファイルを面積で可視化するスグレモノ f:id:hiroga_cc:20170813183841p:plain

Macの[About This Mac] -> [Storage]でも見られるけど、結果を解析するまで時間がかかるのよね。 (Disk Inventory Xも10分以上くらいかかるけど)

2. 容量を使っている場所ごとに対応する

2-1. Xcode

先人の知恵を拝借 qiita.com

2-2.VirtualBox

使ってないVMのOSが5GBとかあって容量を圧迫していた。

pc-karuma.net

2-3. 不要なApp

最近使ってなかったNeo4Jとか、ダウンロード以来一回も使ってないPyCharmとか消しました。

nektony.com

2-4.その他(TrashとかCacheとか)

この子でまとめて削除します。僕は17GB浮いた(例えばゴミ箱が7GBあったりとか)

全然関係ないけどMarkDown記法ではてブロ書けるのめっちゃ便利ですね

MakerFaireTokyo2017行ってきたよメモ

MakerFaireTokyo2017に参加しました!来年は出展したいな〜!

f:id:hiroga_cc:20170806225416j:plain

参加者はみんな物つくりが好きな人たちって感じで幸せそうだった。さわらはITの勉強の延長線上で来たみたいなとこあるからちょっと毛色違うかも。でも出たい!

 

もともとSpace Apps Challengeの参加者打ち上げの後に、常連の参加者さんからイベントの存在を教えてもらったのがきっかけ。

こちらの方々↓↓

ちょうどハードにも興味を持ち始めていたので参加することに。

 

実際にものつくりをしている人を間近で見たり話したりできたのがよかった!

 

ハッカソンとの層の違いが気になった。ハッカソンと違ってプレゼンで誤魔化すことができないから、意識高いだけの人が入り込む隙ができづらいのだと思う。

他に、意外にも子どもが多くて驚いた。自分も親になったら一緒に遊びに行きたい。

 

今月末にショッカソン(触覚ハッカソン)に参加するので、その下調べ的な意味でいうとUnityが使えると強いかもしれない。

3Dの映像を何かに投影したい時、Unityがあればユニティちゃんのダンス映像とかが簡単に作れる。

一方で、それは自分の業務では無縁な(気がする)んだよなあ。Unityを使う案件がどれだけあるのか...多分無いのでは...

趣味のものつくりとして考えるとそんなこと気にしても仕方ないんだけどね!

 

 

 

 

 

 

 

【備忘録】結合条件なしのJOIN

職場で困ったので、調べたことの棚卸し。

やりたかったこと

売り上げテーブルAの全てのレコードと会計年月テーブルBの最新のレコード1件を結合したかった。

会計年月テーブルA
商品 売り上げ金額
冷蔵庫 50000円
電気ケトル 10000円
掃除機 30000円

 

会計年月テーブルB
会計年月
201707
201708
201709

 

結果
会計年月 商品 売り上げ金額
201707 冷蔵庫 50000円
201707 電気ケトル 10000円
201707 掃除機 30000円

 

そのための方法

調べた感じ、Bから副表を作った後でAと結合すれば良いみたい。結合方法は...

  1. CROSS JOINする
  2. FROM句の後にテーブルを並列に書く(CROSS JOINになる)
  3. ON句なしでINNER JOINする
  4. SELECT句中でサブクエリを使う

他にもあったら教えて下さい...!

1. CROSS JOINする

SELECT A.商品, A.売り上げ金額, B_TMP.会計年月 FROM A CROSS JOIN (SELECT 会計年月 FROM B ORDER BY 会計年月 ASC FETCH FIRST 1 ROWS ONLY) AS B_TMP

2.  FROM句の後にテーブルを並列に書く(CROSS JOINになる)

SELECT A.商品, A.売り上げ金額, B_TMP.会計年月 FROM A, (SELECT 会計年月 FROM B ORDER BY 会計年月 ASC FETCH FIRST 1 ROWS ONLY) AS B_TMP

これが調べた中で一番驚きました。

 3. ON句なしでINNER JOINする

SELECT A.商品, A.売り上げ金額, B_TMP.会計年月 FROM A INNER JOIN (SELECT 会計年月 FROM B  ORDER BY 会計年月 ASC FETCH FIRST 1 ROWS ONLY) AS B_TMP ON 1 = 1

4. SELECT句中でサブクエリを使う

SELECT A.商品, A.売り上げ金額, (SELECT 会計年月 FROM B ORDER BY 会計年月 ASC FETCH FIRST 1 ROWS ONLY) AS 会計年月 FROM A

 

* 細かい書き方はDBMSによって違うと思います(FETCHとか)。さわらはDB2っぽく書いてます。

CoderDojo体験

エンジニア的な課外活動にいいんじゃないかと思ってCoderDojo体験した。
継続的に参加するか決めてないけど、とりあえず行ってよかった!


そもそもCoderDojoとは。

子ども向けプログラミング道場?で、学習塾と違うのは子どもが好き勝手やる事を大事にしている点らしい。
児童館とかのノリに近いのかな?
東京だけでも結構あって、下北沢、調布、小平、etc...
今日はCoderDojo小平に行った。

 

行ったら意外と少人数だった。(子ども4人)
あと、プログラミングじゃなくて知育おもちゃみたいなので遊んでる子の方が多かった。
(普段はもっとプログラミング寄りらしい)

 

遊んでたおもちゃ(の一例)↓↓

f:id:hiroga_cc:20170722173215j:plain

プログラミングを教えるんじゃなくて、普通に子どもの相手をするのを楽しんでしまった…(むしろ相手をしてもらった)


道場主さんの話だと、三鷹でもCoderDojoをやりたいエンジニアはいるけど、
子どもとの接し方が分からなくて困ってるらしい。そんなパターンもあるのね〜。

さわらはこの手のボランティア慣れてるけど、世の中そうじゃない人の方が多いのかもしれない。

 

今日はプログラミングのお手伝いとかはできなかったので、
また別の機会に別のDojoに行く予定です。

React Native 1ヶ月半やってみての棚卸し

これまでに学んだことの棚卸し。

 

作ったアプリ↓↓

appetize.io


React Native自体について

constで定義したコンポーネントをclassで定義し直すことが多かった。
装飾がメインの役割のものはconstで定義して、props.childrenを表示するのが良さそう。

propsなのかthis.propsなのかがよく分からなかった。
あと、class内でconstを定義できないのもよく分からなかった。クラスのメソッド内なら定義できたけど。

ListViewクラスのdatasouceはコピペで乗り切ってしまった感がある。

reduxでactionのエラーをキャッチしようとすると、そのキャッチの範囲がコンポーネントの再描画あたりまで行き届いてしまう。
(action→reducerで値を書き換え→propsに変更→コンポーネント再描画、までtryの中ってことらしい)

 

iOSについて

http通信を許可するためにinfo.plistに書き込まなければいけないのに気がつくのに時間がかかった。
(info.plist自体も複数あって、どれに書き込むのかよく分からなかった。)

こんな感じにした↓↓

f:id:hiroga_cc:20170721074915p:plain

 

Appetizeにアップロードするまでに時間がかかった。
ローカルのjsbundleを参照させるのに苦労した。公式ドキュメントに当たる癖をつけたい。

ローカルのjsbundleを参照すると、シミュレーターでは出なかったエラーが出る。
(それまでcatchで気づかずに握りつぶしていたもの?)

 

今後の課題

* Expoのアプリ側でのリロード方法が分からない。
* Navigator関連が分からない(俺はreact-native-router-fluxを使っている)
* reduxとasyncStorageを一緒に使うとき、どのタイミングで書き込むのがベストか分からない
* Expoを使うべきなのかreact-native init [アプリ名]でやるべきか迷ってる

オープンデータの使用事例が知りたい

オープンデータを使ったアプリで、いい感じのアプリって本当にあるのかしら?

ハッカソンに出る中で疑問を持つようになったので、調べてみました。

 

調べ方としてはこんな方法が考えられると思います。

1. オープンデータの使用事例をまとめているサイトから探す。

例: Open Data Impact Map の Use cases

 

2. オープンデータを公開しているサイトに行き、その中で「使用事例」のページを探す。

例1: LinkData.org の 公開アプリ一覧

例2: data.gov.uk の Latest apps

 

3. そのほか、ブログの記事などから探す

例: Open Data Use Cases In Five Cities |

 

1. と 2.の方法だと見つかるものが玉石混交になっているので、

今回の目的(いい感じのアプリがあるかどうか知りたい)から行くと、人力で選んでくれている3. の方法が良さそう。

 

で、そのブログで紹介している内容が以下。

 

************

イギリス、ロンドン

Apps & Analysis – London Datastore

ロンドンのオープンデータをまとめたサイト。
ユースケースっていうよりプラットフォームだよね。

 

アメリカ、シカゴ

地域の情報を検索して地図上にマッピングできるサイト
例えば映画のロケ地とか、通行止になっている場所とか

 

アメリカ、ニューヨーク

Tunnel Vision NYC

地下鉄マップにかざすと、地下鉄の現在位置や混雑状況がARでマッピングされるアプリ!

 

オランダ、アムステルダム
アムステルダムのいろんな地理情報を地図にマッピングしたものを集めたサイト。

 

ソフィア、ブルガリア
こちらはユースケースではなく、最近オープンデータの取り組みを始めた国の紹介。 

 

************

 

一番すごいな、と思ったのがニューヨークの地下鉄マップを使ったARアプリ。

気がついたこととしては、地図にマッピングするアプリが多い気がするな〜。

 

結論としては、かっこいいオープンデータの使用事例はありました。

npmとかyarnとかとの戦い、3日目にして終結

react-nativeのアプリにライブラリ追加したらsimulatorがレッドスクリーンになった。

f:id:hiroga_cc:20170613062813p:plain

 

どうも依存性とかいうのが悪いらしい、
npmとかyarnとかわからないことが多すぎるのでここで棚卸ししたい。


初日(2017-06-11)
react-nativeのプロジェクトとreact-native自体のバージョンが違ってると出るらしいエラー発生。
困ったら次の通りやればいいって知見を得た(それで解決するわけではない)

rm -rf node_modules
npm cache clean --force
npm install

 

コマンド&オプション
listとversionsとかの違いが未だに覚えられない
依存性でつまづいてる時はnpm listでエラーが出るっぽい

このころは--saveがよく分からなかった。
っていうか-gは未だによく分かってない。grobalに入れてくれるの?なんか依存性とか大変そう...
npm iがinstallの略らしいということに気がつき、node文化は省略が多い気がする


2日目(2017-06-12)
知人のreact使いに --saveすると packageに入るってことを教えてもらった
俺も仕事で使いたいよーreactとかそういうの

パッケージの追加インストールが依存性をぐちゃっとしたらしい仮説に気がついたのが2日目
yarn.lockとpackage.jsonとpackage-lock.jsonの違いが分からん
後yarn add (ライブラリ名)とnpm install (パッケージ名)の違いもわからん
yarnの方がクールということは分かった。俺は雰囲気でnode.jsをやっている...

 

コマンド&オプション
npm install --save react-native@latest を
npm install --save react-native latest にして
latestという名前のライブラリがインストールされた笑

友達のインフラエンジニアが言ってた、環境周りは手打ちをするなと...可能な限りコピペするのだと...

create-react-native-appとreact-native initの2種類があることも知った
前者の方がイケてるらしい

 

3日目(2017-06-13)
stackoverflowで優しい人が教えてくれた...
https://stackoverflow.com/questions/44489330/undefined-is-not-an-objectecaluating-reactinternals-reactcurrentowner/44503337#44503337
しかもすでに見たはずのgithubのissueにあったやつ
ちょっとマヌケじゃないか自分...