スキップしてメイン コンテンツに移動

第4回道民開発オフに参加した

2008/08/10(日)は第4回道民開発オフでした。夜勤明けの翌日だったため寝坊し、さらに北海道大学の構内で迷子になるなど@hadzimmeに大迷惑かけまくったわけで、本当すみません。

まぁプロのプログラマに混ざって俺が何かできるわけじゃないんだけど、最近Rubyの勉強をしていたので、目標をTwitter4Rの使い方を調べることとしました。以下は結果。

(1)まずはgemをインストール。

$ sudo aptitude install rubygems

(2)Twitter4Rをgem使ってインストール。一緒にJSONも入った。

$ sudo gem install twitter4r
=>twitter4r-0.3.0
=>json-1.1.3

(3)とりあえず使ってみる。ログインから。

$ irb
> require "rubygems"
=> true
> gem "twitter4r"
=> true
> require "twitter"
=> true
> cl = Twitter::Client.new(:login=>"USERNAME",:password=>"PASSWORD")

(4)ポストする。

> cl.status(:post,"Twitter4Rからの投稿テスト")

(4)ID指定して投稿ゲット。

> cl.status(:get,"123456789")

(5)ID指定して投稿削除。

> cl.status(:delete,"123456789")

(6)タイムラインを取得する。timeline_forは:public、:friends、:friend、:user、:meが使える。userとmeはID指定して取得が出来るけど違いがよく分からない。

> tm = cl.timeline_for(:me) do |status|
* p status
> end

取得できる内容は以下みたいな感じ。

#<Twitter::Status:0xb7767cf0 @created_at=Sun Aug 10 14:23:32 +0900 2008, @client=#<Twitter::Client:0xb77d17a4 @login="smokeymonkey", @password="PASSWORD">, @user=#<Twitter::User:0xb7767bb0 @screen_name="smokeymonkey", @url="http://iddy.jp/profile/smokeymonkey/", @location="すすきの", @protected=false, @id=5217451, @profile_image_url="http://s3.amazonaws.com/twitter_production/profile_images/56938157/tw_face_normal.png", @description="フットバッグ部、アサラト部、ビール部、last.fm部、道民部。", @name="すもけ@煙猴">, @text="うぇびんぐすつーでぃおさんがやってきた", @id=883048799>

timeline_forで取得すると、client、user、text、idの要素がある。

> tm = cl.timeline_for(:me) do |status|
* p status.client
* p status.user
* p status.text
* p status.id
> end

出力結果は以下のようになる。

#<Twitter::Client:0xb77d17a4 @login="smokeymonkey", @password="PASSWORD">
#<Twitter::User:0xb7767bb0 @screen_name="smokeymonkey", @url="http://iddy.jp/profile/smokeymonkey/", @location="すすきの", @protected=false, @id=5217451, @profile_image_url="http://s3.amazonaws.com/twitter_production/profile_images/56938157/tw_face_normal.png", @description="フットバッグ部、アサラト部、ビール部、last.fm部、道民部。", @name="すもけ@煙猴">
"うぇびんぐすつーでぃおさんがやってきた"
883048799

userは更に以下要素をもっている

timeline = cl.timeline_for(:friends)
timeline.each {|status|
p status.user.screen_name
p status.user.url
p status.user.location
p status.user.protected
p status.user.id
p status.user.profile_image_url
p status.user.description
p status.user.name
}

出力結果は以下のようになる。

"smokeymonkey"
"http://iddy.jp/profile/smokeymonkey/"
"すすきの"
false
5217451
"http://s3.amazonaws.com/twitter_production/profile_images/56938157/tw_face_normal.png"
"フットバッグ部、アサラト部、ビール部、last.fm部、道民部。"
"すもけ@煙猴"


Twitter4Rはすごい簡単に投稿や取得が出来るので面白いです。PerlでやるときはXMLをParseしてたんですけど、Twitter4Rなら手軽に出来ますね。面白いのでちょっとしたものを作りました。

Last.fmのRecent TrackをTwitterに投稿するRubyスクリプト - smokeymonkey@ついったー部 - はてなグループ::ついったー部

よし、第4回開発オフの俺の作業は完了だ!

コメント

このブログの人気の投稿

リモートワークは仕組みじゃなくて文化です

ここ最近、コロナウイルス関連の報道が数多くあるが、その中でも多くの企業がリモートワークを推奨するという記事やプレスリリースが注目を浴びている。それ自体はもちろん大変望ましい。不要な対面での接点を減らすことで感染リスクを抑えることが出来るし、通勤ラッシュや首都圏への経済集中も抑制出来るからだ。

だがちょっと待ってほしい。リモートワークというのは社員が在宅で働くことだけを指すのではない。社員が在宅で働いても出社時と同じパフォーマンスが出ることをリモートワークというのだ。だからこの記事のタイトルで「リモートワークは仕組みじゃなくて文化です」と書いた。

弊社がリモートワークを導入したのは2011年の東日本大震災がきっかけだけれど、9年経った今、どのようにリモートワークを運用して、そしてパフォーマンスを維持しているかを共有したいと思う。以下のことが文化として根付けば、その会社のメンバーはリモートワークでもオフィスでも同じようなパフォーマンスが発揮出来るはずだ。

1.勤怠を厳密に管理しない え、だってダルくないすか。管理するの。何時に働き始めて何時に働き終わったかなんて関係ないっしょ。大事なのは働いた結果のアウトプットであり、働いた時間なんか問題じゃない。

