3ヶ月のサンフランシスコ滞在を終えて

3ヶ月の任期を終えてサンフランシスコから東京に帰ってきました。

可能ならもっと長く滞在していたかったですが、東京オフィスの業務都合もあり、延長希望は通りませんでした。笑

ということで、記憶のあるうちにサンフランシスコでの目標の達成具合を振り返って見ようと思います。

SFのエンジニアとの技術の力量の差を知る

個人的な感想としては、ソフトウェアの技術レベルに関しては日本とサンフランシスコで大きな違いはなく、優秀なエンジニアもいるし、結構平凡なエンジニアもいる、が正直な感想です。

もちろんサンフランシスコ中のエンジニアと会ったわけではないですし、私の短い滞在での知る限り、という注釈付きになりますが、職場で働いた限り&Meetupに参加した限りの感想は、上記の通りです。

ただ、ソフトウェアの技術レベル以外の、特にプレゼンテーション技術はサンフランシスコのエンジニアのが優れているなあと感じました。

話の進め方とか、聴衆を取り込む力とか、とにかく慣れている。これは、日本のエンジニアとしては見習うべき点のひとつかと思っています。

英語を上達させる

これは正直目立った上達はあまりないかな、と感じています。悔しいですが。

職場だけでなく、Couchsurferを家に招いたりとなるべく喋る機会を増やす努力をしましたが、劇的に話せるようになったとか聞けるようになった感じはしないです。

ただ、最近は発音の勉強に力を入れるようにしていて、その効果は少しずつでてきているように思います。

(社外で)友達を作る

残念ながらフランクに飲みに行けるような友達はできませんでした。が、CouchsurferやMeetupで参加したバレーボールを通して、定期的に連絡を取るような友達はできました。

この関係は大切にしていきたいと思います。

ヨセミテ国立公園に行く

こちらは無事達成。5月初旬に行ったので、雪の関係で行けないところは多々あったし、週末だけではとても周りきれななかったですけど、Gracier pointには行けたし、偉大な自然を存分に感じました。

長い時間をとって、いつかまた訪れたいと思います。

 

以上、目標に対しての振り返りです。英語はもう少しやれたかなあと思うところがあるので、ちょっと残念に思っていますが、概ね満足です。

3ヶ月という短い期間でしたが、ここに書いたこと以外にも得るものはたくさんあったし、とても良い刺激になりました。そして、より一層海外で働きたいという気持ちが増しました。

足りない部分にも色々気づけたので、この経験を今後の成長に役立てていこうと思います。

自作Pythonモジュールのpypiへの登録

少し時間が空きましたが、以前に予告した通り、自作モジュールのpypiへのアップロードに挑戦してみます。
流れは以下の通り。

  1. アカウント登録
  2. setup.pyの修正
  3. testpypiへのお試しアップロード
  4. 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

GitHub - sirouma/hello

次回はテストエンジニアらしく、pytestのプラグインの作成について記載したいと思います。

サンフランシスコで英語の学習機会を増やすためにやった3つの事

SF滞在中の目標の中で”英語を上達させる”と、高らかに宣言して早一ヶ月半。これまで私がサンフランシスコで英語の学習機会を増やすためにやったことを3つ紹介したいと思います。

Meetupへの参加

まずはMeetupの積極的参加ですね。以前ブログ内でも紹介しましたが、サンフランシスコ内では主に言語交換を目的とした英語に関するMeetupがかなりたくさんあります。
日英の言語交換や、単純に英語だけ会話しましょう的なものから、ただの飲み会まで様々です。
そこに積極的に参加することで、英語のアウトプットとインプットの量を増やすことができます。
また、英語の勉強法の情報交換なんかもできるので、英語を上達させる意味では非常にメリットが大きいと思っています。
同じ英語を勉強している人間同士ということで仲間意識も生まれやすく、友達を見つけやすいのも良い点の1つかもしれません。
私観点で、サンフランシスコ内のMeetupで比較的馴染みやすいもののリンクを貼り付けておくので、参考にしてみてください。

Nihongo Moriagari: Japanese Language Meetup (San Francisco, CA) | Meetup
Free English Conversation For International Students (San Francisco, CA) | Meetup
ILSC English Experience (San Francisco, CA) | Meetup

デーティングアプリの利用

TinderHappnなどを利用して、あわよくば外国人の彼女を見つけるのもひとつの手段です。 「その言語を学ぶのに一番の近道は、その言語を喋る異性と恋人関係になること。」とはよく言ったもので、まがいもない事実だと個人的には思っています。
恋人関係になるためのひとつのアプローチがデーティングアプリの利用になると思いますが、まあ結論から言うと、自分の場合はほとんど効果なしです 笑
マッチはしてもあまり会話が盛り上がらないので、なんの勉強にもなりません。私がデーティングアプリで効率的に勉強するには、別の何かの勉強が必要と思われます。。
色々な意味で自信のある方はぜひ試して成果を教えてほしいです(切実)
アプリもいくつかあるので自分の趣向に合わせて、選んでみてください。(以下参考)

The 8 Best Dating Apps for 2017 | Digital Trends

カウチサーフィンの活用

カウチサーフィンがどれほどの市民権を得ているか謎ですが、簡単に説明すると、カウチサーファーとは、人の家にあるカウチ(ソファ)を寝床にしちゃう人たちのことで、カウチサーファーと寝床となるカウチを提供するホストをマッチングさせてくれるウェブサービスが以下のサービス。 www.couchsurfing.com

で、私が実践しているのは、サーファーをホストする側。幸い今住んでいるアパートメントがまあまあな広さで、素敵なカウチもついているので、サンフランシスコに来てからホストをしてみています。
知らない人を家に入れるのは多少は抵抗はありますが、やってみるとなかなか楽しくて、すでに5人のカウチサーファーをホストしてきました。
英語の学習機会に対する貢献は絶大で、一緒にいる時間が長いこともあり、否応にも話さなくてはいけないので、英語の使用頻度は劇的に増えます。
また、生活する上で必要な生の英語を使う機会が増えるのも、良い点と言えると思います。
今のところ変な事も起きていませんし、ややストレスを感じることもありますが、意外となんとかなるものですし、英語を使えること以上に色々な人に会えることが楽しいです。
ということで、私はカウチサーフィンのホストを1番オススメします。(結構人を選びそうですが、、)

最後に

以上が私が英語の学習機会を増やすためにやっている3つのことになります。
海外に来てみたけど、意外と英語を使う機会がない。というような方はぜひ上記のアプローチを試してみてください。
もちろん、これ以外にも発音や語彙を増やすための自宅学習なども併せてやらないと、思うような効果はでてこないと思いますので、上記の取り組みと併せて自宅学習も行うようにしましょう。