2013-01-01から1年間の記事一覧

MySQL の SQL エスケープ

この記事は MySQL Casual Advent Calendar 2013 の15日目の記事です。 今、空前の SQL エスケープブームみたいなので、このビッグウェーブに乗っかってみます。 でも面倒なのでセキュリティについての話はしません。カジュアル! 文字列リテラルとエスケープ…

Sequel について (その2)

前回 からの続きです。 今回はいろんな SELECT クエリを記述するために使用されるメソッド等について書いてみます。 データセット その前にまずデータセットについて説明します。 テーブルからレコードやカラムを絞り込んだものをデータセットといいます。 D…

Sequel について (その1)

最近 Sequel というライブラリを触ってるので簡単にまとめてみます。 Sequel Sequel は Ruby の構文で SQL クエリを記述するためのライブラリです。 SQL の文法が嫌いな自分には持って来いです。 RDB 毎の差異も吸収してくれます。 自分は MySQL しか知らな…

VM 上の Linux で ThinkPad USB トラックポイントキーボードを使う

この前半額キャンペーンがあったので ThinkPad USB トラックポイントキーボード(日本語配列)を買いました。 レノボ・ジャパン ThinkPad トラックポイント・キーボード - 日本語 0B47208出版社/メーカー: Lenovo発売日: 2013/06/25メディア: Personal Compu…

Rubyでシェルもどきを作る

Ruby でシェルのようなものを作ってみると、Ruby とシェルやシステムコールの理解ができて、研修の課題とかにいいんじゃないかと10年くらい前に思ってたのを、ふと思い出したので書いてみます。 基本 シェルの動作を簡単に説明すると次のような感じです。 プ…

Ruby/MySQLの速度

Ruby 2.1.0 preview1 がリリースされたので、Ruby/MySQL の速度を測ってみました。 測定環境 ThinkPad X220 Core i5 2.3GHz Linux Mint 15 32bit MySQL 5.6.13 測定内容は https://github.com/tmtm/ruby-mysql/tree/master/bench 参照。 ruby-mysql すべて R…

NSEG #43

長野ソフトウェア技術者グループ(NSEG)の第43回勉強会に参加しました。 ツイートまとめ 今回も会場は長野駅前のケイケンさんの会議室でした。 毎回会場を提供していただいてありがたい限りです。 今回のテーマは「教育」でした。当日になっても発表者が一人…

CodeIQ の解答例を Ruby っぽくする

エンジニア夏祭り2013「オラにじぇじぇじぇなコードを書いてくんろ!」解答編 の解答例の Ruby コードがあまり Ruby っぽくなかったので、勝手に Ruby らしくしてみます。 元の解答例 s="gtgtsgipgttptinggipsppaigsesgpetgstpatetisiesagaeaigttetepitiatse…

MyNA会2013年7月 に行って来ました - MySQLのプロトコル解説

7/29 に MyNA会2013年7月 というイベントがあったので、行って喋って来ました。 MySQLのプロトコルという誰得なネタを発表しました。 何故か2ヶ月ほど前のスライドにアクセスが急増している昨今ですが、こっちも見てください。でも面白くはないです。 MySQL…

親子関係のないプロセス間でファイルディスクリプタを共有する

UNIX や Linux でプロセス間でファイルディスクリプタを共有するには、ファイルディスクリプタを作成後に fork して親子間で共有するという方法が良く取られますが、UNIXドメインソケットを使って、親子関係のないプロセス間でファイルディスクリプタを受け…

日本語キーボードを英語配列風にする

自分は日本語配列キーボードの ThinkPad を使用しているのですが、英語配列風にして使ってます。 昔は Sun の Type3 や Type4 キーボードを使っていて、最近は英語配列の HHK キーボードを使ってるので、英語配列の方が使いやすいのです。 英語配列キーボー…

Padrino のエラー処理と後処理

最近 Padrino というウェブアプリケーションフレームワークを触ってます。 Padrino ではコントローラーのアクションを実行する前後に処理を実行することができます。 before do 前処理 end after do 後処理 end get :hoge do 処理 end また、エラー時に表示…

