ツナワタリマイライフ

日常ネタから技術ネタ、音楽ネタまで何でも書きます。

はてなブログの投稿予告tweetをするスクリプトを書いた

#はじめに はてなブログを書いているひとで、投稿予約を利用して同じ時間に投稿するひとも多いと思う。(根拠はない)

そうすると明日、明後日にどんな記事が投稿されるか予告のツイートをしたくなる。

今回ははてなブログAPItwitterAPIを利用し、Pythonで投稿するスクリプトを書いた。

github.com

このスクリプトをcronから蹴ってあげれば、好きな曜日、日時に投稿予告ツイートをすることができる。

TwitterAPIを利用するまで

開発者用ページにいって、4つのキーを取得する必要があります。

apps.twitter.com

twitter_tokens.pyに定義される4つのキーを入力してください。

ここでは詳細を省きます。電話番号認証が必須でした。

はてなAPIを使うためには

BASIC認証 でいけます。設定→詳細設定→AtomPubにルートエンドポイントとAPIキーが書かれています。

hatena_auth.pyに記入してください。これではてなブログへの投稿や記事の取得ができます。

hatena_notice.py

メインのプログラムです。83step。もっと短くできたかもしれませんね。軽く解説します。

def get_drafts():
    drafts = []
    global URL
    
    for i in range(REPEAT):
        res = session.get(URL,auth=(USER,APIKEY))
        soup = BeautifulSoup(res.text, "html.parser")
        URL = soup.find("link", rel="next").get('href')

        article = soup.find("feed").find_all("entry")
        for art in article:
            isdraft = art.find("app:control").find("app:draft").text
            if isdraft == 'yes':
                title = art.find("title").text
                updated = art.find("updated").text
                draft=[title,updated]
                drafts.append(draft)
    return drafts

記事の中からdraft状態のものを取得します。実際にはてなAPIを投げている部分もここです。REPEAT変数で指定された回数、nextページに繰り返し取得します。だいたい10ページもとれば、よほどストックがあるひとじゃない限り大丈夫だと思います。

取得したXMLをbeautiful soupを使って欲しいところをとっています。下書きかどうかをisdraftで判定して、下書きのもののtitleとupdatedを取得して返却する関数です。

def get_reserve(drafts):
    reserve = []
    now = datetime.datetime.now()

    for draft in drafts:
        date = datetime.datetime.strptime(draft[1],"%Y-%m-%dT%H:%M:%S+09:00")
        if now < date:
            #convert string to datetime
            draft[1] = date
            reserve.append(draft)
    return reserve

次に下書きの記事の中から、更新予約をしているもの、すなわちupdateが今より未来の日付のものを抽出します。datetimeとstrignの変換をここで学びました。ここではstringのtitleと、日付はdatetimeで返しています。

def tweet_extract(reserve):
    text = "update notice:"
    for art in reserve:
        date = art[1].strftime('%m/%d')
        
        if len(text) + len(art[0]) > 140:
            break
        text += "%s:%s" % (date,art[0])
    return text

最後につぶやくための文字列を作成しています。140文字以上になってはいけないので、足しあわせた結果が140文字を超える場合は加算せずloopから抜けます。

def tweet(text):
    URL = 'https://api.twitter.com/1.1/statuses/update.json'

    payload = {'status': text}
    req = twitter.post(URL, params = payload)

    return req.status_code

ここは単にツイートしているところですね。楽です。

tweepyというライブラリもあるようですが、今回はOAuth認証部分だけライブラリを用いて、requestモジュールで投稿しています。

おわりに

Pythonを最近は意識的に触っています。だいぶ慣れてきました。テストコードはモックの作り方がわかってないのではてなAPIを実行する部分やツイートする部分がかけていません。

一応誰でも使えるよう汎用的にして(個別の設定値は外出しにして)必要なライブラリを書いてgithubに公開できたので以前より進歩です!(以前はシェルとrubyのゴミみたいなスクリプト書いてた)

Beatifulsoupやtwitter-apiははやく使いこなせるようになってスクレイピングで遊びたいな。

消極性ハック、シャイハックしよう!「消極性デザイン宣言」を読んだ

はじめに

シャイハックという言葉はご存知だろうか。

消極性デザイン宣言 ―消極的な人よ、声を上げよ。……いや、上げなくてよい。

消極性デザイン宣言 ―消極的な人よ、声を上げよ。……いや、上げなくてよい。

この本、人間の中の"消極性"に着目し、なぜ消極性になるのか、その不安はどこから来るのか。そしてその消極性をどうハックするのか、デザイン(仕組み)でカバーできないのか?積極性と消極性の悲しいギャップを説明しつつ、それをデザインで埋める方向を模索する、というのが大筋です。

著者は消極性研究会。いいな。おれも入りたい。

www.sigshy.org

シャイ子とレイ子の設定も乗ってるw 小野ほりでいさんの文章じゃないんですね。

消極性研究ができるゼミが載ってる。僕最近気づいたんですけど文系分野の学問のほうが好きですわ。。。

さて本書は著者5人、5章に分かれているので、1章ずつ振り返りと感想を述べていきます。

