ERROR 1227 (42000) Access denied; you need the SUPER privilege for this operation で5分悩んだ
ERROR 1227 (42000) at line N: Access denied; you need the SUPER privilege for this operation
SUPER権限がないので発生したエラー。
このユーザの権限はこんな感じ。
GRANT ALL ON database.* TO foo@localhost IDENTIFIED BY 'password';
SURPERはグローバルな管理権限なので、ON database.*では付与されないため下記のように*.*に対して付与する必要がある。
GRANT SURPER ON *.* TO foo@localhost;
そんなグローバルな管理権限は以下の通り。
FILE PROCESS RELOAD REPLICATION CLIENT REPLICATION SLAVE SHOW DATABASES SHUTDOWN SUPER
MySQL :: MySQL 5.1 リファレンスマニュアル :: 12.5.1.3 GRANT 構文 に書いてあったのコピペしただけ。
jQuery.fn.animate()よりjQueryUI.fn.switchClass()を使った方が捗る気がしてきた
メリットはJavaScriptからスタイルを排除できること。
例として#fooの要素を警告文として文字色を赤くしたい場合を考える。
jQuery.fn.animate()は引数にアニメーション内容のスタイルをとる。
// jQUery $('#foo').animate({'color': '#F00'}, 500);
対してjQueryUI.fn.switchClass()の引数はclass名そのもの。
// jQUeryUI // .alert { // color: #F00; // } $('#foo').switchClass('', 'alert', 500);
スタイルをjsファイルに書かずに済む(スタイルはcssファイルだけで完結)ことはメンテナンス性、可読性が高いと言える。
もちろんcallbackにも対応しているので詳細は UI/Effects/ClassTransitions - jQuery JavaScript Library を参照。
Mail::IMAPClientで新規メールがあったらim.kayac.comに通知する
このあたり参照のこと。
IMAP的なメールービスで新着メールを受信したらim.kayac.com経由でiPhone通知したかったので書いた。
#!/usr/bin/env perl use strict; use warnings; use HTTP::Request::Common; use LWP::UserAgent; use Mail::IMAPClient; my $url = 'http://im.kayac.com/api/post/foo@example.com'; my $ua = LWP::UserAgent->new; my $imap = Mail::IMAPClient->new( Server => 'xxx.xxxx.xxx', User => 'username', Password => 'password', ); if ( !$imap->select('INBOX') ) { notify("Failed get message from INBOX."); exit 0; } my @msgs = $imap->search('NEW'); if ( !@msgs ) { exit 0; } foreach my $msg (@msgs) { my $from = $imap->get_header( $msg, 'From' ); $from =~ s/<(.+)>/$1/msx; notify("You gat a mail from $from."); } $imap->logout; sub notify { my ($msg) = @_; $ua->request( POST $url, [ message => $msg ] ); }
ひさびさにPerl書いた。エラー処理が甘い...。
LinuxMintにUbuntu Oneをインストール
オンラインストレージサービスは
- Dropbox 更新が多いファイル & テキストファイル
- Ubuntu One 更新の少ないファイル & バイナリファイル(主にバックアップ用途)
のように使い分けている(理由は機会があったらそのときに)。
UbuntuだとUbuntu Oneは始めからインストールされているけれどもLinux Mintからは省かれてしまっているので、インストール方法と起動。
$ sudo apt-get install ubuntuone-control-panel-gtk ubuntuone-client desktopcouch-ubuntuone $ ubuntuone-control-panel-gtk
Ubuntu OneはWindowsにも対応していて、無料版だと初期容量が5GBとDropboxの2GBよりも多い。
ただし、Dropboxはベータ版モニター参加や友達紹介などで容量が増えるけれども、Ubuntu Oneにはそれがない。
容量はできるだけ多い方がいいけど、面倒臭がりで友達がいない人にはうってつけ。
jQuery.jsでiframeの高さを中身のコンテンツに合わせる
iframeの中身を扱うには.contents()を使用する。
$(document).ready(function(){ $('iframe').load(function() { $(this).css('height', $(this).contents().height() + 'px'); }); });
そんだけ。
と思ったらこれだとIEで取得できない(IE8で確認)。
.find('body')でbodyの高さをとってあげる必要がある。
$(document).ready(function(){ $('iframe').load(function() { $(this).css('height', $(this).contents().find('body').height() + 'px'); }); });
ボディ、ボディを狙え。
Cinnamonを試してみた
自宅と会社のマシン環境はLinuxMint12を使っている。
Linux Mintチーム、デスクトップ環境「Cinnamon 1.3」を公開 | エンタープライズ | マイナビニュース のCinnamonをさっそく試してみた。
LinuxMint環境での導入は至って簡単。
$ sudo apt-get install cinnamon
でおk。
あとは再起動して、ログイン画面でCinnamonを選択すれば良い。
ついでにExtensionのCoverflow Alt-Tabも試してみた。
これはスタイリッシュなAlt-Tab。
$ wget http://cinnamon-spices.linuxmint.com/uploads/extensions/BJCK-JBU4-KRTK.zip -O /tmp/BJCK-JBU4-KRTK.zip $ unzip /tmp/BJCK-JBU4-KRTK.zip -z ~/.local/share/cinnamon/extensions/
GUIメニューからcinnamon settingかターミナルからcinnamon-settingsを実行したら、Extensionsから「Coverflow Alt-Tab」を選択してもう一回再起動すると適用される。
世の中再起動したもん勝ち。