Hacktoberfest2018 に参加してみた

f:id:yoshitaku_jp:20181016001217p:plain

Hacktoberfestとは

hacktoberfest.digitalocean.com

OSS活動を促進するイベントです。Hacktoberfestに登録してから10月の間にパブリックリポジトリに対してプルリクエスト(PR)を5つ以上送ると,オリジナルTシャツがもらえます!

詳細な記事があるのでリンクを貼っておきます。

codezine.jp

dev.classmethod.jp

2018年は達成できた

f:id:yoshitaku_jp:20181016004400p:plain

流れ

1,2件目

このときはHacktoberfestを勘違いしていました…OSSリポジトリに送ったPRしかカウントされないと思っていました。Hacktoberfestに登録したあと、知り合いのリポジトリにPR出したらカウントされていました。ラッキー…

Yoshitaku jp/signup and login by yoshitaku-jp · Pull Request #26 · minmin0530/chat · GitHub

【UPDATE】index.js by yoshitaku-jp · Pull Request #27 · minmin0530/chat · GitHub

3件目

is:issue is:open label:HacktoberfestGithubを検索していたら、

github.com

こちらのリポジトリにたどり着きました。 書いてある英語も難しくなく、適度にGoogle翻訳をしながら理解し、さらにコードも読んでいると、割り切れる数字を探すテストコードを作っているみたいでした。

def test_for_25(quotient):
    """Divisibility test to check if the quotient is 
    a multiple of 25, without using the modulo operator.
    This can be done, by checking if the final digit is 
    one of 00, 25, 50, or 75"""
    last_two_digits = str(quotient)[-2:]
    if last_two_digits in ["00", "25", "50", "75"] or last_two_digits == "0":
        return True
    else:
        return False


# Test to check that the function behaves properly
for i in range(400):
    print("{} divisible by 25 {}".format(i, test_for_25(i)))

OSSを直すのはハードルが高いけど、算数ができればいいなら自分でもできると思い挑戦し、無事にマージしてもらえました。

github.com

4,5件目

3件目は運良くリポジトリを見つけられました。しかし、次に貢献できそうなリポジトリがなかなか見つかりませんでした。 しばらく調べていると、Hacktoberfest上で人気のあるリポジトリを紹介してくれていることに気がついたので、そこから探すことにしました。

f:id:yoshitaku_jp:20181016001554p:plain

ここに並べられているリポジトリは初心者やはじめての人を対象としている物が多く、README.mdに丁寧なPRの説明が書いてあるものが多いです。下のものは各国の翻訳ページまであります。リンク先は日本語ページです。

github.com

GitやGithubをどう動かしたらいいかわからない人は、このようなリポジトリでなれていくのもいいと思います。自分は2回分利用させてもらい、無事に5件達成となりました。

OSSの活動

HacktoberfestはOSS活動を普及させるワールドワイドでの活動ですが、日本でもOSS活動を普及させるコミュニティがあります。

oss-gate.github.io

以前、ビギナーとして参加しOSSのRedashにPRを出しました。 yoshitaku-jp.hatenablog.com

サポータとしても活動したいのですが、タイミングが合わず保留となっています。 Hacktoberfestを通じてPRに対する抵抗が全くなくなったので、ぜひとも貢献していきたいです。

まとめ

  • 初心者向けのリポジトリが用意されていて、心理的なハードルを下げることができた
  • 自分で貢献できるリポジトリを見つけ、PRを出せたのは貴重な経験となった
  • これからはもっとOSSに関わっていきたいと思う
  • Tシャツ楽しみ

Git・Githubに関する本

読みました。おすすめです。

わかばちゃんと学ぶ Git使い方入門〈GitHub、Bitbucket、SourceTree〉

わかばちゃんと学ぶ Git使い方入門〈GitHub、Bitbucket、SourceTree〉

GitHub実践入門 ~Pull Requestによる開発の変革 (WEB+DB PRESS plus)

GitHub実践入門 ~Pull Requestによる開発の変革 (WEB+DB PRESS plus)

Gitが、おもしろいほどわかる基本の使い方33

Gitが、おもしろいほどわかる基本の使い方33

AWS Lambdaで東京の時刻を簡単に取る

f:id:yoshitaku_jp:20181014121316j:plain

最初から余談

小ネタだけどメモ代わりに…

いろいろ教えてもらったのでアイキャッチ画像を練習がてら、こだわってみた。

タイトル含め、「人にわかりやすく伝えるには」と考えると、悩むことは多い…

