use strict;
use warnings;
use Test::More;
my %hash = ( key1 => 'val1', key2 => 'val2' );
# スライス
my ( $a, $b ) = @hash{qw/key1 key2/};
is $a, 'val1', 'val1';
is $b, 'val2', 'val2';
# keysを使っても取れるが、順番はランダム
my ( $a1, $b1 ) = @hash{ keys %hash };
is_deeply + { $a1 => 1, $b1 => 1 }, +{ 'val1' => 1, 'val2' => 1 }, "keys";
# ハッシュリファレンスでも使えます
my $hash = +{ key1 => 'val1', key2 => 'val2' };
my ( $a2, $b2 ) = @$hash{qw/key1 key2/};
is $a2, 'val1', 'hash ref val1';
is $b2, 'val2', 'hash ref val2';
# マージにも使えますね
my $hash1 = +{ key1 => 'val1', key2 => 'val2' };
my $hash2 = +{ key3 => 'val3', key4 => 'val4' };
my $ret = +{
key1 => 'val1',
key2 => 'val2',
key3 => 'val3',
key4 => 'val4',
};
@$hash2{ keys %$hash1 } = @$hash1{ keys %$hash1 };
is_deeply $hash2, $ret, 'merge';
# 単純なマージならこれでもできます
my $hash3 = +{ %$hash2, %$hash1 };
is_deeply $hash3, $ret, 'merge2';
done_testing;
perlスライス
perlのスライスってわかりづらいよね。
vimのシンタックスハイライト
vimを使ってテンプレートエンジンを編集するときに、
色が出ないよーってことでいろいろ設定してみました。
ここからファイル(tt2.tar.gz)をダウンロード
http://www.vim.org/scripts/script.php?script_id=830
~/.vim/syntax/を作る(なければ)
ダウンロードしたファイル(tt2.vim,tt2html.vim)をコピーする
シンタックスハイライトを設定する
au BufNewFile,BufRead *.mt setf tt2html
色が出ないよーってことでいろいろ設定してみました。
ここからファイル(tt2.tar.gz)をダウンロード
http://www.vim.org/scripts/script.php?script_id=830
~/.vim/syntax/を作る(なければ)
ダウンロードしたファイル(tt2.vim,tt2html.vim)をコピーする
シンタックスハイライトを設定する
au BufNewFile,BufRead *.mt setf tt2html
mysqldumpでバックアップ
mysqldumpを使ってmysqlのバックアップをとる
ただピンポイントでやりたい場合、既にあるSQLにちょっと追加したい場合など、
lvやlessでコピペしたい
ただピンポイントでやりたい場合、既にあるSQLにちょっと追加したい場合など、
lvやlessでコピペしたい
mysqldump -uroot data-base-name
いろいろなperlを持っているPCの実行
scriptの先頭に#!/usr/bin/perl ってかかれてるのに(shebang 行というらしい)、
実際にはperlbrewでいれたperl~/perl5/...にあるやつを使いたい。
これで大丈夫。
実際にはperlbrewでいれたperl~/perl5/...にあるやつを使いたい。
#!/usr/bin/env perl
これで大丈夫。
perlで同じようなメソッドを楽に定義する
同じような処理をする似たようなメソッドはfor文使って楽しちゃいましょう。
例えば、
こんなやつはこんな感じでやっつけちゃいましょ。
例えば、
sub debug {
my ($self, @args) = @_;
$self->log->debug(@args);
}
sub info {
my ($self, @args) = @_;
$self->log->info(@args);
}
sub warn {
my ($self, @args) = @_;
$self->log->warn(@args);
}
こんなやつはこんな感じでやっつけちゃいましょ。
for my $name (qw/debug info warn/) {
no strict 'refs';
*{$name} = sub {
my ($self, @args) = @_;
$self->log->$name(@atgs);
}
}
DBIモジュール
DBIモジュールに付いて調べる
1レコードづつ取得する
selectrow_array => 配列
selectrow_arrayref => 配列リファレンス
selectrow_arrayref => ハッシュリファレンス
複数レコード取得
selectall_arrayref => 配列リファレンス
selectall_arrayref (Slice[]) => 配列リファレンス
selectall_arrayref (Slice+{}) => ハッシュリファレンス
selectall_arrayref (Columns) => ハッシュリファレンス
selectall_hashref => ハッシュリファレンス
1レコードづつ取得する
selectrow_array => 配列
my @ret = $dbh->selectrow_array(
'select user_id, reg_date, nickname from user_data');
is_deeply \@ret, [ 10001, 1297573789, 'はるく' ];
selectrow_arrayref => 配列リファレンス
my $ret = $dbh->selectrow_arrayref(
'select user_id, reg_date, nickname from user_data');
is_deeply $ret, [ 10001, 1297573789, 'はるく' ];
selectrow_arrayref => ハッシュリファレンス
my $ret = $dbh->selectrow_arrayref(
'select user_id, reg_date, nickname from user_data');
is_deeply $ret, +{ user_id => 10001, reg_date => 1297573789, nickname => 'はるく' };
複数レコード取得
selectall_arrayref => 配列リファレンス
my $ret = $dbh->selectall_arrayref('select user_id, reg_date, nickname from user_data');
is_deeply $ret, [[10001, 1234567, 'はるく'], [10002, 1234567, 'ひかり']];
selectall_arrayref (Slice[]) => 配列リファレンス
my $ret = $dbh->selectall_arrayref('select user_id, reg_date, nickname from user_data', +{ Slice => []});
is_deeply $ret, [[10001, 1234567, 'はるく'], [10002, 1234567, 'ひかり']];
selectall_arrayref (Slice+{}) => ハッシュリファレンス
my $ret = $dbh->selectall_arrayref('select user_id, reg_date, nickname from user_data', +{ Slice => +{}});
is_deeply $ret, [ +{ user_id => 10001, reg_date => 1234567, nickname => 'はるく'}, ... ];
selectall_arrayref (Columns) => ハッシュリファレンス
my $ret = $dbh->selectall_arrayref('select user_id, reg_date, nickname from user_data', +{ Columns +{}});
is_deeply $ret, [ +{ user_id => 10001, reg_date => 1234567, nickname => 'はるく'}, ... ];
selectall_hashref => ハッシュリファレンス
my $ret = $dbh->selectall_hashref($sql, 1); # user_idでも一緒
is_deeply $ret => +{
10001 => +{ user_id => 10001, reg_date => 12345, nickname="はるく"},
10002 => +{ user_id => 10002, reg_date => 12346, nickname="ひかり"},
}
my $ret = $dbh->selectall_hashref($sql, [1, 2]); # qw/user_id reg_date/でも一緒
is_deeply $ret => +{
10001 => +{ 12345 => +{ user_id => 10001, reg_date => 12345, nickname="はるく"} },
10002 => +{ 12346 => +{ user_id => 10002, reg_date => 12346, nickname="ひかり"} },
}
vimをより良くするよ
インストールしているもの。
コマンド
Ctrl-w + カーソルのある画面を一行分大きくする
Ctrl-w + カーソルのある画面を一行分小さくする
Ctrl-w > カーソルのある画面を右にー列大きくする
Ctrl-w < カーソルのある画像を左に一列大きくする
Ctrl-w = 画面のサイズを同じにする
プラグイン
補完機能
オートクローズ
自動で'"(などを入力shしたときに閉じてくれる
ツリー型ファイルエクスプローラ
タグ
タグリストを表示
コマンド
Ctrl-w + カーソルのある画面を一行分大きくする
Ctrl-w + カーソルのある画面を一行分小さくする
Ctrl-w > カーソルのある画面を右にー列大きくする
Ctrl-w < カーソルのある画像を左に一列大きくする
Ctrl-w = 画面のサイズを同じにする
プラグイン
補完機能
acp.vim
オートクローズ
autoclose.vim
自動で'"(などを入力shしたときに閉じてくれる
ツリー型ファイルエクスプローラ
opsplorer.vim
タグ
taglist.vim
タグリストを表示
Google Map APIメモ
表示したマップの緯度経度を取得
var myOptions = {
zoom: 14,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
var latlngBounds = map.getBounds();
// 中央
latlngBounds.getCenter();
// 北東端
latlngBounds.getNorthEast();
// 南西端
latlngBounds.getSouthWest();
geohashの調査
位置情報のgeohashについての調査
ある地点(DeNA本社)の位置を基準に周囲の情報を取る場合、
geohashをつかってやろうとすると、
ここまではよいが、geohash特有の先頭x文字だけ使って範囲を絞っていくと、
よく考えればそうだけど、左下範囲が選択されることになる。
xn76fxzjgg 地図上に現れる
http://aligach.net/geohash/geohash_visualizer2.html#xn76fxzjgg,19,500,400
xn76fxz 右側に拡大
http://aligach.net/geohash/geohash_visualizer2.html#xn76fxz,18,500,400
xn76fx 大きく左側に拡大
http://aligach.net/geohash/geohash_visualizer2.html#xn76fx,15,500,400
xn76fx 大きく左側に拡大
http://aligach.net/geohash/geohash_visualizer2.html#xn76fx,15,500,400
これぐらいでいいか
ある地点(DeNA本社)の位置を基準に周囲の情報を取る場合、
geohashをつかってやろうとすると、
139.689949864418, 35.6832269343074 => xn76fxzjgg85feqxv9h8t
ここまではよいが、geohash特有の先頭x文字だけ使って範囲を絞っていくと、
よく考えればそうだけど、左下範囲が選択されることになる。
xn76fxzjgg 地図上に現れる
http://aligach.net/geohash/geohash_visualizer2.html#xn76fxzjgg,19,500,400
xn76fxz 右側に拡大
http://aligach.net/geohash/geohash_visualizer2.html#xn76fxz,18,500,400
xn76fx 大きく左側に拡大
http://aligach.net/geohash/geohash_visualizer2.html#xn76fx,15,500,400
xn76fx 大きく左側に拡大
http://aligach.net/geohash/geohash_visualizer2.html#xn76fx,15,500,400
これぐらいでいいか
jQuery Mobileをつかう
リンクでページ遷移をする場合、基本ajaxで行ってるみたい。
直接遷移して欲しい時はaタグの場合
を付ける
formタグの場合は
をつける
すべてを無効にする場合
1.config.jsを作成
2.jqueryの読み込みを見込ませる。
読み込ませる順番も大事 jquery.js => config.js => jquery.mobile.js
直接遷移して欲しい時はaタグの場合
rel="external"
を付ける
formタグの場合は
data-ajax="false"
をつける
<a href="/hoge" rel="external">りんく</a>
....
<form action="/hoge" action="post" data-ajax="false">
<input type="submit" value="GO">
</form>
すべてを無効にする場合
1.config.jsを作成
$(document).bind("mobileinit", function(){
$.mobile.ajaxLinksEnabled = false; // Ajax を使用したページ遷移を無効にする
$.mobile.ajaxFormsEnabled = false; // Ajax を使用したフォーム遷移を無効にする
});
2.jqueryの読み込みを見込ませる。
読み込ませる順番も大事 jquery.js => config.js => jquery.mobile.js
<script type="text/javascript" src="/static/js/jquery.1.5.0.min.js"></script>
<script type="text/javascript" src="/static/js/config.js"></script>
<script type="text/javascript" src="/static/js/jquery.mobile-1.0a3.min.js"></script>
google blogの投稿フォーマット
コード引用
エスケープ
<pre style="background: none repeat scroll 0pt 0pt rgb(247, 247, 247); border: 1px solid rgb(215, 215, 215); margin: 1em 1.75em; overflow: auto; padding: 0.25em;">
ココにコードを書く
</pre>
use strict;
use warnings;
sub hoge {
my $args = shift;
}
1;
エスケープ
「&」----&
「>」---->
「<」----<
「"」----":
gitの設定
~/.gitconfigの設定。
このままコピペで大丈夫。
このままコピペで大丈夫。
[user]
name = ******
email = ******
[color]
ui = auto
[alias]
co = checkout
st = status
di = diff
br = branch
ci = "commit -a"
[core]
pager = lv -c
iPhoneをMacに接続したときにiPhotoを起動させない
自宅に充電器がないので、充電だけしたいのに、いつもよけいなiPhotoが起動してしまう。
そこで、えいっと消したいんだがiPhotoの設定には見つからず。
じつは「イメージキャプチャ」というものが絡んでいました。
iPhoneを接続した状態で、
「アップリケーション」=>「イメージキャプチャ.app」
を起動すると、左下に「このiPhoneを接続時に開くアプ...」となっているところを「割り当てなし」に選択すると、接続しただけでは表示されません。
べつに変な写真が入ってるわけじゃないからね。
そこで、えいっと消したいんだがiPhotoの設定には見つからず。
じつは「イメージキャプチャ」というものが絡んでいました。
iPhoneを接続した状態で、
「アップリケーション」=>「イメージキャプチャ.app」
を起動すると、左下に「このiPhoneを接続時に開くアプ...」となっているところを「割り当てなし」に選択すると、接続しただけでは表示されません。
べつに変な写真が入ってるわけじゃないからね。
perltidyをインストールしてみた
インストールはいたって簡単
そうすると、perltidyがインストールされる。
あとはそれを使い綺麗にしてもらう。
エディターなんかに登録すると、らくちん
~/.vimrcに
を追加して、
,ptvを入力すると選択している箇所が、
,ptを入力すると、ファイル全体を綺麗にしてくれます。
ついでに~/.perltidyrcも公開
$ cpanm install Perl::Tidy
そうすると、perltidyがインストールされる。
$ which perltidy
/usr/local/bin/perltidy
あとはそれを使い綺麗にしてもらう。
perltidy old_sample.pl -o old_sample.pl
エディターなんかに登録すると、らくちん
~/.vimrcに
map ,ptv:'<,'>! perltidy
map ,pt:%! perltidy
を追加して、
,ptvを入力すると選択している箇所が、
,ptを入力すると、ファイル全体を綺麗にしてくれます。
ついでに~/.perltidyrcも公開
-l=78 # Max line width is 78 cols
-i=4 # Indent level is 4 cols
-ci=4 # Continuation indent is 4 cols
#-b # backup
#-st # Output to STDOUT
-se # Errors to STDERR
-vt=0 # vertical tightness
-cti=0 # Closing Token Placement
-pt=1 # Medium parenthesis tightness
-bt=1 # Medium brace tightness
-sbt=1 # Medium square brace tightness
-bbt=1 # Medium block brace tightness
-nsfs # No space before semicolons
-nolq # Don't outdent long quoted strings
-bbvt=1
-bar
-ce
-nsbl
#-sot
#-lp
# Break before all operators
# -nibc コメントが先頭にくる
# -olc
# -isbc
-wbb="% + - * / x != == >= <= =~ !~ < > | & >= < = **= += *= &= <<= &&= -= /= |= >>= ||= .= %= ^= x="
.bashrcを大公開
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
export PS1="[\u@\h \w]\\$ "
PROMPT_COMMAND='echo -ne "\033]0;$(whoami)@$(hostname):$(pwd)\007"'
# svn
export SVN_EDITOR="vim"
alias svn_diff="svn diff --diff-cmd svn-diff"
# git
source ~/.git-completion.bash
# command
alias exec_vim="/Applications/MacVim.app/Contents/MacOS/MacVim &"
alias cp='cp -i'
alias mv='mv -i'
export PS1="[\u@\h \w]\\$ "
PROMPT_COMMAND='echo -ne "\033]0;$(whoami)@$(hostname):$(pwd)\007"'
# svn
export SVN_EDITOR="vim"
alias svn_diff="svn diff --diff-cmd svn-diff"
# git
source ~/.git-completion.bash
# command
alias exec_vim="/Applications/MacVim.app/Contents/MacOS/MacVim &"
.screenrcを大公開
escape ^Z^Z
bind a title
bind ^u encoding utf8
bind ^j encoding sjis
bind ^e encoding euc-jp
# バッファーサイズ
defscrollback 100000
# vim,lessを閉じたときに画面を元に戻す(on) 戻さない(off)
altscreen off
autodetach on
caption always "%{=r dd} %-w%{=d dd}%n %t%{-}%+w %= %{=r dd}"
screen -t "localhost"
shell bash
term xterm-256color
termcapinfo xterm 'is=^[r^[m^[2J^[H^[?7h^[?1;4;6l'
bind a title
bind ^u encoding utf8
bind ^j encoding sjis
bind ^e encoding euc-jp
# バッファーサイズ
defscrollback 100000
# vim,lessを閉じたときに画面を元に戻す(on) 戻さない(off)
altscreen off
autodetach on
caption always "%{=r dd} %-w%{=d dd}%n %t%{-}%+w %= %{=r dd}"
screen -t "localhost"
shell bash
term xterm-256color
termcapinfo xterm 'is=^[r^[m^[2J^[H^[?7h^[?1;4;6l'
Mac OSXにhomebrewでmysqlをインストール
どうもrootのパスワードが設定できなくて、2回ぐらいuninstallしましたが、
テーブル定義?(/usr/local/var/mysql/)がのこっていたので、うまくいかず、
まっさらな状態にするとインストールできました
$ brew uninstall mysql
$ rm -r /usr/local/var/mysql
インストール
$ brew install mysql
==> Downloading http://mysql.mirrors.pair.com/Downloads/MySQL-5.1/mysql-5.1.54.tar.gz
[省略]
==> Caveats
Set up databases with:
unset TMPDIR
mysql_install_db
If this is your first install, automatically load on login with:
cp /usr/local/Cellar/mysql/5.1.54/com.mysql.mysqld.plist ~/Library/LaunchAgents
launchctl load -w ~/Library/LaunchAgents/com.mysql.mysqld.plist
If this is an upgrade and you already have the com.mysql.mysqld.plist loaded:
launchctl unload -w ~/Library/LaunchAgents/com.mysql.mysqld.plist
cp /usr/local/Cellar/mysql/5.1.54/com.mysql.mysqld.plist ~/Library/LaunchAgents
launchctl load -w ~/Library/LaunchAgents/com.mysql.mysqld.plist
Note on upgrading:
We overwrite any existing com.mysql.mysqld.plist in ~/Library/LaunchAgents
if we are upgrading because previous versions of this brew created the
plist with a version specific program argument.
Or start manually with:
mysql.server start
==> Summary
/usr/local/Cellar/mysql/5.1.54: 220 files, 45M, built in 8.2 minutes
ひとまずインストール完了
上記のコマンドをそのままやっても良いが、
自動的に起動してほしくないので、
セットアップのみ実行
$ mysql_install_db
$ mysql.server start
$ /usr/local/Cellar/mysql/5.1.54/bin/mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MySQL to secure it, we'll need the current
password for the root user. If you've just installed MySQL, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
Enter current password for root (enter for none):
OK, successfully used password, moving on...
Setting the root password ensures that nobody can log into the MySQL
root user without the proper authorisation.
[ルートのパスワード設定しますか?]
Set root password? [Y/n] Y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
... Success!
By default, a MySQL installation has an anonymous user, allowing anyone
to log into MySQL without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.
[ルート以外のユーザは削除する?]
Remove anonymous users? [Y/n] n
... skipping.
Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.
[リモートからルートのログインする?]
Disallow root login remotely? [Y/n] Y
... Success!
By default, MySQL comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.
[テスト用のデータベースは削除する?]
Remove test database and access to it? [Y/n] n
... skipping.
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
[今すぐ設定を反映させる?]
Reload privilege tables now? [Y/n] Y
... Success!
Cleaning up...
All done! If you've completed all of the above steps, your MySQL
installation should now be secure.
Thanks for using MySQL!
テーブル定義?(/usr/local/var/mysql/)がのこっていたので、うまくいかず、
まっさらな状態にするとインストールできました
$ brew uninstall mysql
$ rm -r /usr/local/var/mysql
インストール
$ brew install mysql
==> Downloading http://mysql.mirrors.pair.com/Downloads/MySQL-5.1/mysql-5.1.54.tar.gz
[省略]
==> Caveats
Set up databases with:
unset TMPDIR
mysql_install_db
If this is your first install, automatically load on login with:
cp /usr/local/Cellar/mysql/5.1.54/com.mysql.mysqld.plist ~/Library/LaunchAgents
launchctl load -w ~/Library/LaunchAgents/com.mysql.mysqld.plist
If this is an upgrade and you already have the com.mysql.mysqld.plist loaded:
launchctl unload -w ~/Library/LaunchAgents/com.mysql.mysqld.plist
cp /usr/local/Cellar/mysql/5.1.54/com.mysql.mysqld.plist ~/Library/LaunchAgents
launchctl load -w ~/Library/LaunchAgents/com.mysql.mysqld.plist
Note on upgrading:
We overwrite any existing com.mysql.mysqld.plist in ~/Library/LaunchAgents
if we are upgrading because previous versions of this brew created the
plist with a version specific program argument.
Or start manually with:
mysql.server start
==> Summary
/usr/local/Cellar/mysql/5.1.54: 220 files, 45M, built in 8.2 minutes
ひとまずインストール完了
上記のコマンドをそのままやっても良いが、
自動的に起動してほしくないので、
セットアップのみ実行
$ mysql_install_db
$ mysql.server start
$ /usr/local/Cellar/mysql/5.1.54/bin/mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MySQL to secure it, we'll need the current
password for the root user. If you've just installed MySQL, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
Enter current password for root (enter for none):
OK, successfully used password, moving on...
Setting the root password ensures that nobody can log into the MySQL
root user without the proper authorisation.
[ルートのパスワード設定しますか?]
Set root password? [Y/n] Y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
... Success!
By default, a MySQL installation has an anonymous user, allowing anyone
to log into MySQL without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.
[ルート以外のユーザは削除する?]
Remove anonymous users? [Y/n] n
... skipping.
Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.
[リモートからルートのログインする?]
Disallow root login remotely? [Y/n] Y
... Success!
By default, MySQL comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.
[テスト用のデータベースは削除する?]
Remove test database and access to it? [Y/n] n
... skipping.
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
[今すぐ設定を反映させる?]
Reload privilege tables now? [Y/n] Y
... Success!
Cleaning up...
All done! If you've completed all of the above steps, your MySQL
installation should now be secure.
Thanks for using MySQL!
memcached の中身を見る
memcachedに接続する方法
$ telnet localhost 11211
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
statでいろいろな情報を表示(よくわからない・・・。)
$ stat
STAT pid 7692
STAT uptime 19177
STAT time 1297328806
STAT version 1.2.6
STAT pointer_size 32
STAT rusage_user 0.017997
STAT rusage_system 0.058991
STAT curr_items 83
STAT total_items 163
STAT bytes 21606
STAT curr_connections 5
STAT total_connections 500
STAT connection_structures 9
STAT cmd_get 406
STAT cmd_set 163
STAT get_hits 234
STAT get_misses 172
STAT evictions 0
STAT bytes_read 46646
STAT bytes_written 23103
STAT limit_maxbytes 67108864
STAT threads 4
END
コマンド形式は
[]\r\n
取得は
# get hoge
VALUE hoge 0 3
var
設定は
# set hoge 0 5 3
# var
STORED
ちなみに、こっちでも表示することが可能
$ memcached-tool localhost dump
$ telnet localhost 11211
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
statでいろいろな情報を表示(よくわからない・・・。)
$ stat
STAT pid 7692
STAT uptime 19177
STAT time 1297328806
STAT version 1.2.6
STAT pointer_size 32
STAT rusage_user 0.017997
STAT rusage_system 0.058991
STAT curr_items 83
STAT total_items 163
STAT bytes 21606
STAT curr_connections 5
STAT total_connections 500
STAT connection_structures 9
STAT cmd_get 406
STAT cmd_set 163
STAT get_hits 234
STAT get_misses 172
STAT evictions 0
STAT bytes_read 46646
STAT bytes_written 23103
STAT limit_maxbytes 67108864
STAT threads 4
END
コマンド形式は
取得は
# get hoge
VALUE hoge 0 3
var
設定は
# set hoge 0 5 3
# var
STORED
ちなみに、こっちでも表示することが可能
$ memcached-tool localhost dump
登録:
投稿 (Atom)
ReactNativeでAndroid対応する話
前提 ReactNativeでiOS版のアプリをリリースしていて、Android版をリリースする話 トラブルシューティング Build.VERSION_CODES.Q が存在しないエラー compileSdkVersionを29以上にすると解決 メモリー足りないエラー Execu...
-
perlにおいて例外を発生するやり方は、普通、warnとかdieとかですが、コール元の情報が表示されないため、例外が発生して事が分かっても、どのように呼ばれて例外が発生したのか分かりづらい事が多々あります。(たぶん) そんなこんなで、より解析しやすいcarp/croakをちょっと...
-
Fastlaneを使ってデバイスの登録を行い、Provisioning Profileへの追加、Xcodeの更新を行う デバイスの追加 register_devicesで追加 https://docs.fastlane.tools/actions/#register...
-
UILabelの高さ取得に気をつけること 1. xibやstoryboradの指定したFontと、プログラムで指定しているフォントは同じかどうか 2. viewDidLoad時ではまだviewのサイズが決まっていない ロジック NSString func...