サンフランシスコ滞在中に便利だったアプリなど
東京に戻ってきて、サンフランシスコ中に使っていたiOSアプリを削除しているんですが、何を使っていたか備忘録として残しておきたいな、と思い、アプリ以外の情報も含めてここに残しておこうと思います。
目次
iOSアプリ
Uber
説明不要ですね。サンフランシスコでの移動では大変お世話になりました。
Lyft
こちらも説明不要。使用した限りではUberより心なしか安い気がする。たまたまなのかサンフランシスコ国際空港から市内に向かうときは、UberよりLyftの方がかなり安いです。1人でもシェアライドを選べば、BARTより安いことも結構多いです。
Transit
サンフランシスコ市内での公共交通機関を使う場合はこちらが便利。乗り換えの検索や、最寄りのバス停・メトロ駅の検索、バス・メトロ運行状況をリアルタイム検索できたりと、UIの使い勝手も含めて、かなり優秀アプリです。
Yelp
サンフランシスコでレストランを探すならこれ(賛否両論あるようですが)。レビューが高くても個人的にイマイチと感じることもあったので、Google Mapのレストラン評価と併せて参考程度にするのが良さそうです。
私は床屋の検索もYelpで行いました。
OpenTable
レストラン予約アプリ。サンフランシスコでも人気のお店は予約が必要です。Yelpでレストランを検索し、OpenTableで予約することもありました。おいしいご飯を並ばずに食べたい人は必須アプリ。
Meetup
サンフランシスコ内では毎日たくさんのMeetupが行われています。主にMeetupの検索で使っていました。
The Weather Network
天気予報アプリです。数ある天気予報アプリの中で、かなり予報精度が高いです(少なくともサンフランシスコに関しては)。天気の変わりやすいサンフランシスコでは必需品ですね。
Couchsurfing
私は英語力上達のため、サンフランシスコでCouchsurfingでホストをしていました。ゲストとの連絡は、Whatsappなどに移るまではこちらを利用していました。泊める・泊まる以外にも、一緒に飲みに行く人や一緒に観光する人を探すこともできます。
余談ですが、サンフランシスコ市内にあるCouchsurfingの本社では、毎月?無料で映画が上映されるイベントが開催されています。
Webサイト
FunCheap
サンフランシスコ近郊で行われるイベントが網羅されています。日本では見ないようなユニークなイベントも多いので、こちらで見つけたイベントに結構参加してました。
Eventbrite
こちらもイベントが検索できるWebサイト。こちらはiOSアプリもあるようですが、上のFunCheapの方が掲載イベントが多かったので、利用頻度は少なめでした。
Spirit Airlines
サンフランシスコではないですが、湾向かいのオークランド国際空港からSpirit Airlinesの飛行機が飛んでいます。LA行きなどは、直前でも結構安く買えたりします。
最後に
すでにサンフランシスコでの生活を忘れつつあるので、何か思い出したら情報を追加しようと思います。
3ヶ月のサンフランシスコ滞在を終えて
3ヶ月の任期を終えてサンフランシスコから東京に帰ってきました。
可能ならもっと長く滞在していたかったですが、東京オフィスの業務都合もあり、延長希望は通りませんでした。笑
ということで、記憶のあるうちにサンフランシスコでの目標の達成具合を振り返って見ようと思います。
SFのエンジニアとの技術の力量の差を知る
個人的な感想としては、ソフトウェアの技術レベルに関しては日本とサンフランシスコで大きな違いはなく、優秀なエンジニアもいるし、結構平凡なエンジニアもいる、が正直な感想です。
もちろんサンフランシスコ中のエンジニアと会ったわけではないですし、私の短い滞在での知る限り、という注釈付きになりますが、職場で働いた限り&Meetupに参加した限りの感想は、上記の通りです。
ただ、ソフトウェアの技術レベル以外の、特にプレゼンテーション技術はサンフランシスコのエンジニアのが優れているなあと感じました。
話の進め方とか、聴衆を取り込む力とか、とにかく慣れている。これは、日本のエンジニアとしては見習うべき点のひとつかと思っています。
英語を上達させる
これは正直目立った上達はあまりないかな、と感じています。悔しいですが。
職場だけでなく、Couchsurferを家に招いたりとなるべく喋る機会を増やす努力をしましたが、劇的に話せるようになったとか聞けるようになった感じはしないです。
ただ、最近は発音の勉強に力を入れるようにしていて、その効果は少しずつでてきているように思います。
(社外で)友達を作る
残念ながらフランクに飲みに行けるような友達はできませんでした。が、CouchsurferやMeetupで参加したバレーボールを通して、定期的に連絡を取るような友達はできました。
この関係は大切にしていきたいと思います。
ヨセミテ国立公園に行く
こちらは無事達成。5月初旬に行ったので、雪の関係で行けないところは多々あったし、週末だけではとても周りきれななかったですけど、Gracier pointには行けたし、偉大な自然を存分に感じました。
長い時間をとって、いつかまた訪れたいと思います。
以上、目標に対しての振り返りです。英語はもう少しやれたかなあと思うところがあるので、ちょっと残念に思っていますが、概ね満足です。
3ヶ月という短い期間でしたが、ここに書いたこと以外にも得るものはたくさんあったし、とても良い刺激になりました。そして、より一層海外で働きたいという気持ちが増しました。
足りない部分にも色々気づけたので、この経験を今後の成長に役立てていこうと思います。
自作Pythonモジュールのpypiへの登録
少し時間が空きましたが、以前に予告した通り、自作モジュールのpypiへのアップロードに挑戦してみます。
流れは以下の通り。
- アカウント登録
- setup.pyの修正
- testpypiへのお試しアップロード
- pypiへのアップロード
では順を追って説明していきましょう。
アカウント登録
pypiへの登録にはまずアカウント登録が必要です。実際にはアップロード時にアカウントを作成することも可能なようですが、今回は事前に作成します。
アカウント登録は本番用のpypi.python.orgとテスト用のtestpypi.python.orgそれぞれに登録しておきましょう。
ユーザー名, パスワード, メールアドレスなので、特に難しいことはないと思います。(メールアドレスだけ少しルールが厳しいです。)
setup.pyの修正
前回作ったsetup.pyをpypiでのリリースに向けて修正しましょう。
from setuptools import setup setup( name='siro_uma.hello', version='0.2.0', description='A sample Python project', long_description='This is a sample to say Hello!', url='https://github.com/sirouma/hello', author='siro_uma', author_email='sirouma.09@gmail.com', license='MIT', classifiers=[ 'Development Status :: 3 - Alpha', 'Intended Audience :: Education', 'Topic :: Education', 'License :: OSI Approved :: MIT License', 'Programming Language :: Python :: 3.6', ], keywords='sample setuptools development', packages=['hello'], entry_points={ 'console_scripts': [ 'hello=hello.hello:hello', ], }, )
ライセンスは1番簡単なMITをこちらのサイトを参考にしながら付与してみました。
classifiersに関しては、pypiが提供するリストの中から適当なものを選んでみています。
testpypiへのお試しアップロード
pypiへのアップロードの前に、testpypiでトレーニングしましょう。(と、pypiが申しております。Packaging and Distributing Projects — Python Packaging User Guide documentation)
まずはHOME/.pypircを作成しましょう。これをやっておくと以降で出てくるregister/uploadの際にusername/passwordが聞かれなくなるので便利です。
[distutils] index-servers = pypi pypitest [pypi] repository=https://pypi.python.org/pypi username=siro_uma password=password [pypitest] repository=https://testpypi.python.org/pypi username=siro_uma password=password
続いて前回のおさらいでインストール可能なパッケージの作成。
> python3 setup.py sdist
packagingした内容を基に、testpypiにpackageのmetadataを登録します。
まずは登録に必要なコマンドラインツールtwineをインストールし、それを使って登録を行います。
> pip3 install twine > twine register dist/* -r pypitest Registering package to https://testpypi.python.org/pypi Registering siro_uma.hello-0.1.0.tar.gz
さらにpackageしたファイルを登録します。
> twine upload dist/* -r pypitest Uploading distributions to https://testpypi.python.org/pypi Uploading siro_uma.hello-0.1.0.tar.gz [================================] 4350/4350 - 00:00:02
以上で、https://testpypi.python.org/pypiへの自作モジュールの登録が完了します。 念のため、インストール可能か試してみましょう。
> pip3 install -i https://testpypi.python.org/pypi siro_uma.hello Collecting siro_uma.hello Downloading siro_uma.hello-0.1.0.tar.gz Installing collected packages: siro-uma.hello Running setup.py install for siro-uma.hello ... done Successfully installed siro-uma.hello-0.1.0 > hello Hello, world!
問題なさそうなので、続いて本番環境である、https://testpypi.python.org/pypiに登録してみましょう。
pypiへのアップロード
やることはtestpypiのときと変わりません。-rでindexを指定する先が変わるだけです。
> twine register dist/* -r pypi Registering package to https://pypi.python.org/pypi Registering siro_uma.hello-0.1.0.tar.gz > twine upload dist/* -r pypi Uploading distributions to https://pypi.python.org/pypi Uploading siro_uma.hello-0.1.0.tar.gz [================================] 4350/4350 - 00:00:02
> pip3 install -i https://pypi.python.org/pypi siro_uma.hello Collecting siro_uma.hello Downloading siro_uma.hello-0.2.0.tar.gz Installing collected packages: siro-uma.hello Running setup.py install for siro-uma.hello ... done Successfully installed siro-uma.hello-0.2.0 > hello Hello, world!
最後に
以上でHello, world!な自作モジュールをpypiへの登録ができました。非常に簡単に自作モジュールを世に展開できるのがわかったかと思います。
参考までに、作ったモジュールへのリンクと、ソースコードのリンクを貼り付けておきます。
siro_uma.hello 0.1.0 : Python Package Index
siro-uma.hello 0.2.0 : Python Package Index
次回はテストエンジニアらしく、pytestのプラグインの作成について記載したいと思います。