Lolidroid.txt

メモ書きです。

ニコニコ超会議へ行ってきた

30日の部だけ参加しました。 何の目的もなく行ったけど楽しかった。 技術書を買ったのだけど、秋葉原で飲んだ時に無くしてしまったようだ。

平成28年度 秋期情報処理技術者試験を受験した

先週10月16日、平成28年度 秋期情報処理技術者試験を受験した。

ただの勉強不足+知識詰めるだけじゃ解答しにくい問題もあったように思う。 今後は演習中心に勉強する。

使ってる教材

金を惜しまないスタイルでやっていく。


2017/1/3 追記

大して勉強してないけど受かってた。

GitHub Supportから早く返事をもらう方法

GitHub SupportのTwitterアカウント(@GitHubHelp)へリプライをするとすぐ返事を貰えるかもしれません。

自分の場合、問い合わせフォームとメールの両方で送った要望を1か月ほど無視されていましたが、即日返事をもらえました。

この後、メールで返信が来ていました。独自ドメインのメールで送ってしまっていたため迷惑メールフォルダに入っていたようです。見てほしいメールを送る場合はGmailなどを使いましょう(マナー)。

ちなみに送った要望とは、GitHubアカウントで既に使われていたユーザー名を解放して欲しいという内容のものです。

GitHubにはName Squatting Policyという規約があり、欲しいユーザー名が使われていてもそのアカウントがアクティブでなければ解放してもらうことができます。

Twitterへ自動ログイン -> oauth認証 

複数Twitterアカウントのフォロー管理や投稿などを、まとめて管理したいとします。
これらの作業を自動化するためにはTwitterが公開するAPIを利用するのがよいでしょう。 しかし、これを利用する場合、最初にOAuth認証に伴う手動ブラウザ操作が発生します。

そこで、このブラウザ操作をrubyMechanizeを使って自動化します。

Mechanizeはgem install 'mechanize'なりしてインストールしてください。

※ 本記事の内容を試す場合は自己責任にてお願いします。またTwitter webの仕様変更などで動作しなくなる場合があります。

下記のようなコードを作成します。

7,8行目にはTwitterアプリケーションキーを入力してください。アプリケーションキーここから入手できます。今回はPIN認証を自動化しました。

require 'optparse'
require 'mechanize'
require 'oauth'
require 'oauth/consumer'

# 以下を書き換える
CONSUMER_KEY    = 'consumer key をここに'
CONSUMER_SECRET = 'consumer secret keyをここに'

# Parse Option 
args = {}
OptionParser.new do |parser|
    parser.on('-u', '--username USERNAME'){|v| args[:username] = v}
    parser.on('-p', '--password PASSWORD'){|v| args[:password] = v}
    parser.parse!(ARGV)
end

username = args[:username]
password = args[:password]

agent = Mechanize.new

agent.verify_mode = OpenSSL::SSL::VERIFY_NONE
agent.follow_meta_refresh = true
agent.user_agent = 'Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko'

# Login to Twitter
page = agent.get("https://twitter.com/")

form = page.forms[1]
form["session[username_or_email]"] = username
form["session[password]"] = password
page = form.submit

# Get Request token (use Twitter API)
consumer=OAuth::Consumer.new( CONSUMER_KEY,CONSUMER_SECRET, {
    :site=>"https://api.twitter.com"
})
request_token=consumer.get_request_token
auth_url = request_token.authorize_url

# Open request url
page = agent.get(auth_url).form_with(:id =>'oauth_form').submit 

# Parse PIN code
code = page.at('code').content

# Send PIN code
access_token = request_token.get_access_token(:oauth_verifier => code)

puts access_token.token
puts access_token.secret

上のコードを実行すると標準出力にアクセスキーが出力されます。

ruby twiauth.rb -u Lolidroid -p "ここにパスワード"

あとはよしなに。

【css】アイコン付きのコメント風レイアウト

Bootstrapの.mediaみたいなやつをplain cssでやりたかったので、本家から必要なのだけをメモ。

f:id:Lolidroid:20160423202228p:plain

cssで以下のように定義します。

    .comment{margin: 10px auto;}
    .comment>div{display: table-cell; vertical-align: top; overflow:hidden; padding:10px;}

細かい数値は適宜調整します。以下のようにマークアップすれば完成です。

    <div class="comment">
      <div><img src="prof.jpg" alt="" /></div>
      <div>ここに本文を書きます。</div>
    </div>

それぞれのdivタグの中身はタイトルなどある程度自由に書けます。