あとKeynote使ってるときはマウスのほうがいい気がする。持ってないけど…

Magic Trackpad...うーん…

AWS Lambda内で時刻取得をしたらUTCが取れてしまった

東京リージョンだったので何も考えず東京の時刻が取れると思ったら、UTCが取れました。知らなかった…

書いたPythonプログラムの一部です。

keyword = 'yoshitaku*jp.hatenablog.com'
print('keyword is ' + keyword)
print('----------------------------------------------------')

now = datetime.datetime.now()
str_now = now.strftime('%Y-%m-%d_%H:%M:%S')
print('until is ' + str_now)
befor_1hour = now - datetime.timedelta(hours=1)
str_befor_1hour = befor_1hour.strftime('%Y-%m-%d_%H:%M:%S')
print('since is ' + str_befor_1hour)
print('----------------------------------------------------')

f:id:yoshitaku_jp:20181014112824p:plain

環境変数を設定すると東京の時刻が簡単に取れる

AWS Lambda上の環境変数で、KeyにTZValueAsia/Tokyoと入力すると…

f:id:yoshitaku_jp:20181014113026p:plain

無事に東京の時刻が取れました

※若干時刻がずれているのはキャプチャを取るタイミングの問題です。気にしないでください。

f:id:yoshitaku_jp:20181014113137p:plain

便利…簡単…

技術書典5に参加してきた!!

技術書典4に続き、技術書典5に参加してきました!

yoshitaku-jp.hatenablog.com

戦利品

今回の一番の目当ては、「現場で使える Django の教科書《実践編》」です。こちらは、前回のとき「現場で使える Django の教科書《基礎編》」と出会い、その続編が制作・販売される予定であることを聞きとても楽しみにしていました!

他にも、

yoshitaku-jp.hatenablog.com

で、話題にした「write-blog-every-week」Slackに入られている方々が出されるということで、PHPもGoもやったことないですが買ってみました!新しい出会いがあるのもいいこと!ありがとうございます!

<2018/10/11追記>
PHPの本を出されたこのすみさんのブログ記事です! www.konosumi.net <2018/10/11追記ここまで>

当日の様子

12時頃に到着し、30分程で中にはいれました。あまり物理本にこだわりがなく電子があるなら電子版でもいいやと思っていたので、ゆったりいきました。中は少し暑かったので、半袖Tシャツに脱ぎやすいパーカーとかが正解だったかも?長袖一枚は調整が難しかったです。

技術書典公式アプリ

これ便利ですね。けど、アプリ起動するのと1000円札出すのなら、1000円札出すほうが早かったという意見も見ました。確かに…。 ですが、あまり現金を持ち歩かないようになってきたので個人的には嬉しいシステムでした。後払いの通知も、翌日に届き無事に決済を済ませました。

個人的に感じた難点

この後払いシステムを採用するかはサークル参加者側の判断なんですね。これ知りませんでした。全サークル義務だと思ってた…。お財布に1万円札と3000円しか入ってなかったので、途中で「うおおおおおおおおおおおおおおおおおおおおお」となっていました。

まとめ

4に続き楽しめました!!会場も広くなり、サークルも多くなり、人も多くなり…すごいですね!!!この文化がまだまだ続いていってくれることを望みます。次こそはサークルで参加したいです!!

参加者の方、サークル参加者の方、運営の方お疲れ様でした!次回も参加させていただきます!

新しい弁当箱を買った

大学生のときにレポートやら卒業論文やらを書くために買ったMBAが、そろそろやばい気がしてきました。

MacBook Air (13-inch, Mid 2012)
プロセッサ 1.8 GHz Intel Core i5
メモリ 4 GB 1600 MHz DDR3

そして10月に入って新しく買ったPCはMac miniです。

Mac mini (Late 2014)
プロセッサ 2.6 GHz Intel Core i5
メモリ 8 GB 1600 MHz DD

これにした理由は、

  • 自宅だけで利用することが多い
  • モリモリMBPを買って自宅でバリバリ開発ができるわけではない

のでここに落ち着きました。

メルカリで5万円いってなかったので個人的にはOKです。MBAも引退させる予定ではないです。

転職してもっとバリバリ開発することになったら、モリモリMBP買ってみようと思います。

新しいMac mini出ないで!!!

バリバリモリモリ。

最近入った3つのSlack

9月10月になり、いろいろ環境を変えたいなと思っていました。

そこでいくつかのSlackに入って自分の意識と行動を変えてみようと思いました。

