タグ

2012年5月6日のブックマーク (3件)

  • 正規表現で最短マッチを知っとくとちょっと便利かも - (゚∀゚)o彡 sasata299's blog

    2012年05月01日21:34 Ruby 正規表現で最短マッチを知っとくとちょっと便利かも 正規表現ってあるじゃないですか。そうです。アレです。 とっても便利で、いろんな場面で役立つと思うんですが、ときどき最短マッチを使いたくなって「最短マッチってどう書くんだっけなぁ?」ってなってググることがあります(よね!) 通常は最長マッチになる 通常、正規表現内で * とか + とか付けると、直前の表現の0回/1回以上の繰り返しを表しますが、この書き方だとできるだけ長い要素にマッチしようとします。大事なことなのでもう一度言います。できるだけ長い要素にマッチしようとするんです。 大抵はそれで構わないんですが、ときどきそれでは困るケースがあります。例えばこんなケースを考えてみましょう(あんまり良い例が思いつかない)。 ・"名前(ニックネーム)"という形式 ・名前と(ニックネーム)の間には半角or全角ス

  • マルチスレッド - 某ソフト作者の開発日記

    複数スレッドから同一データベースを扱う場合は,それぞれのスレッドが sqlite_open より取得された sqlite* を持つ必要がある. って http://www.sqlite.org/c_interface.html の section 5.0 に書いてありますが,うっかり同じ出自の sqlite* を使ってしまいました.すると見事なまでにエラー続出.幸い,上記サイトを昨日参照したばかりだったので注意事項を思い出すことができた(内容までは覚えていなかったけど…). で,select 系はいいとして,update や delete, insert が同時に起こるとクエリーはどちらかが止まってしまうことに気づいた(具体的なエラー名はわかりません). これを回避するために,update 等が必要になる処理は CCriticalSection で囲うことにした.もちろん,検索専用スレッド

    マルチスレッド - 某ソフト作者の開発日記
    ryochack
    ryochack 2012/05/06
    複数スレッドから同一データベースを扱う場合は,それぞれのスレッドが sqlite_open より取得された sqlite* を持つ必要がある.
  • SQLiteを使う場合の注意点 - 一歩ずつコツコツと

    さて、長いこと放置していたはてなダイアリーの方ですが、まとめ書きした方がいいものは、やっぱりこちらに書くということで。 AndroidSQLiteを使うケースは多々あると思いますが、明言されていない注意点があるので忘備録がてら。 SQLiteDatabase#closeは明示で呼ぶな、Cursor#closeは明示で呼べ これはSQLiteの作りの話ですが、SQLiteではマルチスレッドに対してコネクションオープンからクローズまでは保障する、という作りになっています。 要はコネクション単位でスレッドセーフですよ、ということ。 AndroidSQLiteを使って検索系の処理をするのに、いわゆるWebアプリ的な作りで考えると、更新系処理ではCUD処理のあとにSQLiteDatabase#closeとしがちですが、android.database.sqlite.SQLiteException

    SQLiteを使う場合の注意点 - 一歩ずつコツコツと