「やめて」とあなたに言えなくて 1対1もしくは1対少数のコミュニケーション [栗原一貫]

まず最初に人間を大きく3種類に分類します。

  • 「社会」が好きな人
  • 「人」が好きな人
  • 「自分」が好きな人

僕は「人」が好きだと思ったんですが、栗原さんの定義によると、コミュニケーション意識は人数が多いほど下がってしまう傾向があるので「社会」派のようです。とはいえ、これは完全に排他ではないことは注意されていますし、僕も「人」派の側面をあると思います。

「人」派に分類される、複数人でのコミュニケーションが苦手なひとに対して、技術で解決する様々な発明が紹介されます。

声の大きい「積極派」をできるだけ楽に黙らせる「スピーチジャマー」

イグノーベル賞インタビューLaugh and Think【第3回】おしゃべりな人を黙らせる! スピーチジャマーの発明:津田塾大・栗原氏 | 製造業エンジニアのためのモノづくり情報サイト「Tech Note」

タイトルにある通り、この章の主題は「やめて」とあなたに言えないひとに、いかに心理的ハードルや、相手に激怒される可能性を徹底的に下げつつも、「やめて」というメッセージを伝えるための発明を紹介してくれます。

実用的なところまで達成するかということよりも、消極性心理に徹底的に向き合ってデザインしている部分が見事で、それぞれのエッセンスは必ず別の場面で役に立つはずです。

「モノ」のデザインを通して、消極性のひとが積極性のひとにメッセージを伝える方法を模索する章ですね。

考えすぎを考えすぎよう 人が集まるイベントなどにおけるコミュニケーション [西田健志]

次は「積極性勢」(ウェーイ族と揶揄していますが)が消極性勢に「大丈夫大丈夫!みんな楽しめるゲームがあるから!」と恐怖のジェスチャーゲームを用意していて消極性勢は絶望する、両者の心理的ギャップに着目することを発端に、学会でのコミュニケーションを促進するツールを作っています。

学会でのコミュニケーションにおいても、「あの人と話したい」という気持ちはあれど、それを直接伝えるのは憚られる。かと言ってシステムで「誰と隣になりたいですか?」と入力させたとしても、会がはじまってしまえばそう希望したことが相手に伝わってしまい無意味。

そこで「誰と誰が隣になってほしいか?」(自分も他人も入力可能)とすることで、自分の希望が他者にバレることなく、消極性のひとが積極的に思いをぶつけることができるシステムを実現しています。これはまさに消極性をハックしてると言える顕著な例かと思います。

シャイなひとをどうにかして奥底の積極性を出させるか、そんなシャイハックは勉強会といった金銭的対価のない自主的参加の場で特に役に立つように思いました。

共創の輪は「自分勝手」で広がる 複数人でのコラボレーション [濱崎雅弘]

旧来、コミュニケーション・コラボレーションには物理的・地理的制約があり、外交力のある「積極性勢」に圧倒的有利だった。しかしインターネットの登場でいつでも誰でもどこでもコラボレーションが可能になり、それはニコニコ動画初音ミクを周辺に巻き起こったコラボレーション文化に現れている。

もともとコラボレーションといえば調整が必須であり、これは消極性勢にとっては距離を置きたくなる内容だが、ニコニコ界隈では横に広がるN字創作によって、相手へリスペクトとリファーをしつつ、別のクリエイティビティでコラボレーションすることで広がったという考察がされている。(歌ってみたに対して踊ってみた、など)

この例を受け、内向的な消極的なひとたちの知をいかに集団で引っ張り出すかの一般化にも挑戦しています。各自が各自にとって1番全力を出しやすい状況としては、各々がまったく違うものを担当し、そこにできるだけ調整が必要ないという環境がある。この環境をいかにデザインするかがシャイハックで重要かと思います。

コラボレーションが必要な場面は普段の仕事でもたくさんありますよね。僕は以前技術勉強会を主催したときにこのあたりをとことん考え抜いた経験があるので内容に強く惹かれました。「あいつはすげーやつ、あいつもすげーやつ、みんなでやればめっちゃすげーことができる」でもそれぞれのあいつは「自分からそこまでやる気にはならない」現状があるわけで。そこを環境でハックできればいいなぁ。

スキル向上に消極的なユーザのためのゲームシステム [簗瀬洋平]

ここからは消極性のハックの中でも「モチベーションのハック」ここまでは「コミュニケーションのハックでした。」

常に自分が神プレイしていると錯覚できるゲームを開発し、いかにゲームに対するモチベーションをハックできるかを検証し、モチベーションはコントロールできること、そしてモチベーションはコントロールされうることを示しています。

この章と次の章で重要なことは、モチベーションが低いことは悪いことではない、ということですよね。モチベーションが低いことは自分自身の「気力」がない、精神性に訴えかけるのはあまりにマッチョな考え、そうじゃない、うちなるモチベーションをいかに自然に引き出すか、それをデザインで解決しようよって考えはとても同意します。

みんなで楽しく、楽にやる気を出す、そんなデザインを考えていきたいですね。

モチベーションのインタラクションデザイン [渡邉恵太]