3つしかありませんが、だいたい入った時系列で並べています。

プログラミング自習室

オンラインサロン「プログラミング自習室」開設のおしらせ!|NZ MoyaSystem

プログラミング自習室は

  • 「なかなか自習の時間が取れない」と悩んでいるプログラマの方
  • 「プログラミングを勉強する仲間がほしい」と感じている初心者の方

を対象にしていて、自分は自習を継続していきたい気持ちと初心者経験者関係なしにプログラミングする仲間がほしいなと思って入りました。50人ほど集まり、現在は新規の入会を受け付けていません。主催者のお仕事が捌ききれなくなってしまうからのようです。

自習する内容を共有したり、わからない所があれば気軽に質問できていいと思います。しかし、ニッチな部分の質問だと回答できる方がいなくてまだ人数が少ない段階では難しいです。

最近は、何人かでプロダクトを作ってみようということになり、node.jsを使ったチャットアプリの開発をしています。

スピードはゆっくりですが、一人で作っている上では気づくことのできない、Gitのブランチの切り方や、コミットの単位など参考になることが多いです。逆に一つ一つ確認しながら・納得しながら進んでくれるので自分はすごく嬉しいです。

もう1つ2つぐらいプロジェクトがあると、並行で進めていけていいかなと思いますが、このSlackの目的が「プログラミング自習室」なので本質とずれるかなと思っています。

毎日覗くのが楽しいSlackです。

write-blog-every-week

kojirooooocks.hatenablog.com

id:kojirooooocks さんが作ってくださった週イチでブログ書くことをチェックし合うSlackです。1番目に入りました(自慢)

ブログの内容・質・量は一切問いません。週に1回以上ブログを更新することだけです。

それ以外のルールっぽいものは

  • 週に1記事かけなかったら、翌週は2記事
  • さらに書けなかったら、3記事
  • 4記事分溜まったら退会

ですが、そこまで強制力ないルールです笑 口コミで広まって現在19人も入っています。気軽に入ってきてほしいです。 ブログを書いていないと、特定の曜日にbotから煽られます。それを見たメンバーからも煽られます。気軽に入ってきてほしいです。

write-blog-every-weekのいいところ

最近いい流れが2つほどできていて、1つは id:kojirooooocksさんが、こちらの記事を公開したところ、Slack上で指摘がもらえていたことです。

kojirooooocks.hatenablog.com

中略

そして指摘いただいた内容の記事です。 kojirooooocks.hatenablog.com

指摘がもらえているのを横から見ていましたが、純粋にすごい!と思っていました。


もう一つのいい流れは、Slack内のメンバーからリアクションをもらえることです。

これは生の声が一番だと思うので、以上です笑

毎日覗くのが楽しいのと、ブログが書けていないときは覗きに行きたくないSlackです。

入江開発室

camp-fire.jp

これは10月に入り眺めています。まだ何もできていないの理由があって、自宅のPCを新しくしてセットアップに時間がかかっていたからです笑 いろいろプロジェクトがあり戸惑っていますが、とりあえずすべてのチャンネルに入って様子を見てみようと思います。 人も多いこともあってメッセージが流れるスピードも早いので、日中仕事している自分についていけるか不安です笑 テンプレ的な動き方があるとしたらどなたかに教えてほしいです笑

まとめ

  • いくつかのSlackに入った
  • 積極的に動いていきたい
  • 他にも入ったけど、積極的には動けていないのでまたそのときに

登壇の技術を勉強する会#1 に参加してきた!

登壇の技術を勉強する会 #1 に参加してきました

engineers.connpass.com

サブタイトルに「エンジニアの登壇を応援する会 登壇準備編」とあり、まだ登壇をしたことのない自分としては興味深いものとなりました。

今回のテーマは『過去にカンファレンスや勉強会に登壇してきた先人たちが、登壇テクニックを伝授する』です。 たくさんの#激つよエンジニアたちが、自らの登壇テクニックを語り尽くします。 普段は絶対に聞けないような面白い話がたくさん聞けますので是非ご参加ください╭( ・ㅂ・)و

謎の日本酒枠

参加枠が少し変わっているので触れておかなければいけない気がしました。結論から言うと、一般参加者枠と日本酒枠がありました。自由でいいなぁと思いました。ズラッと並んだ日本酒を参加費500円で飲み比べていいなんて贅沢すぎて、持ち込んでいただいた方に頭が上がりません。お酒呑むけど詳しくない自分にとっては、勉強になることがたくさんありました。皆さん思い思いの日本酒を持ってきていて、熱弁する様子は酒蔵の人と話しているような気分でした。

