コーディング規約メモ

プログラマのための言語別コーディング規約まとめ | Web活メモ帳というのが出ていたが、CとかC++とかJavaが無かったので、補足としてそれらをリストアップしておく。


【C】

C++

Java


あと、Googleはシェルのスタイルガイドも公開してたのね。

Beautiful Soup 4へのポーティング

pythonで動作するHTMLとXMLのパーサーであるBeautiful Soupをバージョン3からバージョン4にポーティングした際のメモ(非常に簡単)。


【前提】
Beautiful Soup 4(以降BS4)はpython 2.6以上かpython 3で動作する。


【修正ポイント】
・パッケージ名の変更
 BS4からパッケージ名が変わったので変更する。
(変更前)

from BeautifulSoup import BeautifulSoup

(変更後)

from bs4 import BeautifulSoup

エンコーディングの指定形式の変更
 ワーニングを消すために引数の名称を変更。
(変更前)

soup = BeautifulSoup(html, fromEncoding='Shift_JIS')

(変更後)

soup = BeautifulSoup(html, from_encoding='Shift_JIS')

以上でポーティング終了である。


【その他】
BS4で良いなと思ったのは、get_text()でタグに挟まれた文字列を取得する事が出来るようになった点。
stringとの違いは前後の空白を削除してくれる所。


【参考ドキュメント】
Porting code to BS4 ― Beautiful Soup 4.0.0 documentation

ボットの環境メンテナンス等々

Google App Engineを利用してTwitterボットを幾つか動かしているのだが、Twitter API 1.0がそろそろ廃止されると言うことで、その対応のついでに色々やった事をメモしておく。


1. Twitter API 1.1対応
Twitter API 1.1に対応するという作業を実施。
といっても、Twitterへのポストはtweepyというライブラリを利用しているので、このtweepyをバージョン2.0にする事で対応終了(ただし、API 1.1で廃止されたインタフェース(friends_timeline()等)を使っている場合には、ボットのコード修正が必要になる)。
なお、自分が使っているtweepyのバージョンは__init__.pyを見れば確認出来る。


2. Google App Engineのデータストアの移行
こちらも、GAEのMaster/Slave Datastoreが廃止予定と言うことで、新しいHigh Replication Datastore(HRD)への移行を実施。移行は以下の記事に従って実施するとスムーズに終了した。
なお、移行に掛かった時間はおよそ30分である。


3. Pythonのバージョンアップ
いつの間にかGoogle App EnginePython 2.5だけでなくPython 2.7が使えるようになっていたので、ボットで利用するPythonのバージョンも2.7に変更(Python 2.7を使うにはHRDに移行しておかないとダメな模様)。
具体的にはapp.yamlを修正して、runtimeをpythonからpython27に変える。あと、新たにthreadsafeの指定が必要になるのでtrueかfalseを指定する。

application: hoge
version: 1
runtime: python27
api_version: 1
threadsafe: false

また、GoogleAppEngineLauncherのPreferencesでPython Pathを/usr/bin/python2.7等に変更して、ローカルのテスト環境もPython 2.7を利用するように変更しておく。


【参考記事】

【関連記事】

横浜市のPM2.5速報値をつぶやくTwitterボットを作成


横浜市環境監視センターが微小粒子状物質(PM2.5)の速報値をホームページ上で公開していたので、そのデータを定期的(1時間に1回)にポストするTwitterボット([twitter:@yokohama_pm25])を作ってみた。アイコンはHert01,incの[twitter:@hamushi]氏に作ってもらった。多謝!



ちなみに、環境監視センターによると、環境基準(人の健康を保護し、及び生活環境を保全するうえで維持されることが望ましい基準)は以下。

  1. 年平均値が15マイクログラム/立方メートル(μg/m³)以下であること。
  2. 日平均値が35マイクログラム/立方メートル(μg/m³)以下であること。


【関連記事等】

はてなブックマーク8周年おめでとう

はてなブックマーク8周年キャンペーンを開始しました - はてなブックマーク日記 - 機能変更、お知らせなどを見て、はてなブックマークが2月10日に8周年を迎えていた事を知った。
8周年なのでサービスが始まった日は2006年2月10日。この4ヶ月後の6月には今は亡きlivedoorクリップがサービスを開始していた。ちなみにその2ヶ月後にmixiマザーズに上場。そんな時期だったか。


で、ふと自分がはてなブックマークを使い始めたのはいつ頃だったかが気になったので調べてみた。結果、2006年4月12日が最初であった。しかし最初にブックマークした記念すべきサイトflashmind.jpは既にサービス終了していた…。ちなみに、はてなブックマークの前はDeliciousを主に使っていた気がする。
はてなブックマーク - tomuteのブックマーク / 2006年4月12日


なお、自分の最初のブックマークは、総ブックマーク数が3000だとしたら、以下のURLで表示させる事が出来た。

 http://b.hatena.ne.jp/tomute/bookmark?of=2999


【参考資料】
http://i.impressrd.jp/e/2007/08/20/124
「livedoor クリップ」のサービス提供終了のお知らせ : livedoor クリップ開発日誌

How to use net-snmp api in XCode project.

Mac OS X includes net-snmp library by default, and how to use the net-snmp api in XCode is as follow.

  1. Select a project on the right pane of XCode window.
  2. Select "Build Phases", and open "Link Binary With Libraries".
  3. Click "+" button, and add "libnetsnmp.dylib". That's it.

    f:id:tomute:20130203221206p:plain

     

 

中点「・」の話

諸事情で中点「・」についてちょっと調べたので、その時学んだ事をメモしておく。


【読み方】
中点はWikipedia等を見ると中黒(なかぐろ)とも読む模様。
また、中点は「ちゅうてん」と読むと思っていたが、「なかてん」とも読む模様。
英語に訳すとInterpunct、middle point、middle dotとかだろうか。


【種類】
中点には全角の中点と半角の中点しか無いと思っていたのだが、ラテン文字の中点やビュレット等、他にも色々あった。
ちなみにビュレットは箇条書きの一項目を示す印の事。そんな呼び名であることを今まで知らなかった。


文字コード

名称 記号 Unicode UTF-8 入力方法(Mac + Google日本語入力
全角の中点 U+30FB 0xE3 0x83 0xBB 「てん」で変換等
半角の中点 U+FF65 0xEF 0xBD 0xA5 不明
ラテン文字の中点 · U+00B7 0xC2 0xB7 Shift + option + 9
ビュレット U+2022 0xE2 0x80 0xA2 option + 8


【備考】
文字コードバイナリエディタを使って確認したのだが、0xEDというフリーソフトを利用した。