Linux Mint 15 Cinnamon Edition

今まで Compiz のバイナリは https://launchpad.net/~guido-iodice にある PPA を使っていたんですが、それがなくなってしまいました。 どうも Compiz は終了みたいなので、5年ほど愛用していた Compiz から離れることにしました。 ということで Linux Mint …

Linux Mint 15

Linux Mint を 14 から 15 にアップグレードしました。 アップグレード手順は http://blog.lindwurm.biz/2013/05/how-to-upgrade-mint.html を参考にしました。 Ubuntu と異なり、GUI でアップグレードする方法はないようで、公式の推奨方法は新規インストー…

NSEG #40

(この記事は 2013-06-16 に書きました) 長野ソフトウェア技術者グループ(NSEG)の第40回勉強会に参加しました。 NSEG では主に長野市で毎月1回勉強会が行われています。最近は自分は二回に一回くらいしか参加できてないのですが…。 今回のテーマは「暗号と認…

RubyHiroba に行って来ました

(この記事は 2013-06-08 に書きました) RubyKaigi 2013 は諸般の事情により行かなかったのですが、RubyKaigi が終了した翌日に開催された RubyHiroba に参加しました。 会場は品川のマイクロソフトさんのビルでした。 ロビーに到着すると、豪華な受付の人が…

rsync で大量ファイルを消すと遅い

なんかいちいさん(id:ichii386)が面白そうなこと(「rsync で削除すると速い (?) 件」)をやってたので、手元の PC でも試してみました。 ThinkPad X220 Linux Mint 14 Linux 3.5.0-28 ext4 % mkdir /tmp/a % cd /tmp/a % seq 1000000 | time xargs -n100 touc…

Linux Mint

2006年あたりからずっと Ubuntu を使っていたのですが、最近の Ubuntu のデスクトップ環境についていけなくなったので、Linux Mint を使い始めました。 あー快適。古き良き Linux デスクトップ環境がそこにありました。 いくつかいじったので覚えている範囲…

MySQL の "Illegal mix of collations" エラーについて

MySQL で「Illegal mix of collations」というエラーが出ることがあります。テーブルの charset と接続の charset 等、すべてを utf8 などで統一してれば出ないので、あまり見ることはないかもしれません。 私はカラム毎に charset を指定することがあるので…

OSS貢献者賞を頂いたので昔話をします

この記事は、おっさんの自分語りと昔話なので、あまり読む価値はないです。 もう1ヶ月くらい前になるのですが、OSS貢献者賞を頂きました。 最近はあまりOSSに貢献するようなことをしてる自覚はなかったので、なぜ自分が候補にあがったのか謎でした。OSS貢献…

「SQLアンチパターン」 #sqlap

1月末くらいに「SQLアンチパターン」を監訳者の和田さんから頂きました。 なぜ私ごときが頂けたのかわかりませんが、ちょうど読みたいと思っていたところだったので、ありがたく頂戴致しました。 それから1ヶ月くらいかけてやっと読み終わりました。遅読にも…

Rabbit で PDF 出力時のフォントが汚くなるのを回避

Ubuntu 12.10 で、Rabbit で PDF を作成するとボールドフォントが汚くなってしまう問題が発生していて困っていました。 12.04 だとこうだったのが、 12.10 だとこんな残念な感じに…。 細くなってしまっている字が目立ちますが、それ以外の文字も汚くなってま…

東京Ruby会議10 #tkrk10 に行ってきました

最近のモットーは「意識とモチベーションは低く」なので、ブログ書かなくてもいいかなぁ…と思ってたのですが、せっかくなので書いてみます。 1/13(日),14(月) の二日間開催された千葉東京Ruby会議10 に行って来ました。 15分ずつ次々とプレゼンをしていく形…

Ubuntu 12.10 で core ファイルが作成されない

Ubuntu 12.10 でプログラムを走らせた時に segmentation fault と出力されるのに core ファイルが作成されませんでした。 ulimit -a コマンドで見てみると、 -c: core file size (blocks) 0 となっていて core ファイルのサイズの上限が 0 = core ファイルを…