こちらも「モノ」のデザインには消極性の観点が重要であるということを解いています。

掃除機って、使うときのことを考えがちですが、実は使ってないときのことが重要でないですか?使ってないときに「使おうとしやすさ」=アプローチャビリティが必要であり、それに付随してすぐに出しやすいためのリビングに置いておいても気にならない「美しさ」というのも価値になりつつある。

いかに「ついでに」「自然に」「生活に融ける」ように使われるようにデザインするためには、人間の奥底の消極性に注目するしか答えはありません。

自分自身のモチベーションをコントロールするときに、部屋のものをどう配置するか?ということは誰しも考えるテーマですよね。自分の中の「めんどくさい」をハックし、どうやったらやるようになるか?を考えていきたい。

私は消極的?積極的?

外交(コミュニケーション)的な観点で言えば僕は積極性の人間に分類されると思います。とはいえその力が発揮できるのも6人程度までの集団ぐらいまでで、ある閾値を超える、もしくは自分より積極的なひとがいれば黙ってしまうし、誰もいなければ自分が積極的になろうとする、この性質は確実に「消極性」の人間の考えなんですねw わかりづらいですが、本書を読めばその意味がわかると思います。

そんなある面では積極的だが、実は消極的な私も、消極的なひとのことをわかりたいと思っています。消極的と積極的を結べるひとであり、言葉を使い、仕組みをデザインできる人間でありたい。消極性に、僕も着目していきます。

おわりに

自分自身、普段生活していて消極的なひとは多いと思っています。仕事でも、「君はそんなにすごいのになんでみんなにアピールしないんだい?」と思うことが多々あります。逆にできる人ほど「もっと組織のために共有してくれ」とも思っています。(このあたりは今着目しているチームビルディングに関係する部分です)そしてこういう問題に必要な手段としてシャイハックがあったことを学べたのは大きいです。

消極的なあなたも、「なんでそんなに消極的なの?」と思うひとと仕事をしている積極的なあなたも、ぜひ読んでみてください。人間の消極性にハックすることが、消極性へのユニバーサルデザインがいかにこれからの社会で必要で大切かがわかると思います。

レガシーな静的Webサイトを一新!その⑤ httpsサイトで承認されてないscriptの警告が出てしまう

はじめに

12月頭に、趣味の音楽プロジェクトのページをFC2からAWS-S3へ移行。独自ドメインを取得し、CircleCIと連携させました。

take-she12.hatenablog.com

take-she12.hatenablog.com

take-she12.hatenablog.com

さらにhttps対応したのですが。。。

take-she12.hatenablog.com

おぉん??

f:id:take_she12:20161227145019p:plain:w500

証明書は正しいが。。。

f:id:take_she12:20161227145122p:plain:w500

最初にサイトに行くとjava scriptが動かず、ヘッダとフッタが読み込まれませんでした。

f:id:take_she12:20161227145156p:plain:w500

1つのwarningがjquerygoogleのCDNに取りに行っているのですが、このプロトコルがhttpなのがよくないようです。

https通信下でjavascriptが動かない場合の対処法

修正しましたが、local環境ではhttps接続できないこと、AWS CloudFrontのキャッシュが24h効いているのですぐに確認できないのが難点。

remove http protocol for google CDN · takeshe12/toketenakunaru@204b3b1 · GitHub

もう1件、何やらエラーが。

