Hatena::ブログ(Diary)

satoru.netの自由帳 このページをアンテナに追加 RSSフィード

180112Friday

coincheck-API perl

#!/usr/bin/perl

use HTTP::Tiny;
use Digest::SHA qw/hmac_sha256_hex/;
use strict;

my $ACCESS_KEY = ACCESS_KEY;
my $SECRET_KEY = SECRET_KEY;

my $dt = time*10000;
my $url = "https://coincheck.com/api/ticker";
my $signature = hmac_sha256_hex($dt . $url ,$SECRET_KEY);
my $tiny = new HTTP::Tiny(
	default_headers => {
		"ACCESS-KEY" => $ACCESS_KEY,
		"ACCESS-NONCE"=> $dt,
		"ACCESS-SIGNATURE"=> $signature,
	}
);

my $res = $tiny->get("$url");
print $res->{content};

131022Tueday

[]openpne 2.x アクセスブロックページで相手のニックネーム&IDを表示させる

相手のプロフページのリンクを踏むと、エラーページにリダイレクトされる仕様なので、

「先にアクセスブロックされると、相手のIDがわからなくて泣き寝入りするしかない!どうにかして!」

というご相談がユーザから着たので対応。

アクセスブロックされたエラーページで相手のニックネーム、IDを表示させるように修正。

まあ、ちょっと詳しい人ならURLみればわかるんだけどねえ。。


1.アクセスブロック時にmember_idのパラメータを付与させてからリダイレクトするように

/webapp/modules/pc/page/f_home.php 28行目あたり

        if (db_member_is_access_block($u, $target_c_member_id)) {
            openpne_redirect('pc', 'page_h_access_block',array("target_c_member_id" => $target_c_member_id));
        }

2.飛んできたパラメータテンプレ変数にセット

/webapp/modules/pc/page/h_access_block.php 14行目あたり

        if($_REQUEST['target_c_member_id'] && preg_match("/^\d+$/",$_REQUEST['target_c_member_id'])){
         $target_c_member = db_member_c_member_with_profile($_REQUEST['target_c_member_id'], 'private');
         $this->set('target_c_member', $target_c_member);
        }

3.validationを設置(数値の改変予防)

/var/www/sites/pocha3.com/webapp/modules/pc/validate/page

[target_c_member_id]
type = "int"
required = 0
min = 1

4.エラーページのテンプレHTML

/var/www/sites/pocha3.com/webapp/modules/pc/templates/h_access_block.tpl 適当なとこに

<div class="block">
<p>大変、申し訳ございません。<br>
({if $target_c_member})
({$target_c_member.nickname})さん (ID:({$target_c_member.c_member_id})) のページにはアクセスできません。</p>
({else})
申し訳ございませんがこのメンバーのページにはアクセスできません。
({/if})
</div>

111123Wedday

googleクローラーの速度はサイトによって違うメモ

googleウェブマスターツールでサイトによって最高速度の閾値が違うらしい。

何らかの基準でリミッターが増減するっぽい。実際、どーなんだろ?っていうメモ。

アクセスが多めのサイトA

f:id:satoru_net:20111123113412p:image

最近はじめたばっかのサイトB

f:id:satoru_net:20111123113413p:image

実際に設定通りきてるのかチェック:アクセスが多めのサイトA

最高3.6/sec、最少1.1/sec。平均的には2/secくらいのよーだ。

コマンド

sudo perl -e 'for(`grep "Googlebot" /var/log/httpd/access_log.111121`){$h{(m@\d{4}:(\d+)@)[0]}++} ; for("00".."23"){print qq{$_:00 $h{$_} @{[sprintf "%.1f",$h{$_}/3600]}/sec\n}}'

結果

00:00 4035 1.1/sec

01:00 6536 1.8/sec

02:00 11100 3.1/sec

03:00 10716 3.0/sec

04:00 9863 2.7/sec

05:00 12898 3.6/sec

06:00 10727 3.0/sec

07:00 8970 2.5/sec

08:00 8465 2.4/sec

09:00 8765 2.4/sec

10:00 9518 2.6/sec

11:00 10069 2.8/sec

12:00 10841 3.0/sec

13:00 12304 3.4/sec

14:00 10070 2.8/sec

15:00 10103 2.8/sec

16:00 10431 2.9/sec

17:00 9790 2.7/sec

18:00 9378 2.6/sec

19:00 7138 2.0/sec

20:00 7297 2.0/sec

21:00 8494 2.4/sec

22:00 7920 2.2/sec

23:00 4433 1.2/sec


実際に設定どおりにきているのかチェック:最近始めたばっかのサイトB

最高1.0/sec、最少0.5/sec。平均的には0.8/secくらいのよーだ。

結果

00:00 1933 0.5/sec

01:00 2152 0.6/sec

02:00 2590 0.7/sec

03:00 2520 0.7/sec

04:00 2704 0.8/sec

05:00 2446 0.7/sec

06:00 2164 0.6/sec

07:00 1842 0.5/sec

08:00 2677 0.7/sec

09:00 3449 1.0/sec

10:00 2854 0.8/sec

11:00 2440 0.7/sec

12:00 2324 0.6/sec

13:00 1697 0.5/sec