なぜか、勉強会当日に提供された日本酒についてまとめてあるレポートがあるので、詳細はこちら…

kawahara-ci.hatenablog.com

発表資料

プロットと笑い

The things to be careful when making slides

人見知りでコミュ障かつ口下手な激よわエンジニアが気づいたら登壇を重ねていた件

アウトプットを継続するためにやっている 10 のこと

スライドを武器に。

余談

やっぱり、感想ツイートを残しておくのいいですね。まとめるときに楽だ。これからも継続していこう。

感想

全体的にとても満足いく内容でした! 個人的には最後のスライドを武器に。が非常に良かったです。理由は、自分自身が学生時代に教え込まれたスライドの作り方について言語化されていたからです。

1スライド1メッセージとか

捨てる勇気とか

ストーリーについてとか

整列の話とか

プレゼンは、このあたりがちゃんとされていないと聞く耳ならぬ、見る目が保たないので大切だと思います。少なくとも自分は話が全く入ってこなくなってしまう。自分も気をつけたいところです。

自分に足りないと感じたところ

自分にないと感じたものについては、配色です。いつもテーマカラーをえいやっと決めて、あとは適当…違うと思ったら変えて…の繰り返しです。色についても大切に扱っていきたい。

あとは、プレゼンの内容となる技術テーマだなぁ。難しいことを発表しなきゃ満足してもらえないと思って、なかなか踏み出せないしなぁ。聞く側に回りすぎて、頭でっかちになっているのが原因かもしれないけど…

まとめ

  • 登壇の技術を勉強する会 #1 に参加した!
  • 自分に足りないことを気付けたいい会だった!
  • 日本酒は美味しい

第10回 Raspberry pi もくもく会 に参加してきた

都合が合わずに久々の参加となりました、Raspberry pi もくもく会

raspberry-pi-moku.connpass.com

最近触っていなかったこともあって、心機一転Raspberry Pi Model B+を購入して参加しました

久々にお会いする方も多く、楽しい会でした。

自分はrasbianのインストールで終わってしまいました。

途中うまくいかないタイミングが合ったのですが、原因はOSの書き込みが上手くいっていなくて、カーネルパニックを起こしていました。 ネットワークに繋がらないと嘆いていたのですが、原因は別のところにありました。 早めにモニターに繋いでいなかったら、終わるまでやっていたでしょう…

成果発表では、出せる成果もないのでみなさんの完成品をすごいなぁと眺めていました。


自分は当日何やりたかったかというと、

donkeycar というものの触りを作りたかったです。

www.sroboto.com

docs.donkeycar.com

機械学習させて、そのルートを自動走行する感じかな。 TAMIYA製の車の土台(カーシャーシ?)とかが必要なので費用が結構掛かりそう。

名古屋電子工作の会さんがQiitaにまとめてくださっているものを参考にちょこちょこと進めていきます

qiita.com

感謝です。

DevOps Hands-on vol.2 〜CI/CD 環境構築ハンズオン〜 に参加してきた!

f:id:yoshitaku_jp:20180920170925p:plain

DevOps Hands-on vol.2 〜CI/CD 環境構築ハンズオン〜 に参加してきました!

classmethod.connpass.com

DevOps Hands-onとは

クラスメソッド株式会社が主催する、DevOps の勉強会です。 参加者自身で AWS CodePipeline, AWS CodeBuild を使ったCI / CD パイプラインを構築し、継続的インテグレーション、継続的デリバリーのメリットを実際に体感して頂けるハンズオンとなっています。

今回のハンズオンでは、AWS CodePipeline, AWS CodeBuildを使って、デプロイをすることを学びました。 CI/CDは聞いたことあったし、CI/CDもどきのようなことはプライベート学習で実践していましたが、AWSの機能を使ってということなので興味があり参加してみました。

今回の内容です。

  1. ハンズオンで構築する構成の簡単な紹介
  2. サンプルアプリケーションのフォーク及びクローン
  3. ハンズオン用環境構築用の CloudFormation の実行
  4. 手動デプロイしてみる(講師が実演します)
  5. CodePipeline によるパイプラインの構築および自動デプロイの実行
  6. テストが失敗すると自動デプロイが止まるのを確認
  7. 再度正しいコードに戻して自動デプロイ

上記の流れでハンズオンが進んでいきました。