Uncaught DOMException: Failed to read the 'contentDocument' property from 'HTMLIFrameElement': Blocked a frame with origin "https://toketenakunaru.com" from accessing a cross-origin frame.
    at reflexIF (chrome-extension://oingodpdjohhkelnginmkagmkbplgema/content.js:1:8293)
    at reLoad (chrome-extension://oingodpdjohhkelnginmkagmkbplgema/content.js:1:7378)
    at WeblioExtensions.OnLoadHandler (chrome-extension://oingodpdjohhkelnginmkagmkbplgema/content.js:1:1605)

調べましたが、chrome特有のエラーのようです。safariで確認してみましたが、safariだとjava scriptを動かすこともできず、開発メニューを出してもエラー内容を確認する方法がわからず。

その後

とりあえず無事java scriptが読み込まれ、メニューが表示されるようになりました。上の例外は消えてませんが。。。

f:id:take_she12:20161227231115p:plain:w500

おわりに

ただのread onlyサイトにここまでしてhttps対応した意味があったかどうかは置いておいて、無料で簡単にhttpsサイトが作れるんですね。AWSすごい。

これからもhtmlまわり経験ないけど頑張って触っていきますっていうのと、肝心のコンテンツ(楽曲制作)を頑張ります。。。

レガシーな静的Webサイトを一新!その④ AWS CloudFrontとCertificate Managerでhttps対応する

はじめに

12月頭に、趣味の音楽プロジェクトのページをFC2からAWS-S3へ移行。独自ドメインを取得し、CircleCIと連携させました。

take-she12.hatenablog.com

take-she12.hatenablog.com

take-she12.hatenablog.com

googlehttps対応してないサイトはページランク下げる*1と言っているので、https対応します。もちろん、勉強のためです。

SEO(ランキング上位にするために)SSL証明書を導入するって流れもなんだかなぁという気もするし、別に静的サイトでREAD Onlyなサイトを暗号化したところで、という気もしますが、世界のデフォルトはhttpsに向かおうとしているので流れに乗っておきます。

ちなみに各所でめちゃくちゃ苦戦しました

CloudFront

AWS CloudFrontはクラウドのフロントに位置して、redirectやページキャッシュの面倒を見てくれるいいヤツです。コンテンツ配信高速化のためにあれやこれややってくれるみたいです。

今回はhttpからhttpsのリダイレクトや、ページキャッシュのため(キャッシュしてくれるとS3の利用料金も下がるわけですね)に導入したいと思います。

CloudFrontページへGO

f:id:take_she12:20161226155342p:plain:w500

WebでGetStarted

f:id:take_she12:20161226155345p:plain:w500

ドメインはS3のバケットから選択

f:id:take_she12:20161226155348p:plain:w500

Redirect Backet Accessをyesに、Identifyも新規に作成、commentにdomain名を入れ、access policyをupdate

f:id:take_she12:20161226155352p:plain:w500

Redirect http to httpsを選択

f:id:take_she12:20161226155355p:plain:w500

あとはデフォルトのまま。cacheのTTLは24hのようですね。

f:id:take_she12:20161226155404p:plain:w500

distributionがprogressからdeployedになるまで15分ほど待ちましょう。

f:id:take_she12:20161226160625p:plain

idをクリックして表示されるdomainにアクセスしてもaccess denyとでます。

このドメイン名でアクセスできるはずなんですガー。。。とりあえず先に進みます。

参考:AWS再入門 Amazon CloudFront編 | Developers.IO

Route53

次にcloud front経由でS3のパケットにアクセスさせてやるため、Aレコードを変更します。

これまではhttp://toketenakunaru.com → S3のドメイン だったんですが、このS3のドメインをcloud frontのドメイン名に変更してあげます。

そうするとhttps://toketenakunaru.comにアクセスできた。なぜかよくわからない。

ただ、証明書がcloudfrontのものなので証明書エラーはでます。

f:id:take_she12:20161226182320p:plain:w500

SNSとSES

さて、Certificate Managerで証明書を取得するためには自分のドメインのメールアドレスで受信できなければなりません。

無料の証明書とはいえ、メールアドレスで認証するのですね。

まず、プッシュ通知サービスのSESの設定です。ここで、リージョンはバージニア北部にしておくのを推奨します。北オレゴンだとMXレコードが登録されなかったんですよね。。。

CreateTopicを選択

f:id:take_she12:20161226182558p:plain

適当なtopi nameをいれます

f:id:take_she12:20161226182616p:plain

転送したいメールアドレスをいれます。

ちなみに後からこれはリージョンを変更して作り直しました。。。

f:id:take_she12:20161226182626p:plain

SESでドメイン作成

f:id:take_she12:20161226182947p:plain

TXTレコード、CNAMEレコード、MXレコードが生成されるので、Use route 53を選択すればきれいにroute 53に登録してもらえます。

そのあとはメールを受信したときのruleを設定。

Emeil Receiving→rule sets→create new rule sets

f:id:take_she12:20161226183218p:plain:w500

メールで認証します。

f:id:take_she12:20161226183224p:plain:w500

新しくアクションを作ります。先ほど作ったSNSのものを指定。

f:id:take_she12:20161226183231p:plain:w500

適当なルール名とデフォルトのルールでokです。

f:id:take_she12:20161226183244p:plain:w500

admin@<your-domein>へメールを送信してみてください。json形式でくるのでわけがわからないと思いますが、とりあえず届けばokです。

参考:無償SSLのCertificate Manager、S3、Cloud Frontで、独自ドメインの静的HTTPSサイトを作る - Qiita

Certificate Manager

さてついに証明書発行です。ここは一番簡単です。

証明書にドメイン名を追加。

f:id:take_she12:20161226183638p:plain:w500

リクエストの送信。このとき以下のアドレスに送られるようです。SESでの転送設定はこのアドレスである必要があります。

admin@、administrator@、hostmaster@、webmaster@、および postmaster@

参考:よくある質問 - AWS Certificate Manager(簡単に SSL/TLS 証明書を作成、管理、配置) | AWS

f:id:take_she12:20161226183644p:plain:w500

ちなみにメールが死ぬほど読みづらいんですが、approvで検索ひっかけてください。そのあとhttp:..ではじまるリンクがあります。¥r¥nandの前までをコピペして承認用アドレスに飛んでください。

f:id:take_she12:20161226183659p:plain:w500

完了すると以下の表示になります。

f:id:take_she12:20161226183714p:plain:w500

再度CloudFront

domainの編集でcustom SSL certificationを選択。certificate managerで作ったものが選択可能になっています。

f:id:take_she12:20161226183717p:plain:w500

ただ少し時間がかかるようで、しばらくはcloudfrontの証明書が表示されます。

おわりに

静的webサイトをAWS S3で公開し、cloud frontを使うことで24時間キャッシュ&無料のSSL証明書を利用してhttps化を実現しました。AWSすごい!

AWSサービス同士は連携がシームレスでとても良いですね。

ちなみにCDP(Cloud Design Pattern)だとCache Distributionパターンなんですね。

http://aws.clouddesignpattern.org/index.php/CDP:Cache_Distributionパターン

参考: [ACM] AWS Certificate Manager 無料のサーバ証明書でCloudFrontをHTTPS化してみた | Developers.IO Amazon S3でSSL対応の静的ウェブサイトを公開する | マジメナラボ - majimena Inc. S3+CloudFront+ACM(AWS Certificate Manager)でHTTPS静的サイトを作ってみた - Qiita

*1:過剰表現

来年からどうしていくかを考えた 目標の呪いからの解放

はじめに

2016年をざっくり振り返りました。

take-she12.hatenablog.com

普段からslackで適当な雑談をしている同期とお互いの振り返りと今後について話す時間があって、私のことについても話しました。その内容が良いものだったのでブログに起こします。

対談形式で!同期氏をTとします。ゴリラのアイコン探してこようかな

振り返りと今後

T「2017年どうする?2016年はやってみたいと思ったことは試して、ある程度蓄積ができてきた次は方向性を決めたいって風に感じたけど。」

僕「まさにその通り。やりたいことを目標として立てて、なんでもやってみて、やれなかったこと、やれたことそれぞれあった。興味が多すぎて、選択と集中をしていきたいと思ってる。」

take-she12.hatenablog.com

僕「やっぱり目標でいえば達成できたものだったり、自分が自然と続けることができたものだけどやっていくっていうのが精神衛生上いいのかな?」

T「どうだろうね。仕事にするなら成功できたものを続けたほうがいいだろうけど、仕事外のことだと、達成できなくてもやりたいことって自分の根源的なもののようで、簡単に捨てたくない気する。」

僕「確かにそれもそうだね。達成できない、ってなると落ち込んじゃうから、落ち込まないようにうまく自分を騙して軌道修正のチャンスと捉えればいいんだけど。」

"落ち込む"ことへの肯定

T「落ち込みたくないの?俺は落ち込むの肯定派(笑)」

僕「落ち込みたくないね。目標を立てて、実行して、できなかったら原因を分析して、再度やるっていうプロセスを取ると思うけど、できなかったら、の時点で落ち込んで次にできなくなっちゃう。目標を立てることやそれを成し遂げる精神力みたいなのが足りないと気づいた。そのへん、そのまま自分にインストールできないので、うまく自分を騙したいなと思ってる。」

T「うまくいかなかったら落ち込むの当たり前だし、落ち込んでる中でしか見えてこないものもある。落ち込みから回復したときってかなり面白いものが見えてると思うんだよね。」

僕「劇的に落ち込んで劇的に回復したみたいな経験がないのかもしれない。回復するときはじわりじわりと回復するって感じ。」

T「それは落ち込んでないのでは?(笑)あの頃*1が1番落ち込んでたんじゃないの?」

僕「どっちの挫折も落ち込んだと思うけど、そのあとはたんたんと回復したね。」

T「落ち込みに目を向けず忘れようとしてるのかもね。俺は目を向けちゃう人間だw」

僕「目は向けないね。ただ、その過程で嫌でも向き合ってるわけで、終わったあと向き合わないにしても、さっき言ってた回復後の"面白いものが見えて来る"はあると思う。」

T「答えを見出せてるのかもね。真剣にやって、うまくいかなくて落ち込むけど、うまくいかないものをやってみて自分の得意なものを自覚しつつある。」

僕「落ち込む対象と向き合ってるってことは一緒だから、肯定的に捉えてるか否定的に捉えてるかの違いだけかw」

T「肯定的っていうのは落ち込むことから逃げないっていうだけで、落ち込まないようにすることではないよ。」

僕「だとすれば肯定的に見てるのか。」

T「俺は落ち込みそうでも挑戦するよ。さっきの話だと落ち込みそうなことは避けるって言うから違うのかと思ったけど。落ち込みそうなことをやらずに軌道修正するというか。」

僕「うーんまだ言葉にできてない。。。」

目標達成できなかったときの落ち込み

僕「最初 に出てきた"落ち込みたくない"はかなりスコープが狭い、かつ、そんなに落ち込んでない。『あー、また今年もできなかったよー』みたいなレベル。(笑)」

T「それは落ち込んでるというよりは興味がなかったって感じだね。」

僕「落ち込むことを避けるとか肯定否定というより、興味があるものに対して自分が何をやるかの選別が大事なのかな。やった結果、『自分は興味なかったんだ!』って思うんじゃなくて『できなかった。。。』って思ってるような。」

T「じゃあ興味がなかったわけじゃなくて、いつかやりたかったけど、って感じなんだ。」

僕「そういうものをどう扱うか。目標の呪いですね。」

T「呪いwww」

目標の呪い

T「その目標意味あるの?目標に縛られて無駄なことしてない?みたいな。」

僕「そうそう。だいぶ前から考えてるんだけど全然解決しない。もう目標立てるのやめたほうがいいのか?ぐらい思ってる。(笑)」

T「目標は達成するものじゃなくて、自分の方針や心理を振り返るきっかけだと思ってる。」

僕「あ〜〜〜」

T「これやりたい、あれやりたいっていろいろ出てくるじゃん。会社って集団だと、ルールとしての目標が必要になってくる。それがないとみんなむちゃくちゃにやっちゃうから。」

僕「確かに集団の目標には意味があるね。個人の目標はどうなんだろう。達成したいかどうか、達成しなきゃいけないかどうかも自分で決めるから、そのへんでハマっちゃってる。」

T「自由だと思う。俺は目標達成はしなくていいと思ってる。」

僕「手段が目的になってるみたいな話か。『目的を達成することが目的と思ってた?残念!目的は自分がやりたいことを見つけたり、やったりするための一時的な指標にすぎなくて、達成したかどうかは問題じゃないの。達成してもしなくても次への方向を定めることが目的なの!』ってことなのかな???」

T「そうそう。人間はだいたい60%ぐらいで停滞するんだよ。だから150%を目標にすることで初めて90%ぐらい達成できると思う。だから、個人の目標は150%ぐらいたてて、結果的にできることが増えればいいじゃんって思ってる。」

僕「目標を利用してやれ、ぐらいでいようと思うわ。これで目標達成できなくても落ち込まない!解決!」

T「wwwいいのかwww」

僕「>>>ブログ化します<<<]

2017年どうしていくか

T「それで2017年どうするよ?どうしようかっていう部分は全然考えてないのでは」

僕「目標の呪いがとけてだいぶ満足感を得ていた(笑)あんまり挑戦的な何かは浮かんでないんだよなぁ。

  • ソフトウェアエンジニアリング<<<チームビルディング
  • カレー
  • 言葉を届けるひとになりたい

ぐらいかなぁ」

T「どれも大事な話だね。チームビルディング≒調整だし」

僕「好きなくとも2016年度下期は業務でリーダーやれるので、そこでチームビルディングいろいろ挑戦しようと思ってる。あと、チーム内ももちろんだけど、大きいサービスの仕組みを変えるプロジェクトだから、開発、検証、部門が違う開発と関係者が多いプロジェクトだから、そのへんも新しい経験としてわりと前向き。

T「調整作業を肯定的に捉えられるのはすごいな」

僕「技術的には当たり前だけど、それをひとにやらせる、浸透させるのは難しいと感じてるので、そこに挑みたい。言葉を届ける、のくだりも関係してる。」

おわりに

slackでつらつら話した内容を清書しただけの記事ですが、わりといいこと話してると思いました。(結構時間かかりました。)具体的に来年どうするかは、例年通り、(利用するための)目標をあげようと思います。それは別記事で。

お付き合いいただいた同期のT氏、本当にありがとう!

*1:今年した2つの挫折のうちの1つで、社内資格に落ちたこと。自分が優れている点をアピールする必要があり、かなり苦戦した

アジャイルレトロスペクティブを読んでチームの振り返りを考える

はじめに

最近はチームビルディングに興味があって実務でいろいろやりつつ考えています。チームでも週1で振り返りはしようとしているんですが、何がベストなのかよくわかっておらず、この本を読んでみました。

アジャイルレトロスペクティブズ 強いチームを育てる「ふりかえり」の手引き

アジャイルレトロスペクティブズ 強いチームを育てる「ふりかえり」の手引き

レトロスペクティブ、日本語訳だと「振り返り」がしっくりくるそう。

アジャイルレトロスペクティブ

振り返りに関する教科書なので、どのプロジェクトでも使えるだろう。おそらくどんなプロジェクトでもマイルストーンがあり、それをクリアしたあとに振り返りはやっているのではないだるか。本書はその具体的なテクニックをたくさん紹介してくれている。

アジャイルレトロスペクティブは以下の基本ルールがある。

  1. 場を設定する
  2. データを収集する
  3. イデアを出す
  4. 何をすべきかを決定する
  5. レトロスペクティブを終了する

単に振り返りしましょう、良いところ悪いところはどこですか、とやるのではなく、明に場を設定し、評価するためのデータを収集し、そこからアイデアを出して、次のアクションを決定する。至極当然に思えるが、意外といきなり3番目あるいは4番目からやろうとしていないだろうか?

その他にも「チェックインする」というテクニックがあった振り返りをする上での意気込みを一言しゃべってもらう、1度発言することで蚊帳の外にならないということだ。なるほどと思った。このような実際に使えるテクニックがたくさん乗っている。

自分のチームでは

今はリーダーをやっていて、まさにこの本の対象読者なわけで手に取ったが、いまいち距離が遠い気がした。その理由は、チームの人数が少ないのでコミュニケーションエラーが表面化されていないということ。もう1つは最終ゴールが(いろいろな外部的要因による)不確定のまま進んでいるのでゴールを設定しづらいこと。

とはいえ、やったことに対してどうだったか?の振り返りはできるはずで、「データの収集」ができるレベルに達していないということになります。全員の作業状況は社内のGitlabに全部あげてもらうようにしていますが、進んだか進んでないか、遅れてるか遅れてないかの判断がつく状態になっていないので、まずはそれを改善します。

そしてこれはチームでやるんじゃなく、まずは自分1人でやってみようと思います。特に感情にアプローチすることって面白いですね。どう嫌だったか、どうストレスだったかにフォーカスする。従来の「目的に達成しなかった理由はなぜか?」をちまちま詰めるのではない点が、とても良い。

本書のエッセンスってチーム内の心の奥底をいかに抵抗なく引き出せるか、だと思います。それってチームでやっていく上でとても難しいところを言語化している。

1度読みでは響かないところも多かったけれど、また自分で実践したあとに読み返したいと思います。

おわりに

振り返りとチームビルディングは切っても切れません。毎週の振り返り会(場の設定はできてます!)では本書に書かれてる内容を少しずつ実践していきます。

軽く検索してみたんですが、実践例すばらしいですね。弱い子と自称してますが、チームに入って間もない立場でやってのけたんだからすごいです。

www.slideshare.net

まずは自分1人でやってみることが大事ですね。真似します。

enk.hatenablog.com

2016年目標振り返りと今後を考える

はじめに

2016年、終わりに近づいてますね。目標振り返りをしておきましょう。

take-she12.hatenablog.com

目標振り返り

1. 引っ越し

8月目標で、それまでは一人暮らしシミュレーションをしてお金のやりくりをしていきます。寮が安いのは間違いないんだけど、実家か寮でしか暮らしたことがないので、自分のお金で住むという経験をしてみたい。引っ越したら遊びにきてねー!

8月に無事達成。かなり満足いく家に住めてます。わずか2日で決めましたし、やればできるじゃんという感じですね。本当寮出てよかった。満足◎

2. 年に4回登山する

山は1000m超えのものにする。初回は1月。まぁせっかく靴も買ったので4回ぐらい登らないとなと。各シーズン1回ずつでちょうど良いなと。

天候の関係で3回になってしまいました。ただ、登山仲間が増えたので、これからは回数にこだわらず、、、とはいえ年4くらいの目安があったほうがモチベーションになるかもしれない。これからも年4回ぐらいは登山したいな。というわけで達成はできなかったものの、個人的には満足◯

3. 会社外で1円収入を得る

これは今アプリやサービスを作ろうとしていて、何でもいいので1円でも売り上げをあげること。今年できなかったので、絶対叶えたいです。 一応amazonアフェリエイトで少し稼げたんですが、これは達成失敗でしょうね。×

そもそも、収入を得ることは、実は目的なようで、結果なのかもしれません。目標としては不適切なような気すらしてきました。

多分ですが、情熱を持って続けられることが誰かのためになって、それがお金に変わる事もあるんでしょうし、これについては目標先行、つまり収入を得ることが先で2年間成果はおろか具体的な行動ができていないので取り下げます。

4. aikoのカブトムシをピアノで弾く

もともとは「両手でピアノを弾く」が目標でした。ノリで課題曲が決まりましたが大丈夫ですかね。早速ピアノ弾き語りの楽譜買ってきます。。。

全然×。かけらも練習してない。

5. ビールを飲まない

これ、自分が1番びっくりしてるんですけど、先週友人と話していて勢いで約束してしまいました。約束を守るだけの人生でいいと豪語している私です。絶対守ります。飲み会でも一発目からウイスキーか日本酒で行く。(酒は禁止ではない)

見事達成。うだうだとエッセイを書きました。友人には次は何をやめんの?と言われますけどやめません。でも、何かをやめることができた、1年間継続してできたということは自信になりました。

note.mu

6.体脂肪率15%

現在19%です。無理ない目標ということで。別記事を書きますが最近ヘルシープログラマという本を読んで健康意識がとても高いです。たくさん歩いてますし、登山も健康施策の1つ。

一時期痩せたんですが、BlueToothイヤホンをなくしてから走らなくなってしまい、元に戻ってしまいました。×

7. 簿記3級

11月に取るつもりだったんですが流れてしまいました。さっさと取ってしまいます。これ、バンドメンバー4人中3人があげていました。

どうしても好きになれなかったようです。諦めます。×

8. CDをリリース

少なくとも5曲以上入り。結局丸二年オリジナル曲が出せなかったので。技術的な自己研鑚にリソースを割きすぎたのもありますが、モノは揃ってきたし、そのための準備もしっかりできてると思うので。(ベース、ドラム、鍵盤を一通り経験)

結果は×です。でも最後の最後に1曲仕上げて、HPもリニューアルをして、やっと動き始めました。年内には無理ですが、来年こそはいけるかもしれません。原因は他にたくさんバンドが動いてしまい、自分1人のプロジェクトより、誰かがいるプロジェクトを優先してしまったことです。そりゃそうだよね、1人でやりたいプロジェクトじゃなくて、1人"でもできる"プロジェクトだったから。それでも、過去の自分のために、やります。

最近は他のバンドでもCDリリースが見えてきているので来年こそは!

9. 小学校時代の先生に会いに行く

もう4年近く会ってない。恩師です。

夏に会いに行きました。変わらず元気でよかった。◎

10. 本を100冊読む

ちなみに今年は読書メーターによると66。その前の年は19冊ですから着実に増えていってますね。達成できそうです。週2冊ペース。

現時点で71冊。去年よりは増えてますが、目標には至りませんでしたね。まぁ、これは中身がない(=冊数だけでは何の意味もない)指標ですので、何もないわけではないので◯とします。

30までにやりたい5のことの振り返り

1. 母をスペインに連れて行く

母の兄がスペインに住んでいるので、いつか連れて行きたいなあと。行った後は案内してもらえると思うし。まぁ問題はお金ですよね!!!

元気なうちに。。。これはお金の問題ですね。

2. 47都道府県制覇

残りは 青森/秋田/福島/群馬/新潟/福井/山梨/長野/三重/鳥取/島根/徳島/愛媛の13件。年5件ペースで行かないとなあ。

上記だと青森、群馬、山梨、鳥取、島根に今年行き、残り8件。いいペース。

3. ピアノで弾き語り

曲は決まってませんが。。。これも本当は曲を決めたほうがいいんだろうな。まずは両手で弾けるようになる。

厳しいですね。あと2年。

4. 本を出す

今は電子書籍で個人も出せると思うので。まぁ、できることなら紙の本を出したいけど。これは本当に夢です。

ブログはたくさん書きました。書くことが息を吸うようにできるようになったので、そういう意味では前進と言えるかもしれません。

5. 会社外で1円"利益"を出す

まぁ例えばアプリを出したとしてインフラとかバックエンドが必要ないものでお金を獲れば人件費がタダとすれば利益になるけど。何らかのサービスをやるとするとおそらく支出も出てくるはずなので、それを超えるほどの、利益を出したいな。

上記で考察しましたが、アプローチを変えたほうがよさそうです。

その他、目標外での振り返り

2度の仕事での挫折

1つは社内資格で、自分が組織内でも秀でてるところをアピールするというイベントで、1つの仕事を長くやった経験がない自分はとても苦労しました。よいところが見つからず心が荒みましたね。

1つは純粋にソフトウェア開発(オープンソース)で、コードの理解ができず、期限をすぎて後任に引き継ぐ事になってしまったことです。ソフトウェアエンジニアとして生きる自信を根こそぎもっていかれた出来事でした。

正直、この経験があってよかったとは思いません。本当につらかったもん。でもおかげで自分の得意なところをみようとできているし、それが少し見えてきてるので、そういう意味では"おかげ"と言わざるをえない。でも本当につらかったよ。

ブログ習慣の確立

昨年末から本格的に書き始め、1月から3月にかけて毎日更新を達成。年間200日弱の更新をすることができました。数ではないですけど、これだけ書けるってすごいと、自分に思います。

質に転換するって話もありますが、やっぱりブログは僕の思考の友達です。思考するとき、話を聞いてくれる、大事な友達。だから、これからも好きなように続けます。

ライターへの興味

ライターというにはまだ気恥ずかしいですが、好きなWebライターができて、いろんな記事を読むようになった。そして自分は今までもこれからも言葉が好きだし、言葉をひとに届けることが得意だということにも気づいた。ブログを通じて自分の思考をアウトプットすることもできた。できるんじゃない?って思った。

これからも金銭抜きで、自主企画でいろんな記事をブログで発信していこうと思います。書くこと、伝えること、好きみたいだ。

カレーへの情熱

別のブログ立ててしまったぐらい、カレーへの愛情を認識した1年でした。

curryengineer.hatenablog.com

自分でも作りますし、カレーについて発信していきますよー!

ソフトウェアエンジニアリングからチームビルディングへ

多分ソフトウェアのこと好きだと思うし、やめれはしないと思うし、技術者に足踏み入れたので簡単には抜けないと思う。それでも、それよりはチームビルディングの適性のほうが高いことを認識した。

ソフトウェア開発に限った話ではないが、組織で働く以上 、他者との関わり、チームでどう動くか、どう成果を出すかは避けては通れない。次の1年はこの分野で自分がどれだけ力を出せるか試してみたいと思う。

もちろん、技術を完全に捨てはしません。自分を追い込まない程度に、楽しみながら技術にも触れていきます。

音楽家として

いつものくせでいろんなバンドやコラボをやって、それが幸運なことになかなか途切れない、幸せな生活を送っています。

オリジナルを含め、楽器にこだわらず、いろんな経験を、恐れずにします。だって趣味なんだもん。音楽だけは、自分が苦しくならないでほしいな。

ひたすら、思考

ひたすら思考しました。自分のこと、周囲のこと、ひたすら、それはもうひたすら。止まるどころじゃなく、思考した。どんどん、どんどん変わっていくのがわかる。

去年の今頃、この3年で何かが変わると思う、とても大事な時期だと思う、根拠はない。なんて思ってましたが、その変化があらわれはじめてきています。自己を向くことを突き詰めると、ある瞬間、吹っ切れて明るく開けるんですね。自分が自分として自信を持てたというか。文章で書くとこの年で?って感じですけど。

思考はいいぞ。これからも一緒に思考させてくれ。

おわりに

2016年、終わっちゃいますね。達成できなかった目標もあるし、目標のたてかた自体も考え直したいと思っています。

年内に2017年の目指す道、生きる道を記事にします。