サンフランシスコ滞在記Day2:ユニオンスクエア, Udemy, SFMOMA, SIMカード購入
2日目です。
ユニオンスクエア
10:30くらいにバスを使ってユニオンスクエアへ移動。バスは日本でいうSuicaのようなカードをタッチすると乗れる方式なんだけど、乗り降り口がすべて一緒で2箇所開くから払わずに乗る人も結構いてびっくり。
途中の道もかなり舗装状態が悪く、めちゃ上下に揺れる。
ユニオンスクエアはサンフランシスコの中心的なエリアで、かなり多くのオフィスや店舗が立ち並んでいる。と同時に結構ホームレスの人とかもいるので治安的には△といったところ。
まずは第一目的であるApple Storeを見に行ってきた。
I'm at Apple Union Square in San Francisco, CA https://t.co/peiB3Zx13x pic.twitter.com/7DCvmbJ7ND
— Kirie Miyajima (@mjk_0513) 2017年8月31日
ここのストアはかなり新しくて、これからのストアのスタンダードになるだろうと言われている。いままで以上にオープンになって、コミュニティを作ろぞっていう気概が見える。
www.apple.com
カフェテリアみたいなのも併設されてて、そこでこの後どうしようかいろいろ調べていたときにメッセージが。なんともともとぜひお会いしたいと連絡していた方が、Udemyの方に繋いでくださった。ちょうどランチの時間だったので、Udemyに来れば一緒に食べようとお誘いいただきすぐに向かう。
ユニオンスクエアからUdemyまでは歩いて15分ちょいだけど、途中に知っている会社のオフィスがたくさんあった。
LinkedIn
WeWork
さすがサンフランシスコって感じがすごくする。
Udemy
急遽Udemyのオフィス見学させてもらえた! (@ Udemy in San Francisco, CA) https://t.co/HgKV7xmkMQ pic.twitter.com/2xuUo2dCQ5
— Kirie Miyajima (@mjk_0513) 2017年8月31日
Udemy社食 #mjkSFTrip17 pic.twitter.com/dwGzirRCCH
— Kirie Miyajima (@mjk_0513) 2017年8月31日
社食はケータリング形式で、フードもドリンクもスナックもすべてフリー。アメリカのイケてるスタートアップ感がすごい。オフィスの中も多くの人が自分の仕事してて、アツさを感じた
PCやタブレット、スマホなど一切のテクノロジーデバイスを排除したミーティングスペースがあって、Zenルームと名付けられてる。
いいオフィスでした!案内頂いた方とも今後なにかできそう。
ちなみに近くにGitHubもあった。
外から (at @GitHub HQ 3.0 in San Francisco, CA) https://t.co/qBBs3btX8B pic.twitter.com/TpexV67hEX
— Kirie Miyajima (@mjk_0513) 2017年8月31日
SFMOMA
Sun Francisco Museum of Modern Art の略で、サンフランシスコ近代美術館です。
美術館行くのがすごく好きなので、今回の旅行では絶対に以降と決めてた場所。
来たかったとこ (@ San Francisco Museum of Modern Art - @sfmoma in San Francisco, CA) https://t.co/RwhgWsFLkb pic.twitter.com/wUfjJYddbH
— Kirie Miyajima (@mjk_0513) 2017年8月31日
中の展示品もいろんな時代・場所の作品で見応えがあった。
近くにはYerba Buena Gardensという公園もあって、すごい気持ちがいいエリア。
今日はめちゃ暑い (@ Yerba Buena Gardens in San Francisco, CA) https://t.co/ygk9ZXOA48 pic.twitter.com/OWVQnU3pzA
— Kirie Miyajima (@mjk_0513) 2017年8月31日
SIMカード購入
サンフランシスコ市内には #SFWiFi というタウンWi-Fiが飛んでいて、けっこういろんなところで接続できるんだけど、やはりSIM指して4G使えたほうが便利。Googleマップとか見ながら歩けるのは本当にデカい。
あと、海外のSIMさしてみたかったというのもあり、AT&Tで購入することに。
事前情報によると、auだとKDDIの関係でAT&T系列のSIMであればSIMロック端末でも通じるとのこと。
SIMロックau版iPhoneでも現地SIMが使える!アメリカ旅行の通信費節約する方法! | FatherLog
2017年4月の記事だったので、いまでもいけるかなと思いさっそくショップへ。
Appleのジーニアスバー形式と同じで店員さんが1人1人ついてくれるので、20分くらい待つ。すごくフランクで丁寧な人にあたり、終始和やかに会話しながらSIMのアクティベーションまで完了。
結果、余裕でつながる!
SIMのアクティベートまで店員さんやってくれてありがたい!呼ばれるまでMac広げてコード書いてたら「君はプログラマーなのかい?僕はObj-Cが書けるよ」ってドヤ顔された笑 #mjkSFTrip17 pic.twitter.com/RUKHfSFuz7
— Kirie Miyajima (@mjk_0513) 2017年9月1日
そこまで英語に自信ないけど、結構会話できたのでそこが地味に嬉しかった。
プランは1ヶ月有効の6GBまで使えるものに。価格は$50いかないくらいだったのでめちゃ十分。
そんなこんなで2日目終了。まだ身体が若干時差に慣れてないみたいで、終始眠い状態。
明日はいよいよシリコンバレーへ。Apple Infinity Loopを訪問します。
サンフランシスコ滞在記Day1:到着〜TwitterHQ
完全プライベートな旅行としてサンフランシスコに来ています。
毎日夜にちょっとでもいいからブロクを書くぞ!
Apple Store 探訪記 (随時更新)
おかげさまで、仕事で国内様々な場所に行かせていただくようになって早3年ほど。
個人的な趣味として、もし行った先にAppleStoreがあればとりあえず行く、みたいなことやってる。
このエントリーには、行った時の写真と日付・コメントをまとめていくことにする。
Sapporo(北海道・札幌)
探訪日:2014年3月
今は亡きApple Sapporo。高1の冬、学校のスキー学校で北海道に行ったときの自由行動時間に友人と行ってきた。こじんまりとした場所だなーくらいにしか思ってなかったけど、全てはここからはじまった。
Sendai(宮城県・仙台)
探訪日:2017年8月
大きな商店街通りの一角に佇むStoreで、ちゃんと見てないとスルーしてしまうくらいの規模感だった。
MacBook Pro を買ったばかりだったので、HDMI-USB-Cの変換と、USB-C - Lightning ケーブルを買った。
Shibuya(東京都・渋谷)
訪問日:たぶん2014年6月
営業終了後の写真。ここもこじんまりとしてる。
Omotesandou(東京都・表参道)
訪問日:2014年6月
オープン初日にたまたま行くことができた。ガラス張りの大規模なStoreは新しいStoreって感じですごく好き。(RED)のシールをもらったのもここ。
Nagoya(愛知県・名古屋)
訪問日:2017年8月
心斎橋とおなじくらいの規模感。
Shinsai-Bashi
訪問日:2016年8月
2016年のDojoConのときに合間見つけて行ってきた。夏で暑すぎてしばらくシアターで休んで思い出。
Fukuoka Tenjin(福岡県・天神)
訪問日:--
海外編 南京东路(中国・上海)
訪問日:2017年2月
南京东路 - Apple Store 零售店 - Apple (中国)
上海の勢いがわかる、すごく大きなStoreだった。
本社編 Infinite Loop (アメリカ・クパティーノ)
訪問日:2017年9月
ついに本社ストアを訪問!ここでしか買えない限定グッズを買い込んだ。
いぬボードを触ってみた
先日Switchサイエンスから発売されたいぬボード。
www.switch-science.com
「学校のコンピュータ教室で使える」をコンセプトにして作られたこのボードは、コンピュータとのやりとりをヘッドホン端子とマイク端子を使って行うというもので、実際にかなり使えることになると思う。
僕の所属している研究会で大量に購入して、実際の授業でどう使えるか研究する必要があったので触ってみた。
明るさを取得する
いぬボード本体に明るさセンサーがついていて、簡単に明るさを取得することができる。
数値としては0-10でくるらしく、そのまま取得しただけだとおもしろくないので、×10とかして数値を加工してあげると使いやすいかな。
追記)こちら、間違いでした。通常の音量とおなじくマイクの音量設定で変化していきます。(@abee2 先生ありがとうございます)
明るさセンサーの値は0~10の範囲と決まっているわけではありません。マイクの音量設定で変化します。したがって、授業やWSなどで、みんな同じ結果になるようにするのであれば、最初にこの設定を合わせておく(校正する)必要があります。これは、LEDの明るさとスピーカーの音量も同じです。
— Kazuhiro ABE (@abee2) 2017年8月24日
マイク設定について、機種によってはAGC(Auto Gain Control)機能がついているものがあります。これがあると、大きな音が入ると自動的にボリュームを絞ってしまうので、正確な値が測れません。解除できるようであれば外すことを勧めます。ただし、解除できないものもあります。
— Kazuhiro ABE (@abee2) 2017年8月24日
サンプル
Scratchのサンプルプログラムはここに置いてあります。
scratch.mit.edu
ほんと、PCといぬボードを音声ケーブルでつないで、USBから給電して、ブレッドボードにLEDセットしてジャンプワイヤーで繋げばLED光るのはすごい!
いろいろ使いみちがありそうです。
MacBook Proを1週間使った感想
!!!!????👍👍👍💪💪💪👏👏👏 pic.twitter.com/dCZaaP5hCH
— Kirie Miyajima (@mjk_0513) 2017年7月28日
うぇーーい!
— Kirie Miyajima (@mjk_0513) 2017年7月28日
ハッカソン現場に新機材を投入して行くスタイル pic.twitter.com/FoPFRPREJ7
MacBook Pro Early2017 モデルを買いました。2代目の相棒です。
1週間使ってわかったことがあるのでメモしておきます。
スペック
今回買ったMacBook Proのスペックです。
- 名称:13インチ MacBook Pro TouchBarなし
- プロセッサ:2.3 GHz Intel Core i5
- メモリ:16GB 2133 MHz LPDDR3
- ストレージ容量:512GB
ちなみに、前に使っていたMacBook Air のスペックはこんな感じ。
- 名称:MacBook Air 13インチ Late2013モデル
- プロセッサ:1.4GHz Intel Core i5
- メモリ:8GB 1600MHz DDR3
- ストレージ容量:128GB
MacBook Air, よくがんばってくれた...
MacBook Airを使ってたときの課題感
MBAを使ってたときに感じていた課題感は以下の通りです。
MacBook Proを使って解決した点・よいところ
- ストレージ512GBは神:多ければ多いほうがいいのは、ストレージとメモリですね。ガンガン同期できて素晴らしすぎます。iCloud driveも200GB分契約しているので、快適なストレージライフを送っています。
- ビルドの速さ:ハッカソンでのビルドの早さにはびっくりしました。実機ビルドもサクッとこなしてくれる。素晴らしいです。
- Retinaディスプレイの美しさ:YouTubeで高解像度の動画見まくってます。美しすぎる...
- バッテリーは持つ:これは買ったばかりなので当たり前ですが、バッテリーもよく持ちます。よさです。
- 内蔵スピーカーのよさ:キーボードの左右にあるスピーカーがいい仕事してくれます。結構大きな音もでる。
MacBook Proの課題感
- USB Type-Cの罠:やはりType-Cオンリーだとめんどくさいなと思うときが多いです。拡張ポートとしてはこれを買いました。
www.amazon.co.jp
あと直面したのは外部ディスプレイにつなぐコネクタ問題ですね。HDMI-TypeCの変換は購入したのですが、VGAとの変換は間に合わず。仕事柄プレゼンする機会が多いのでこれは買わないと駄目かなって感じです。
あと、13インチTouchBarなしモデルだと、Type-Cのポートが左側2つしかないのも残念すぎます。差別化ってこういうことなのか...
- キーボードの音:キーボード自体はすごく打ちやすいです。この打撃感すごい好きなのでいいのですが、叩くたびにペチペチ音がするのはちょっとうるさいかも。電車とかバスの中でこれやってるとウザがられそう。
- 電源アダプタの爪がない問題:MBAのときは電源アダプタに爪がついてて、そこにコード巻き取っていたのですごく収納が気持ちよかったのですが、MBPの電源アダプタにはついていません。確かに断線しやすいとかっていう問題はあったけど、それ以上に収納性が悪くなったのは残念です。
- Type-CとLightningのサードパーティの質:以下の製品を買ったのですが、認識すらしない粗悪品でした。
www.amazon.co.jp
早く新しいもの調達しないと。
結局どうなの
すごくいい買い物だったかなと思います。これもあと3年くらいはお世話になるはずなので、大切に使っていこうと思います。
石巻ハッカソン2017に出た
昨年に引き続き、今年も石巻ハッカソンに来ました。
石巻ハッカソン2017
村脇くんが遅刻して新幹線乗り過ごしたこと以外順調な滑り出しですね👍 pic.twitter.com/HKUBE5ZjHA
— Kirie Miyajima (@mjk_0513) 2017年7月28日
まずいきなり同行者が遅刻して新幹線に乗り遅れるというハプニングがありつつも、どうにか無事に到着しました。
1年ぶり! (@ Ishinomaki Station in 石巻市, 宮城県) https://t.co/AqW4oqjYX3
— Kirie Miyajima (@mjk_0513) 2017年7月28日
実は今回のために新しくMacBook Proを買っていまして、カスタマイズしてたから届くのが1週間後になっちゃったので、千葉ではなく石巻に送りつけるという暴挙にでました。
!!!!????👍👍👍💪💪💪👏👏👏 pic.twitter.com/dCZaaP5hCH
— Kirie Miyajima (@mjk_0513) 2017年7月28日
うぇーーい!
— Kirie Miyajima (@mjk_0513) 2017年7月28日
ハッカソン現場に新機材を投入して行くスタイル pic.twitter.com/FoPFRPREJ7
これについてはまた後日書きます。
で、早速開発へ。
今回のテーマは「ひみつ道具」。某猫型ロボットをどうしても想像しがちなテーマですが、結構自由度が広くて逆に困った。
何も出てこなくてお散歩してたら、いきなりメンバーが鬼ごっこ始めたので、そこからヒントを得て一気に仕様作成。
こんなものを作りました。
今回初めてがっつりとAppleWatch対応のアプリを作ったんですが、結構めんどくさいなという印象です。
あとSeries1は限界。本格的に開発するならそろそろ買い替えかなぁという感じです。
初代Watchでデバッグしてるけど、アプリのlaunchが遅すぎてイライラするな
— Kirie Miyajima (@mjk_0513) July 29, 2017
購入案件ありえるけどどうせまたすぐ出る...
AppleWatch series1 はデバッグに耐えられるスペックではないことが判明したハッカソンだった(まだ終わっていない
— Kirie Miyajima (@mjk_0513) July 29, 2017
深夜遅くまでの開発は肉体的・精神的にもダメージの大きいものですね...
#ishinomakihack 追い込み pic.twitter.com/gMj8vAe8mO
— Kirie Miyajima (@mjk_0513) July 29, 2017
おはようございます☀#ishinomakihack pic.twitter.com/N7RSSjmMu8
— Kirie Miyajima (@mjk_0513) July 29, 2017
結果として入賞は逃してしまいましたが、「ひみつ道具賞」の最終選考までは残っていたということで、また来年リベンジを果たしに来ようと思います。
さて、これで今年3回目のハッカソンです。
ハッカソンに出るたびに、なんでこんな苦行をしてるんだと言われがちですが、完全にスポーツ感覚でやってるところが大きいのかなと思います。あと、なによりチーム開発はマジで楽しい。自分は現在現場の第一線でコードかいているバリバリのエンジニアではありませんが、自分の技術力上がってるのわかるし話合う人たちが周りにたくさんいる。こんな素晴らしい環境はハッカソン以外なかなかないと思います。
あとはハッカソンのゲーム性です。与えられた時間内に1から仕様策定・デザイン・実装という個々にやれば何人月も掛かりそうな作業を、たったの1日や2日で作ってしまう。時間直前のヒリヒリ感がたまらなく大好きです。
今の自分にとってハッカソンに出ることは完全に趣味の1つになりました。いい趣味が持てたと思います。
またどこかのハッカソンに出るかもしれませんが、その時までに頑張って技術力を少しでも上げておきます💪
【Swift3】UITableViewCellをタップしたときに画面遷移をさせる
このブログで1番読まれてる記事がこれ
mjk0513.hateblo.jp
これはSwift1.x系での記法のままなので新しくSwift3.x系で書き直します。
ViewController.swift
import UIKit class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource { let myTableView:UITableView = UITableView() let items:[String] = ["北海道", "青森", "秋田", "岩手", "福島", "宮城", "山形"] override func viewDidLoad() { super.viewDidLoad() myTableView.frame = self.view.bounds myTableView.dataSource = self myTableView.delegate = self myTableView.register(UITableViewCell.self, forCellReuseIdentifier: "MyCell") self.view.addSubview(myTableView) } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return items.count } func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell:UITableViewCell = UITableViewCell(style: .default, reuseIdentifier: "MyCell") cell.textLabel?.text = items[indexPath.row] return cell } func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { //セルの選択解除 tableView.deselectRow(at: indexPath, animated: true) //ここに遷移処理を書く self.present(SecondViewController(), animated: true, completion: nil) } }
次に遷移先のViewです
SecondViewController.swfit
import UIKit class SecondViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() self.view.backgroundColor = UIColor.white let backButton:UIButton = UIButton() backButton.frame = CGRect(x: 0, y: 0, width: 100, height: 100) backButton.setTitle("back", for: .normal) backButton.setTitleColor(UIColor.blue, for: .normal) backButton.layer.position = CGPoint(x: self.view.frame.width/2, y: self.view.frame.height/2) backButton.addTarget(self, action: #selector(back), for: .touchUpInside) self.view.addSubview(backButton) } func back() { self.dismiss(animated: true, completion: nil) } }
ポイントはdidSelectRowAtというメソッドを呼び出して、その中に遷移する処理を書くことです。
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { //セルの選択解除 tableView.deselectRow(at: indexPath, animated: true) //ここに遷移処理を書く self.present(SecondViewController(), animated: true, completion: nil) }
ちなみに、tableView.deselectRow()をやらないとAppleの審査通らないので注意です。
これがSwift3での画面遷移処理でした!