14:00 2030 0.6/sec

15:00 2200 0.6/sec

16:00 3223 0.9/sec

17:00 3290 0.9/sec

18:00 2726 0.8/sec

19:00 2451 0.7/sec

20:00 2587 0.7/sec

21:00 2379 0.7/sec

22:00 2462 0.7/sec

23:00 2760 0.8/sec

合計

$ sudo grep "Googlebot" /var/log/httpd/access_log.111121 | wc -l

219861

Apacheのログを特定時間だけ吐かないようにする

22:00-01:00台のサーバ混雑時間だけApacheのログを吐かないようにしたくて

Apacheをrestartしないでログを制御する方法なんかないかなーって思ってたら、

.htaccess内でSetEnvすればいいだけだったわーっていうメモ

httpd.conf

LogFormat "%v %a %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

SetEnvIf Request_URI "\.(js)|(gif)|(png)|(jpg)|(ico)|(css)|(JPG)|(GIF)|(CSS)$" noLog

CustomLog "|/usr/sbin/rotatelogs /var/log/httpd/access_log.%y%m%d 86400 540" combined env=!noLog

cronで.htaccess制御

$ crontab -e

0 22 * * * /bin/echo "SetEnv noLog 1" > /(path)/.htaccess 2>&1

0 1 * * * /bin/rm /(path)/.htaccess > /dev/null 2>&1

100820Friday

こどもようプログラム言語いろいろ

プログラミン

http://www.mext.go.jp/programin/

flashベース。文部科学省が公開。2010/8/19にオープン。

子供が親しみやすいデザイン、分かりやすいUI。

それに作ったゲームを簡単に公開できる所が今時ですごく良い。

やっぱしプログラムの一番のおもしろさは、誰かに使ってリアクションがあった時だもんね。


実際に手を動かした開発会社は、株式会社バスキュールというFlash構築をメインでやってるとこで、

Twitter上では、@boku@bokuyoshy125@niumとかで現場の職人の方々の声を直接見ることもできる。


f:id:satoru_net:20100820143434p:image

scratch

http://scratch.mit.edu/

javaベース。マサチューセッツ工科大学のMIT Media Labが開発。

子どもたちがOSS活動、プログラミング言語「Scratch」が開く未来って記事でも取り上げられてた。

作品一覧をみると色合いとかが海外っぽさがよくでてておもしろい。

機能的にはこっちのほうがより細かいカスタマイズができるし

より高度なことができるようだ。

f:id:satoru_net:20100820143432p:image

small basic

http://msdn.microsoft.com/en-us/beginner/ff384126.aspx

Microsoft製。一応、キッズ用にはなってるけど普通にソースコードを書く。

正直ここまでくると、普通の言語でもいいんじゃねーかって気がしてくるけど、

マイクロソフトだし、まいっか。オフィシャルページは→http://smallbasic.com/

ビスケット

http://develop.viscuit.com/c/

flashベース。NTTコミュニケーションが開発。

ツールを触ってみた感じだと正直UIが残念だった。

思考ロジックとかがないのでプログラミングっていえるほどのものなのかはちょっと疑問。

プログラム以前に、コンピューターっておもしろいんだよ!って事を伝えるくらいかな?

小学生以下の、幼児向けとかであれば、こんなかんじでもいい気はする。

f:id:satoru_net:20100820143430p:image

その他いろいろ

子供用プログラム言語って他にも色々あるみたいだ。

子供向けのオープンソース・プログラミング言語

特に子供用ってわけじゃないけど、「ビジュアルプログラミング言語」って検索しても色々出てくる。

Wikipedia:ビジュアルプログラミング言語にも良くまとまってるので興味ある人は。

100819Thuday

[]『プログラミン』でパックマソつくってみた

プログラミンで、「ぱっくまそ」と「おとうさん、あれなにしてるの?」というプログラムをつくったよ

ぱっくまそ

元ネタはgdd2010のpacmanのクイズ

おとうさん、あれなにしてるの?

なんとなくシルエット見てたら思いついた。こどもはみちゃいけません!

つくりかた

↓下記参照

http://d.hatena.ne.jp/fk_2000/20100817/1282035808

おもろー

他にも、大きいお兄さんたちが色々たくさんつくってるよーだ。文部省はじまったなw

http://twitter.com/#search?q=%23programin

おもしろポイント

  • いわゆる変数とかif文だとかがない中、最低限の環境のなかで自分の要求をいかに実現できるかを考えるのがおもしろいかも。
  • 例えば、数字のカウント系をするときは、積み木を一定の高さに置いて、積み木同士がぶつかったら…みたいなことをする
  • アイディア次第で何でも発展できるところが、プログラムのおもしろさをよく表現しておる

こんなすごいサイト、どこがつくってるのか?

調べてみたらcrossdomainの記述で発見。

http://61.58.40.124/crossdomain.xml

↑みてみると、crossdomainに

<allow-access-from domain="*.bascule.co.jp"/>

ての発見。

イケてるFlash構築で有名な株式会社バスキュールってとこみたいだ。

過去にも深海ワンダーとか名作をつくったのもここらしい。

すごいーー!この会社。会社概要メモメモ。

©satoru.net
Mail Twitter