10月 2011 | 忘れたらググればいい

2011年10月25日火曜日

Bloggerでソースコードに色をつける

SyntaxHilighterっていうのを使う

説明としては↓のとおり.

ななし's Programming: 【SyntaxHighlighter】グーグルBloggerでの使い方

使い方

この後で設定するスクリプトとCSS指定を <head> </head>のどこかに入れておく.あとは本文で


段落

などと書いておくと

段落

と表示される.

自分の設定

使わないであろう言語はコメントアウトしておいた.読み込みが速くなるのかどうかは分からないけど. あと,配色はデフォルト ('shThemeDefault.css': 4行目) にしておいた.ほかの配色はこちら






sakusaku の今週のみどころを抽出する for GAE

@sakusakubotの抽出する今週のみどころがおかしくなった

何も表示されていない...

よく見るとHTMLがなんかおかしい...

月曜はpタグで囲まれてるけど,火曜以降は囲まれていない.今まで使ってきたスクリプトだと対応できないパターンだ(最初,テキストでHTMLを表示してたけど,文法エラーが勝手に修正されてしまうので,画像で差し替え).

sakusaku|tvk
〔特別!〕 ●今週のゲストは、中孝介さん! ...
〔特別!〕 ●今週のゲストは、中孝介さん!

というわけで修正.とりあえず動けばいい.

GAEで使う部分.getMidokoro()を実行するとみどころデータが得られる.キーに曜日 ("mon", "tue", "wed", "thu", "fri") を指定すると対応する曜日のみどころリストが得られる.

from google.appengine.api import urlfetch
import re

def getMidokoro():
    htmlurl = "http://www3.tvk-yokohama.com/saku2/midokoro.php"
    result = urlfetch.fetch(htmlurl)
    midokoro = {}
    h4Pattern = re.compile("<[hH]4>(.*)")
    clearerPattern = re.compile("
") if result.status_code == 200: lines = result.content.split("\n") f_in_midokoro = False f_is_first_h4 = True buf = [] key = None for l in lines: m = h4Pattern.match(l) if m: if not f_is_first_h4: midokoro[key] = getMidokoroItems(buf) buf = [] else: f_is_first_h4 = False f_in_midokoro = True dow = unicode(m.group(1),"utf-8") key = None if re.search(u"月曜日",dow): key = "mon" elif re.search(u"火曜日",dow): key = "tue" elif re.search(u"水曜日",dow): key = "wed" elif re.search(u"木曜日",dow): key = "thu" elif re.search(u"金曜日",dow): key = "fri" continue if f_in_midokoro and clearerPattern.match(l): f_in_midokoro = False midokoro[key] = getMidokoroItems(buf) buf = [] if f_in_midokoro: buf.append(unicode(l,"utf-8")) return midokoro def getMidokoroItems(buf): paragraph = "".join(buf) paragraph = paragraph.strip() paragraph = paragraph.replace("

","") paragraph = paragraph.replace("

","") paragraph = paragraph.replace(u" ","") data = re.split("<[bB][rR]( )*/?>",paragraph) items = [] tmptxt = "" for d in data: if re.search(u"●",d): items.append(tmptxt) tmptxt = d.replace(u"●",u"▽") else: tmptxt += d items.append(tmptxt) return items

とりあえず動いた

もうちょっと汎用的に書いた方がいいだろうけど,どうせ本家ページのフォーマットもころころ変わるからいいや.

2011年10月19日水曜日

iCloudとGoogleのカレンダーと連絡先の同期はどうすればいい?

Androidデバイスとデータを同期したい

これまで (そしてこれからも) MacやiOSデバイスと同時にAndroidデバイスも使いたいので,Google上にあるカレンダーと連絡先も同期しておきたい.

iCloudは無視! (連絡先とカレンダーに関しては)

が,Android (Google) からはiCloudは見えないし,もちろん更新もできない (ブラウザからアクセスすれば見えるでしょうが).したがってGoogleをメインにする.つまりiCloudのデータは無視! Googleをメインにしても,MacやiOSのアプリからでも読み書きできるので,特に問題はなし (自分の使い方では).Google側は何も設定を変えなくてよいのも楽.

iCalの設定

環境設定→アカウントでGoogleアカウントを追加.これでiCal経由でGoogleのカレンダーを読み書きできる.

このままだとデフォルト(?)の一つだけが表示されて,外部などから購読しているカレンダーが表示されないので,委任タブで表示するカレンダーを選択.下では,foursquareのチェックイン履歴とGoogleが公開している日本の祝日 カレンダーを選択.

iCloudの連携もonにしておいた (使わないけど).ちなみに,iCloudのカレンダーは使わないので,全部消してしまおうかと思ったけど,最低1つはカレンダーがないといけないみたいなので,"iCloud only event"と名付けて残しておいた (ここに予定を書かいてもAndroidでは見れない).

結果,iCloud (緑),Google (青),foursquare (Google経由, 緑),日本の祝日 (Google経由,赤) ができた.

アドレスブックの設定

iCloudは無視するので,Googleのデータをローカルに置くだけ.環境設定→アカウントでGoogleと同期にチェック.

iCloudの設定

基本的にMac, iOSデバイスではカレンダーも連絡先もオフにする.

iPhone, iPadの設定

これまでExchangeのアカウントとしてGoogleのデータを同期していた.例えば↓のような方法で.

「Google Sync」でGoogleカレンダー&連絡先をモバイルデバイスと同期(iPhone/iPod touch編) - できるネット+ 編集部ブログ
GoogleカレンダーとGmailの連絡先をモバイルデバイスと同期する「Google Sync Beta for your mobile phone」が公開になりました。iPhone/iPod tou ...

カレンダーに関してはいつの間にかExchangeのアカウントとしてでなくてもGmailアカウントとして同期できるようになっていた (連絡先はExchangeのみ).が,こちらでカレンダーを同期するとGoogleカレンダーで購読しているカレンダーを参照できないようなので,こちらではカレンダーはオフにする.なお,Exchage側とGMail側で両方オンにすると同じイベントが2つずつ表示されちゃうので注意.

iPhone: Exchange

iPhone: GMail

iPad: Exchange

iPad: GMail

iTunesの同期ではアドレスブックの連絡先,iCalカレンダーの同期をオフにしておく.

GoogleのデータはExchangeアカウントとして扱うことで,Mac, iOSデバイスから連絡先,カレンダーを操作できるけど,逆 (AndroidからiCloudを読み書き) は今のところできない.となると,Androidユーザは必然的にGoogleがメインになる.iCloudをメインにしたい場合は,手動で同期するかAndroid (Google) の使用をやめるかしかない.Apple的には,iCloudはGoogleと両立させたくないんだろうな...