また1からこつこつと

最高はひとつじゃないと信じてまたがんばります。

Apple Store 探訪記 (随時更新)

おかげさまで、仕事で国内様々な場所に行かせていただくようになって早3年ほど。
個人的な趣味として、もし行った先にAppleStoreがあればとりあえず行く、みたいなことやってる。

このエントリーには、行った時の写真と日付・コメントをまとめていくことにする。

Sapporo(北海道・札幌)

f:id:mjk0513:20170826233117j:plain
探訪日:2014年3月

今は亡きApple Sapporo。高1の冬、学校のスキー学校で北海道に行ったときの自由行動時間に友人と行ってきた。こじんまりとした場所だなーくらいにしか思ってなかったけど、全てはここからはじまった。

Sendai宮城県・仙台)

f:id:mjk0513:20170826233331j:plain
探訪日:2017年8月

大きな商店街通りの一角に佇むStoreで、ちゃんと見てないとスルーしてしまうくらいの規模感だった。
MacBook Pro を買ったばかりだったので、HDMI-USB-Cの変換と、USB-C - Lightning ケーブルを買った。

GInza(東京都・銀座)

f:id:mjk0513:20170826233656j:plain
訪問日:不明(よく行く)

一番好きな店舗。大きいし、シアターでゆっくり新しいデバイスのセットアップするのいい。
f:id:mjk0513:20170826233755j:plain
ちなみにアースデーのときのりんごマークはこんな感じ。

Shibuya(東京都・渋谷)

f:id:mjk0513:20170826234101j:plain
訪問日:たぶん2014年6月

営業終了後の写真。ここもこじんまりとしてる。

Omotesandou(東京都・表参道)

f:id:mjk0513:20170826234816j:plain
訪問日:2014年6月

オープン初日にたまたま行くことができた。ガラス張りの大規模なStoreは新しいStoreって感じですごく好き。(RED)のシールをもらったのもここ。

Nagoya(愛知県・名古屋)

f:id:mjk0513:20170901003447j:plain
訪問日:2017年8月

心斎橋とおなじくらいの規模感。

Shinsai-Bashi

f:id:mjk0513:20170826235249j:plain
訪問日:2016年8月

2016年のDojoConのときに合間見つけて行ってきた。夏で暑すぎてしばらくシアターで休んで思い出。

Shinjuku

f:id:mjk0513:20180907225844j:plain
訪問日:2018年4月7日(OP)

はじめてオープン初日に並んでノベルティをゲットしてきた。
f:id:mjk0513:20180907225924j:plain
一緒に並んだのはApple信者友達。

Kyoto

f:id:mjk0513:20180907230115j:plain
訪問日:2018年9月7日

開店当日は行けなかったけど、夏休みを利用して訪れてみた。
佇まいがよい。
f:id:mjk0513:20180907230154j:plain
この大理石は Steve Jobs Theater のものと同じらしい。

Fukuoka Tenjin(福岡県・天神)

訪問日:--

番外編 Isetan Shinjuku

f:id:mjk0513:20170826235730j:plain
訪問日:2015年4月

当時まだApple Watchが出る前で、着けただけでテンション上がってた思い出。

海外編 南京东路(中国・上海)

f:id:mjk0513:20170901003758j:plain
訪問日:2017年2月
南京东路 - Apple Store 零售店 - Apple (中国)
上海の勢いがわかる、すごく大きなStoreだった。

本社編 Infinite Loop (アメリカ・クパティーノ)

訪問日:2017年9月
f:id:mjk0513:20170903005833j:plain
ついに本社ストアを訪問!ここでしか買えない限定グッズを買い込んだ。

いぬボードを触ってみた

先日Switchサイエンスから発売されたいぬボード。
www.switch-science.com

「学校のコンピュータ教室で使える」をコンセプトにして作られたこのボードは、コンピュータとのやりとりをヘッドホン端子とマイク端子を使って行うというもので、実際にかなり使えることになると思う。
僕の所属している研究会で大量に購入して、実際の授業でどう使えるか研究する必要があったので触ってみた。

まずはLチカ

vimeo.com

ハードウェアのHello,worldことLチカを早速やってみた。
Scratch側では「音」を出す命令として書かれる。

明るさを取得する

いぬボード本体に明るさセンサーがついていて、簡単に明るさを取得することができる。
数値としては0-10でくるらしく、そのまま取得しただけだとおもしろくないので、×10とかして数値を加工してあげると使いやすいかな。

追記)こちら、間違いでした。通常の音量とおなじくマイクの音量設定で変化していきます。(@abee2 先生ありがとうございます)




サンプル

Scratchのサンプルプログラムはここに置いてあります。
scratch.mit.edu