2.休憩も厳密に管理しない え、だってダルくないすか。管理するの。何時に休憩し始め(ry

3.工数を厳密に管理しない え、だ(ry

4.目に見えるアウトプットを意識する 当然のことながら、仕事は結果が全てであり、結果が出なければどこで何時間働いたって意味がない。そして結果というのは目に見えなければ意味がない。 だからこそ、アウトプットを出すこと、アウトプットを評価することに徹底的にこだわる。それはドキュメントかもしれないし、お客様やパートナーとコミュニケーションするためのメールかもしれないし、社内の改善活動かもしれないし、メンバーへのフォローかもしれないし、ブログかもしれないし、Slackでの発言かもしれない。 とにかく目に見えないものは周りも認められない。目に見えるアウトプットしか評価されないし、そのために徹底的にアウトプットするんだ、という意識を社内でしっかりと作ることが重要。

5.コミュニケーションコストを意識する どんなに頑張っても、オンラインのコミュニケーションはオフラインのコミュニケーションの密度を越えられない…

これで完璧!本当に役立つテレワークマナー

コロナ禍によってテレワークを導入する企業が増えた昨今、皆様いかがお過ごしでしょうか。僕は4連休明けでダルかったので有給を取得し妻とデートしてきました。イェーイ。さて、弊社も今年2月以降は全社員完全テレワークに移行しました。弊社は2011年からテレワークを導入し各自が自由に活用していたため、特に大きな問題も無くテレワーク体制に移行したのですが、全社員完全テレワークは初めての状況であり、幾つかの課題が発生しました。特に、その状況下でも新しく入社する社員がいますので、これまで社内で培ってきた暗黙の了解が共有出来ないことは大きな課題でした。ということで、本記事では、弊社のテレワークマナーについてご紹介したいと思います。皆さんのご参考になれば幸いです。業務の開始と終了はチャットで宣言するこれはオフィス出社時でもテレワークでも変わらないのですが、業務開始時と業務終了時にはSlackで宣言しています。弊社ではこれを開店/閉店と呼んでいます。気をつけて頂きたいのは、これは報告ではなく共有であるということです。業務開始と業務終了を共有しておくことで、同僚が相談したり依頼をしたりできる時間を把握出来ます。この共有をしておかないと、業務開始前や業務終了後にMentionがバンバン飛んで来るかもしれません。もちろん飛んできたからって怒るメンバーはいないのですが、お互いちょっとした気遣いが出来るように、自分が働いている時間は共有しておくと良いでしょう。これは休憩時間も同様です。昼休みにのんびりゲームしているときにスマホがブーブー鳴っていたら気が散るかもしれません。休憩開始と終了をSlackで宣言することでゆっくり休憩することが出来ます。休憩中はDisplay nameの後ろに「休憩中」等と付けておくのも良いでしょう。マイクとスピーカーはPC内蔵のものを使わないPCの性能は以前と比べて格段に上がっていますが、残念ながらマイクとスピーカーはそうではありません。マイクについては音質は向上しているものの、指向性が無いために周囲の音を拾ってしまいます。そしてPC操作時には、どうしても打鍵音がダイレクトに響いてしまいます。またスピーカーは、まぁ正直全く駄目です。音楽を聞くのにさえ向いていないのに、音声のやり取りなんか出来るわけがない。マイクとスピーカーは必ず別に用意しましょう。必ずしも高価なものである…

41歳になりました

30代の頃は40歳になるまでの1年1年を意識しながら生きていたんだけど、40歳を越えてから自分の年齢にまるで興味が無くなり「あれ、今40歳だっけ、41歳だっけ」くらいの感じだったのですが、昨晩妻に確認したところ今日で41歳になりました。本厄ですが今の所は大きなトラブルもなく、もしかしたらコロナウイルスって僕が厄年のせいかな?くらいの気持ちでおります。

折角なので近況報告です。

コロナウイルス ... 現在弊社ではBCP体制として全オフィス閉鎖、全員在宅勤務、出張禁止となっています。僕も在宅勤務をしており、3月の出張を全てキャンセルしました。丸々一ヶ月自宅にいるのはなんと2015年8月以来4年7ヶ月ぶりです。ほぼ5年じゃん...この5年出張しかしてねえじゃん俺...おかげで毎朝6時起床で飲酒ゼロという健康的な生活を送っております。仕事 ... 2019年7月に弊社執行役員から取締役に変わったのですが、「使用人兼務役員だし大した変わらないだろ」と高をくくっていたところ、なんだかんだと自分の部署以外にも目を向ける必要が出てきたり、海外拠点のビジネスについても責任が伴ったりと、なんか結構変わっちゃったな、という感じです。41歳もまた新しいチャレンジをする一年になる予定なのでお楽しみに。家庭 ... 長女が大学進学して一人暮らしを始め、一安心していたところに長男が酒と煙草で停学2連チャンし自主退学、何とか私立高校に編入させて寮に引っ越しをさせ、結果的に妻と次男と3人暮らし、というのが現状です。この長男についてはまぁちょっと色々酷い時期があったものの、正直なところ僕も他人様に胸を晴れるほど立派な高校生だったわけでもないし、長男自体は編入後にすごく大人になったことから、コレ自体はまぁ長男にとって必要な経験だったんだろう、とポジティブに捉えています。彼も来年は高校卒業を迎えるので、ちゃんと手に職つけてくれると良いな。あと長女には2歳年上の彼氏が出来ました。うん、お父さん大丈夫。お父さん冷静。お父さんちょっとジム行ってくる。英語 ... 1日2時間の英語の勉強時間をキープし続けて、まぁとりあえず海外に独りで行っても困らないし、英語のミーティングは70%くらいは言ってることわかる、たまに返事も出来る、くらいが現状。今年も勉強頑張ります。大学 ... 僕は工業高校卒ですぐ就職しており大学…