サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
買ってよかったもの
mitsuakikawamorita.com
Ubuntu 12.04で動作を確認しました。 要求事項としては、 – LAN内でのみ使う – セキュリティはゆるゆるでOK (自宅内を想定) – Windows 7、Macからマウントできて、読み書き可能 あたりです。Sambaはたいていどこかで躓くと思います、私も何十時間も費やしてきました。以下の設定で今のところは安定しているので、備忘録として残しておきます。内容は、 – Linuxの設定 (Sambaを動かすマシン) – Windows 7からのアクセス方法 – Macからのアクセス方法 です。 ただ、頑張ってLinuxのSambaと格闘するよりは、素直にQNAPとかのNAS買ったほうが良いと思います、私が最近購入したのはTS-131というものです。あっさり繋がりました。ただ機能が豊富すぎて全容が把握できていませんが。。。 – Linuxの設定 以下はUbuntuで動いた例ですが、他
範囲検索でindexの効き具合を調べたいと思いました。5個以上になるとindexが効かないなどと耳にしたような気がするので検証してみます。 ひとまず30個insertして、比較してみました。 結論から言うと、7個引っこ抜くときは、indexが有効。8個のときはfullscanになっていました。 詳しくは↓。 # MySQLのバージョン $ mysql --version mysql Ver 14.14 Distrib 5.5.29, for debian-linux-gnu (i686) using readline 6.2 # MySQLにログイン $ mysql -uroot -p # database一覧 mysql> show databases; +--------------------+ | Database | +--------------------+ | inform
Redisでの「keys*」みたいにしたいときはどうするかです。 流れ: 1. telnetで接続 2. “stats items” と打鍵 3. いろいろと出てくるが、”items:4:number 6″ みたいな、後ろの文字がnumberのものを探す 4. ↑の番号を使って、”stats cachedump 4 6″と打鍵 5. \一覧が取得できた/ or 出来なければ3に戻って、他の”items:数字:number 数字”のものを試す 6. おまけ。keyの中身を確かめるときは”get tweet_id:8″などとする。 具体例↓ # telnet 127.0.0.1 11211 Trying 127.0.0.1... Connected to 127.0.0.1. Escape character is '^]'. stats items STAT items:1:number 1
追記@2015-04-03 やはりいろいろと勘違いしておりました。JWTでencodeすれば暗号化されると思っていたのですが、暗号化ではなく署名が含まれいて改竄困難、の間違いでした。 たとえば↓の例で、 eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJrZXkxIjoidmFsdWUxIn0.w7Zzc7MkaUeLxKlBrXd3qyS2HPRpzp9OSSKrWl8Ma1g というjwtによるトークンが出てきますが、 <?php $header = urlsafeB64Decode('eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9'); echo $header; echo "\n"; $payload = urlsafeB64Decode('eyJrZXkxIjoidmFsdWUxIn0'); echo $payload; と
Raspberry Pi 2 Model B が届いてベンチマークを取ってみました。前回H2OというHTTPサーバーで遊んでみましたが、Raspberry Pi 2でそれをやってみたところ、2万req/secを達成出来ました。OSはRasbian(Linux raspberrypi 3.18.7-v7+ #755 SMP PREEMPT Thu Feb 12 17:20:48 GMT 2015 armv7l GNU/Linux )を使用しました。CPUのオーバークロックなどはしていません。 まずはインストール・立ち上げ方法を書いておきます。 $ sudo aptitude install cmake make gcc c++ libyaml-dev git $ git clone git clone https://github.com/h2o/h2o $ cd h2o # ↓cmakeで
最近、高速なサーバーソフトウェアとしてh2oを耳にするので試してみました。 https://github.com/h2o/h2o 結論から言うと高速でした。Ubuntu@Opteron3280で約16万req/sec以上出ています。今まで計測した中で最速で、OpenRestyより早いと思います。計測マシンの方がCPUを使いきって計測しきれませんでしたので、もっと出ると思います。 インストール方法を最初に書いておきます。ubuntuです。 # いろいろとインストール。これだけでは足りないと思います、OpenSSLとか必要かもです、適宜入れて下さい $ aptitude install cmake make gcc c++ libyaml-dev $ git clone git clone https://github.com/h2o/h2o $ cmake . $ make # confを編
一般的なWebサービスでは、クライアントの認証時にusernameとpasswordを入力してもらい、DBにあるsaltを使って入力されたpasswordを何度もhash化し、DBにあるそれと比較します。 saltは何バイト以上だとか、hash化の回数は何回だとか、hash関数はどうだとか、いろいろとあって面倒な上に間抜けな感じがするので、公開鍵暗号を使って認証を行ってみました。公開鍵をサーバーにおいておくならば、仮に流出しても問題ありません。公開鍵の名前の通り公開してもよいほどでしょう。もっと先進的なことを考えるのであればaltcoin等のアドレスにしてしまうなどもありでしょう。 スマートフォン等のクライアントであれば、秘密鍵を生成して保存しておくことは現実的です(ブラウザだと、cookieにせよ何にせよ消えてしまうのでよろしくないと思います)。 流れとしては、こんな感じです。 クライア
Redisのメモリ使用量(setについて、valueがstringとint、そしてttlを付加した場合)について Redisに対してストアするとどのぐらいメモリを使うのか調べました。表題のとおりです。 環境 – Mac OSX 10.8 – Redis 2.6.16 その1 – setでvalueがstring 方法 ある長さのkeyとある長さのvalueを、ある回数だけsetして、そのときのメモリ使用量を調査しました。 結果 1000 keys (key-byte: 24, value-byte: 24) Expectation : 46.9 [KB] Redis Memory: 148.6 [KB] (Expectationとは、素直に (keyとvalueの長さ) * 回数、を計算したものです) 結論 単純なsetですと、おおよそrawのbyte数の5倍程度使うようです。 Strin
Redisベンチマークの多くがlocalhostで行われていますが、実運用の際には別のノードになるはずです。となればスイッチやルーターやらを介するわけで環境はいろいろですね。というわけで様々な条件で計測してみます。随時更新予定です。 条件: # 実機情報 - Redisサーバー側 (MBPとする) -- redis-2.6.7 -- MacBookPro 2009 Mid -- MacOS X 10.8 Mountain Lion (Darwin Kernel Version 12.3.0) -- gcc version 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.11.00) - クライアント側 (MBとする) -- redis-2.6.7 -- MacBook 2009 Late -- MacOS X 10.8 Mou
前回の記事では、serf を試してみました。serf は、 – ノードのリストを提示 – 障害検知 – イベントフック をしてくれるものでした。しかしながらノード単位の検出です。もう少し細かい粒度で、つまりプロセス単位でやりたいですね。。。 私はよく Redis を使います。そこで今回は、Redis プロセスを監視し、フェイルオーバーしてくれる Redis Sentinel を使ってみました。イベントフックも出来るようですが試していません、そのうちやります。 今回試したことは、 – フェイルオーバー のみです。 Redis の2.6系と2.8系では、項目名など異なるようなので注意してください。 公式ドキュメントとして、Redis Sentinel Documentation を参考にしました。 今回は一台のマシンで試してみました。 本実験で一台のマシンに存在するプロセスは、 – Redis
追記@2013年10月24日 MacにOpenRestyをインストールする場合、makeで失敗することがありました。 $ make ~~~ 中略 ~~~ Undefined symbols for architecture x86_64: "_pcre_free_study", referenced from: _ngx_http_lua_regex_free_study_data in ngx_http_lua_regex.o ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation) make[2]: *** [objs/nginx] Error 1 make[1]: *** [build]
たとえば、http://hogehoge/~piyo みたいにユーザーディレクトリを使いたい場合がある。 vi /etc/httpd/conf/httpd.conf ↑として、↓のように編集。 <IfModule mod_userdir.c> UserDir enabled piyo UserDir public_html </IfModule> が、しかし、アクセスしてみると403になっているので、 cat /var/log/httpd/error_log としてみると、↓のような結果が帰ってくる。 [Fri Jul 13 00:20:44 2012] [error] [client 123.456.789.101] (13)Permission denied: access to /~piyo denied 困った…。いろいろと調べてみると二通りの原因が考えられるらしい。 – SELi
PHPではhash_algos()というメソッドを使うと、用意されているハッシュ化関数名一覧が出ます。それをhash()メソッドに入れてみて、さらに1000000回実行してパフォーマンス計測してみました。 結論としては、md2はやたらと遅い(変なバイナリなのではと思います。誰も使わないから古いものがそのまま残っている感)、SHA-3(keccak)も少々遅い(とは言えそれと同じぐらい遅いものもいくつもある上に、最近メジャーになってきたので最適化がまだまだかと)、といったところでしょうか。とは言え100万回計算してもどれも10秒以内ですから、かなり高速に感じます。特筆すべき点は特にないように思います。いわゆる暗号学的ハッシュ関数にもいろいろあるのですね。何を使えばいいのか悩むところですが、ひとまずSHA-3なのですかねぇ。とは言え出力の文字列が長いの気になるところ。。。ちなみにPHP5.4と
【シンボリックリンク危険】シンボリックリンクを rm -rf hoge/ してひどい目にあった件【ババーン!!キャー】 WordPressでアップロードした画像をバックアップしておこうと思って(WordPressのMySQLのデータベースについては定期的にmysqldumpが走っていて他のサーバーに保存しているのでOK)、このサーバー(mitsuakikawamorita.com)の中のWordPressの置き場所である、/var/lib/wordpress/wp-content へと、シンボリックリンクを貼った。 シンボリックリンクの名前をタイポしてしまったので、そのシンボリックリンクをrm -rfで消したら、/var/lib/wordpress/wp-content 以下のファイルが全部なくなってしまって、WordPressにアクセスできなくなりました。 完全に\(^o^)/ という感
Debian/Ubuntuのufwにすっかり慣れて、CentOS系のiptables直書きは辛くなってきたので、CentOSにufwを導入してみました。 CentOS 5.8 – ufwでファイアーウォールの設定 ↑だいたいこの通りやったら出来ました。ありがたし。 作業ログ(rootで作業を想定)↓ # cd /usr/local/src/ # wget https://launchpad.net/ufw/0.33/0.33/+download/ufw-0.33.tar.gz # tar zxvf ufw-0.33.tar.gz # cd ufw-0.33 # /usr/bin/python ./setup.py install # chmod -R g-w /etc/ufw /lib/ufw /etc/default/ufw /usr/sbin/ufw # ufw status # uf
先日8コアCPUが9980円で売っていて我慢できず買ってしまったので、VirtualBoxでVMでも作って並列計算の評価でもしてみようかと、VNCサーバーを立てようと思ったわけです。VirtualBoxは基本的にGUI、そしてマシンをいちいちモニタに接続するのは面倒なのでVNCを検討しました。ちなみにコマンドラインで使えるVagrantはなんかネットワークの設定がいまいち感あるので、実直にVirtualBoxを使います。 # vncserver用ユーザーを作ります。自宅鯖ならrootでもいいと思いますが。 $ sudo adduser vncuser $ su vncuser # ↓ or, tasksel と打って、Ubuntu Desktop を選択 $ sudo aptitude install gnome-core # vncserverをインストール $ sudo aptitud
英数字のランダム文字列のexampleはそこらへんに転がっていますが、日本語だと無かったので作ってみました。ただし、大文字ひらがなかつ小学1年生範囲の漢字のみ、ですが。 結構苦労しました、ナイーブにやると文字化けします。mb_substrとmb_strlenをutf-8と指定して使うのが肝です。 意外と採用のときのプログラミングの試験にいいかもです。制限時間30分みたいに。 class Util { static private $hiragana = 'あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわおん'; static private $kanji = '右雨王音火貝九玉金月犬見口左山子糸耳車手十女人水夕石川早足大竹虫天田土日年白文木目立力六一ニ三四五下七小上生中入八本円休出森正赤千男町名林花学気空校字青先草村百'; // 小学1年生で習う漢字
APIを作りたい+使ってみたい、てなわけで、最小サンプルらしきものを作ってみました。 # エラーコードなど全く書いていない最小のコードですので、実運用の際はこれではいけないと思います。 サーバー側: api.php↓ <?php date_default_timezone_set('Asia/Tokyo'); # ↑ タイムゾーンをセット $name = isset($_POST['name']) ? htmlspecialchars($_POST["name"], ENT_QUOTES) : "no name posted"; $uni = isset($_POST['uni']) ? htmlspecialchars($_POST["uni"], ENT_QUOTES) : "no uni name posted"; # ↑ POST送信を処理。三項演算子を用いて、中身が入っていないと
$ date +%s 1354127890 ↑これだけ!意外と載っていないので。。。(Mac, Linux 共通) また、UNIXTIMEを分かりやすく年月日で表示するコマンドは、 ↓Mac (*BSD系はこれ?) $ date -r "1354127890" 2012年 11月29日 木曜日 03時38分10秒 JST ↓Linux $ date -d "@1354127890" 2012年 11月 29日 木曜日 03:38:10 JST
動的に追加したいときってありますよね。ボタンをぽちっと押すと、新しいフォームが出てきたりとか。そんなん作りました。 具体例←開いてみてください ソース↓ <!DOCTYPE html> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <script> function add() { var div_element = document.createElement("div"); div_element.innerHTML = '<hr>Title: <br><input type="text" name="title" size="50" value="試験文字列"><br>Contents: <br><textarea name="contents"
SSH で User hoge not allowed because account is locked と怒られてログイン出来ない件 使用環境は、Red Hat Enterprise Linux(CentOSはそのほぼクローン) 6.2。sshでログイン出来無くて泣いていた。 原因は、ログインしたいユーザのパスワードを設定していないことだった。 http://fragments.g.hatena.ne.jp/hogem/20080924/1222215746 UsePam Noだと、ロックアカウント(パスワードが空)のユーザはログインできないらしい(鍵認証しようとしてもダメ) UsePam yesにするか、デタラメなパスワードつけるか。 のありがてえリンクでやっと分かりました。 教訓: 新規ユーザーにはパスワードを必ず設定しよう 具体的に泣いていた手順としては、 ———- – 新規ユー
環境: CentOS 6.3 minimal $ cat /etc/redhat-release CentOS release 6.3 (Final) とあるクラウド上で走らせているCentOS6.3 minimal。その時計が狂っていてたいへん困っていた。時間が大事になってくるサービスを動かしているのであまり大きくずれてほしくないのである。時間といえばntpdなので、入れてみたのだが、原因不明でなぜかntpdがうまく動いてくれない。ntp.nict.jpを指定しているし、動いているっぽいのだが、時間が合わず、乱れる。いつまでも同期されない。 messagesはこんな感じ↓上手く動いているっぽいのだが…。 $ cat /var/log/messages Oct 27 04:04:12 hoge ntpd[13973]: ntpd 4.x.xpx@x.xxxx-x Tue Nov 29 00
MySQL で ERROR! MySQL manager or server PID file could not be found! などと怒られるときには 環境: Mac OS (10.6), MySQL( by Macports) hoge $ mysql5 -u root -p Enter password: ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/opt/local/var/run/mysql5/mysqld.sock' (61) hoge $ sudo /opt/local/share/mysql5/mysql/mysql.server start Password: Starting MySQL SUCCESS! hoge $ mysql5 -u root -p Ente
ゲームをしていたら、定期的にラグるので気になっていた。何か変なプロセスが走っているに違いない。しかしWindowsでのログ取り方法が分からない。Linuxならコマンドラインでたくさんありそうなのに。いろいろと調べてみたら、PSToolsというものを発見。これでできるそうだ。 ↓ここ http://technet.microsoft.com/en-us/sysinternals/bb896649.aspx さっそくダウンロードして解凍し、そのフォルダに移動して、 C:\MyProgramFiles\PSTools>pslist.exe -s 3600 -r 3 > "F:\AutoRun.inf\plist.log" とすると、3600秒の間、つまり1時間、3秒周期でプロセスログを取り、それをplist.logに書き込む。このコマンドは、Ctrl+Cでとめることが出来る。上のコマンドを入力し
Mac の VirtualBox に CentOS 6.3 minimal をインストールしてターミナルから ssh で操作できるようにする 自分でクラウドインスタンスや物理的なサーバーを持っていると、ネットワークを経由するプログラムを開発・検証するのに楽ですが、自分のラップトップの内部で Linux システムを一個持っていると、インターネットに繋がっていない状態であっても快適に開発することが出来るので有効です。 Mac で仮想OSソフトを考えると、VMWare Fusion がありますが 5000円ぐらいするようです。私の用途ですと ssh で接続できれば OK でリッチな環境などいらないので、無償のものがあれば嬉しいですが、Oracle VirtualBox は無料のようです。さっそく使ってみて、ssh で接続まで出来ましたので、備忘録的に設定方法を書いておきます。 – まずは、Vir
NECの安鯖を購入したらIntel NICでした。なんとなくUbuntu 12.04LTS Server AMD64を入れました。ふと気になって、NICのドライバーを新しくしてみました。 注意!: aptitude update aptitude upgrade して、rebootしてから↓の作業をしたほうが良さそうです。一度、Linux Kernelが古いまま、ドライバをコンパルしてしまいました。ともかくも、aptitude update upgradeしてからrebootしてから↓の作業を始めましょう。 まずそもそものドライバの確認。dmesgして、ethXXXをgrepすればいいでしょう。(ethXXXが分からなければ、ifconfigしてみると分かるかと。。。) root@localhost $ dmesg | grep eth0 [ 1.401981] e1000e 0000:0
このページを最初にブックマークしてみませんか?
『mitsuakikawamorita.com』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く