ほんと、PCといぬボードを音声ケーブルでつないで、USBから給電して、ブレッドボードにLEDセットしてジャンプワイヤーで繋げばLED光るのはすごい!
いろいろ使いみちがありそうです。

MacBook Proを1週間使った感想


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を使ってたときに感じていた課題感は以下の通りです。

  • ストレージ容量不足:128GBだと厳しすぎます。Xcode肥大化しすぎ... 写真も音楽も同期できなかった。
  • メモリ不足:年数が経つにつれてXcodeのビルドが遅くなっていきました。何度かリセットしたんだけど、やっぱりスペック不足が原因だった。
  • グラフィックス:iPhone見ちゃうとMBAのディスプレイが荒く見えてしまう。そこまでではないけどやはり気になる。
  • バッテリーの劣化:これは交換すればよかったんですが購入して2年半くらい経ったころから、バッテリーの劣化が気になるようになりました。

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

まずいきなり同行者が遅刻して新幹線に乗り遅れるというハプニングがありつつも、どうにか無事に到着しました。

実は今回のために新しくMacBook Proを買っていまして、カスタマイズしてたから届くのが1週間後になっちゃったので、千葉ではなく石巻に送りつけるという暴挙にでました。



これについてはまた後日書きます。

で、早速開発へ。
今回のテーマは「ひみつ道具」。某猫型ロボットをどうしても想像しがちなテーマですが、結構自由度が広くて逆に困った。
何も出てこなくてお散歩してたら、いきなりメンバーが鬼ごっこ始めたので、そこからヒントを得て一気に仕様作成。
こんなものを作りました。

今回初めてがっつりとAppleWatch対応のアプリを作ったんですが、結構めんどくさいなという印象です。
あとSeries1は限界。本格的に開発するならそろそろ買い替えかなぁという感じです。

深夜遅くまでの開発は肉体的・精神的にもダメージの大きいものですね...


結果として入賞は逃してしまいましたが、「ひみつ道具賞」の最終選考までは残っていたということで、また来年リベンジを果たしに来ようと思います。


さて、これで今年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での画面遷移処理でした!

ESDとか環境教育がおもしろい

環境教育論っていう授業のレポート書いてて、ESDとかSDGsについてdigりまくってたら結構いい感じに知見を得た。ココらへんの分野はすごく自分好みなのですっと入ってくるの嬉しい。


ESDは、Education for Sustainable Developmentの略で、持続可能な開発のための教育と訳される。つまり、持続可能な開発をしていくためには現世代だけではなく次世代にも必要だよねみたいな話。
ESD(Education for Sustainable Development):文部科学省

SDGsとは、Sustainable Development Goalsの略で、持続可能な開発目標と訳される。世界をより良い方向に修正するためにはこういうことが必要だよねっていう目標が示された。
www.unic.or.jp

https://www.jica.go.jp/aboutoda/sdgs/ku57pq00001qfok2-img/sdgs_02.gif

SDGsで示されたゴールは以下の通り。

  1. 貧困をなくそう
  2. 飢餓をゼロに
  3. すべての人に健康と福祉を
  4. 質の高い教育をみんなに
  5. ジェンダー平等を実現しよう
  6. 安全な水とトイレを世界中に
  7. エネルギーをみんなに、そしてクリーンに
  8. 働きがいも経済成長も
  9. 産業と技術革新の基盤を作ろう
  10. 人や国の不平等をなくそう
  11. 住み続けられるまちづくりを
  12. つくる責任、使う責任
  13. 気候変動に具体的な対策を
  14. 海の豊かさを守ろう
  15. 陸の豊かさも守ろう
  16. 平和と校正をすべての人に
  17. パートナーシップで目標を達成しよう

確かにこれらすべてのゴールを達成できたら、すごくいい地球になるし、めちゃくちゃいいことだと思う。まあ当然すぐに達成できるようなものなどないけど、これらの問題にしっかりと取り組みましょうという意思を国連が示したのはとてもいいこと。
SDGsがリリースされたのは2016年1月1日のこと。対してESDのほうは1997年には草案が話し合われていた。
でも、ESDで扱う内容はまさにSDGsでゴールに設定されたことばかり。
具体的な定義付がされてESDは取り組みやすくなったんじゃないかなと思う。

で、環境教育はなにかっていう話ですが、ざっくりいうとESDの一分野だと自分は思っている。今回レポート書いてて自分なりに定義付けをした。

環境教育とは私たちが住んでいる地球という星の現状を知り、私たち人間も含む生き物たちがこれからどのように生きていくかを考えるためにある。

言ってしまえばこれはESDの目標にもなると思うのだけど、それだけESDの各分野は境界線がないということだ。さらに言うとESDには境界線がないほうが本来の意味に近づくのでほんとはよかったりする。

ココらへんの分野はけっこう好きなので引き続きリサーチがんばりたい。