個人的によかったのは4. 手動デプロイしてみる(講師が実演します)です。講師の方が手動でデプロイすることで手作業のリスクや面倒さを丁寧に教えてくれます。この作業が自動化されたら楽だなぁなんて思いながら見ていました。

構成は画像のとおりです。

f:id:yoshitaku_jp:20180920170928p:plain
ハンズオンで扱うもの

ハンズオンでは設定値をポチポチと設定していきましたが、これだけでビルドからデプロイまでやってくれるなんて便利だなぁと思いました。

ハンズオンは資料も公開されているので、当日の雰囲気について。参加者も普段からAWSを触っている人が多めでした。クラスメソッドさんの社員さんも参加していて、ハンズオンが終わったあとの質疑応答では活発にやり取りしていました。個人的にはこれがすごく好印象で、みんなでワイワイ技術について検証していくっていう雰囲気が最高でした。講師の方の「個人的に気になってしまうので、やってみます」という発言はクスクスきました。デプロイの前に手動での承認ボタンを設置でき、承認ボタンの待ちが複数できたときはどうなるのかとか、複数のプッシュが来たときはどうなるのかとか、みんなで疑問を共有し、すぐ実行する。全員が参加者って言う感じ。またクラスメソッドさん主催で別のハンズオンがあればぜひとも参加してみたいと思いました。

ハンズオン資料はGitHubにて公開されているので、気になる方は自分の手で動かして見るのもいいと思います!自分のAWSでやっても1$かからないそうです。

github.com

まとめ - CI/CD 環境構築ハンズオン〜 に参加した - AWS CodePipelineとAWS CodeBuildを使うと簡単にデプロイすることができる - 自分でもCI/CD 環境構築を構築してみたい

第2回 モグモグDjango に参加してきた!

f:id:yoshitaku_jp:20180711100334p:plain

1週間ほど経ってしまいましたが…

第2回 モグモグDjangoに参加してきました!

mogumogu-django.connpass.com

もぐもぐしながらDjangoについてもくもくと作業をする会です!

1人で静かに開発に打ち込みたい,という方には,ガヤガヤしていて集中できないかもしれませんのでご了承下さい

とありますが、個人的には周りの参加者の人に相談しやすいので良い会だと思います!

会の始めに参加者同士で持ち寄ったお菓子などを広げ、自己紹介や今日やることを発表するアイスブレイクタイムも好きです。

主催者の中に、現場で使えるDjangoの教科書を執筆したakiyokoさんがいらっしゃり、気さくに質問にも答えてくださいます。

twitter.com

自分はDjango-allauthの使い方について質問しまくっていました。

Installation — django-allauth 0.32.0 documentation

技術書典5では、応用編を出す予定のようですので、気になる人は行ってみましょう。

この日は集中できる環境と、気軽に質問できたこともあり、問題が一つ解決できて帰ることができました!

第3回 モグモグDjangoがありましたら、また参加したいと思います!

コードの修正がめんどくさいなら、autopep8で自動修正

f:id:yoshitaku_jp:20180728144033p:plain

前回PythonのコードがPEP8に準拠しているか確認するツールをブログに書きました!

yoshitaku-jp.hatenablog.com

準拠してないところがわかったのはいいんですけど、修正する箇所が沢山あったら直すのめんどくさいなぁなんて思います。気をつけるのはもちろんですが、だめなところがあったなら自動で直しておいて欲しいです。

と思ったら、これまた便利なツールが…

github.com

さっそくためしてみました。

インストール

pip install autopep8

pycodestyleが必要なので入ってなかったら、こちらもインストール

pip install pycodestyle

使う

autopep8 --in-place <filename>

結果

f:id:yoshitaku_jp:20180915132902p:plain
空白が適切に扱われる

f:id:yoshitaku_jp:20180915132639p:plain
Trueも削除される

最高!!

いっぺんにたくさんのファイルを修正するとき

たくさんのファイルをいっぺんに修正したいなと調べていたら、すでにワンライナーでやっているかたがいらっしゃいました

http://momijiame.tumblr.com/post/42168625947/python-のソースコードを自動で-pep8-に準拠させるツール-autopep8
momijiame.tumblr.com

今はpep8ではなく、pycodestyleを使うので先頭だけ修正して pycodestyle <dirctory> | cut -d: -f1 | sort | uniq | xargs autopep8 -i

pycodestyle . | cut -d: -f1 | sort | uniq | xargs autopep8 -i

ありがたい

まとめ

  • pycodestyleとautopep8の力を借りて、適切なプログラムコードを書こう
  • testを回したときに修正されるようにするのもやりたい