はてなキーワード: TESTとは
Vocaloidismに、インドネシアでボカロのコンピレーションアルバムを出そうとしているアーティストたちへのインタビュー記事が載っていた。
http://www.vocaloidism.com/2011/05/30/a-very-vocalo-id-interview/
Google Trendsなどを見ても分かるように、インドネシアを含む東南アジアは実は初音ミクやボカロへの関心が高い地域だ。
http://www.google.com/trends?q=vocaloid
http://www.google.com/trends?q=miku
海外でのボカロ人気というとどうしても米国が目立ってしまうが、アジアでも着実にその根を広げつつある様子が窺える。という訳でこのインタビューを勝手翻訳してみた。
ここ[Vocaloidism]でインドネシアのVocaloidシーンについて話すことは普通はないんだけど(正直、話していたら変だけど)どうやらすぐに事情は変わりそうだ。[インドネシアでは]想像力に満ちた音楽心の持ち主たちが集まり、コラボアルバムVOCALO.IDの発売を6月1日に公表した。
このアルバム作成に携わったうちの何人かに、彼らのこと、及び彼らの作品について話を聞いた。さまざまな技術的問題があったにもかかわらず(おかげでYahoo Messengerを使ったインタビューについて価値ある知識を学べたけど)、そこにはたくさんの興味ある発言があった。以下にそれを載せるとしよう。
Joe Mello[Vocaloidism主催者、以下JM]「きょうは(あるいは今夜かな)インタビューに応じてくれてありがとう。まず自己紹介と、それぞれが果たした役割について話してもらうところから始めようと思うんだけど」
Crash Test[以下CT]「僕はcrash testだ。今回はアルバムのパッケージとプレマスタリングの担当で、あと製作グループREDSHiFTの作曲家もやっている」
Saizen[以下Sai]「やあ、Saizenだよ。作詞家兼ボカロユーザーで、 VOCALO.IDにも参加している」
PK「俺はpowerkid。インドネシアのボカロコンピレーションアルバムVocalo.IDの宣伝担当だ。ボカロユーザーとしては初心者で、今回のイベントにも参加している」
M2K「うう、おはよ~う…M2Kだ…主催者の一人で、要するにリーダーをやっている」
M2K「いいや、私だけじゃない」
M2K「私は単にその立場に選ばれただけだよ(笑)…私たちはなにかするときにはいつも全員で集まって議論している」
JM「おっけー。ところでアルバム名のVocalo.ID(.idはインドネシアの国ドメイン名)はいくつかの候補の中から選ばれたそうだね。実に気の利いている名前だけど、誰が選んだんだい?」
M2K「ああ、アルバム名はcrash(redshift)とluzzyが選んだんだ。Luzzyが私たちの掲示板に、www.Vocalo.idを新しい掲示板の名称にしたらどうかって投稿したのさ…」
JM「なるほどね」
Sai「そ、crashとluzzy。この名前は本当にインドネシア発のVocaloidをよく表していると思うよ」
M2K「その通り、ドメイン名から来ている…でもみんな…強烈なインパクトがあると言っている。という訳でたまたまアルバム名はluzzyとcrashが共同で(違う時と違う場所で)つけたことになった。私たちはいろいろな名前を挙げたんだけど…選んだのは一つだった」
JM「アルバムの中身についてだけど、REDSHiFTはダンスとポップの組み合わせが好きみたいだね。そう思っていいのかい、それとそうしたスタイルがアルバムの特徴になると思っていいのかな」
M2K「そう…だね」
CT「そうとも」
CT「いくつかのポップ=ロックがコンピレーションの中にあるよ」
M2K「それは素晴らしい、redshift…実に待ち遠しい…」
Sai「曲名は?」
M2K「(笑)さあ、言ってみようか」
http://soundcloud.com/crashtestremixes/mom3_wip-mp3
M2K「それだ!」
M2K「REDSHiFTはカバー曲を選ぶのがうまい。MoMはmeijuniが作ったインドネシアのボカロヒット曲だ…。曲順にぴったりだと思うよ。で、最後に彼らは私にこのリミックスプロジェクトでコラボしようと持ちかけてきた。そしていっしょにやることになった」
JM「あと誰が参加しているんだい?」
M2K「REDSHiFT以外にもいろいろなアーティストがこのアルバム(とイベント)に参加している」
M2K「rito-sanとindrahebat、あとそれぞれ音楽のスタイルを持っている大勢もいるな」
M2K「そう! 彼はこの計画に欠かせない一人だ」
M2K「西洋製ボカロのランキング入りメンバーだ。PGはこのアルバムのジャケットにもいくつか描いている」
JM「よければもう少し個人的なことを聞かせてもらえないかな。音楽家として何に刺激を受けているのかい?」
M2K「まずREDSHiFT。それからcrash、saizen、PK…(笑)」
PK「個人的には音楽そのものに刺激を受けている。そしてボカロを使うことで音楽に貢献したいと思っている」
CT「(笑)う~ん、僕は中学のときから音楽制作とリミックスを始めていて、そしていつもヴォーカルが必要だなと思っていたんだ」
Sai「僕にとっては友人かな」
M2K「^0^」
M2K「おっけー。私にとって…音楽制作はそれまで決して楽しいもんじゃなかった――ミクを知るまでは。ミクは私のペースも、情熱も、音楽に対する方向性も変えた。思うに私はミクとの恋に落ちたんだと思う。(笑)愛の力ってやつだ」
JM「そりゃまた」
PK「(爆笑)」
M2K「何だ? おいおい」
PK「俺にとってはルカだな」
M2K「他のボカロが来るたびにdokidokiが止まらなくなっているんだけどな」
JM「さて、重要なところは大体聞いたと思うけど、終わる前にファンに向かって、インドネシア人でも世界中のファンでも構わないけど、何か言いたいことはあるかな?」
PK「う~ん…何を言うべきかマジに悩むな(笑)。言えるのは『楽しんで』だけか」
M2K「そうだな(笑)REDSHiFTファン全員に楽しんでもらいたい。私からは…このアルバムで皆が幸せになってほしい」
M2K「そう、そしてこのアルバムが世界中の皆にとって大きな一歩になってくれれば」
PK「そう祈ろう」
M2K「ボカロという枠組みの中でつながり、いつか協力できたら」
JM「君たちのアルバムと将来に幸運があらんことを。改めてインタビューに応じてくれてありがとう」
Sai「自分がインタビューされるなんて考えたこともなかった」
VOCALO.IDの今後についてはフェイスブックのアカウント参照
http://www.facebook.com/VOCALO.IDalbum
なお、コメント欄にはアーティスト自身も書き込みをしており、他にもいくつかサンプルソングのurlを載せている。興味のある方はどうぞ。
先に俺のスペック書いておく。
去年の春から就活のために英語勉強しだして、TOEIC680を取った(こんなんでも意外とセールスポイントになる)。
みんなそろそろ気づいてると思うけど、2012年の就活は間違いなく悲惨なものになる。地震の影響で日本の輸出産業は大打撃を受けているから、2012年の内定率は50%を切るんじゃないかといわれている。やばいと思っている大学3年生は、就活に向けて何か始めるべきだ。就活の本番まで残り半年ちょっとしかない中で、どうすれば就活で勝てるのか?
答えは決まってる。英語しかも、TOEICの点数を上げることだ。これより可能性が高くて、一番手っ取り早い方法は他にない。TOEICの点数があれば、英語を使う会社なら圧倒的に有利になる。必要としない会社でもTOEICの点数が高いとその努力は認められて、かなり有利になる。ゼミや大学の授業なんて、単位さえ取れればどうでもいい。ともかく、就活で勝ちたかったら、TOEICの点数をあげることだけに集中したほうがいい。
TOEICの点数をとると決めたら、まずは就活までのスケジュールを決めよう。就活が始まる前に2回TOEICを受けることをお勧めする。今からだと6月26日と11月27日のTOEICを受けるのが妥当だろう。
一回、5500円と高めだが、就活で有利になれるなら安いもんだと割り切ろう。
TOEICの予定が決まったら、目標スコアを決めよう。もちろんスコアは高ければ高いほどいいが、今からだと600点から700点ぐらいだろう。このスコアがとれれば、就活で十分有利になる。力を入れるポイントは文法とリスニングだ。はっきり言ってリーディングで高得点をとれるようになるには、英語の知識だけではなく読解力を高める必要もあるので、文法とリスニングに絞るのがベストだ。以下、文法力とリスニング力を短期間のうちに上げる方法について書く。
短期間でTOEICの点数を上げるためには、文法問題で高得点をとる必要がある。ともかく覚えて練習を繰り返すだけなので、以下に紹介するテキストを繰り返し練習してほしい。
ハートで感じる英文法
英語の一番初めはこの本。
とにかく分かりやすく文法が説明されている。
完全に理解するまで繰り返し読もう。
ハートで感じる英文法が理解できたら、ひたすら文法問題を解く。
解説が丁寧なので分からない問題は解説をしっかり読んで繰り返す。
これを続ければ必ず点数が伸びるから、他の本に浮気せず取り組もう。
英単語の勉強は、本よりも方法が大切なので他の本でもいいが、強いて言うとこの本がお勧め。
英単語を覚えるときは、100均で売ってる単語カードを使うのが効率的。
30単語程度のカードをひとくくりにして、1日5回暇なときに復習すればいい。
これで、絶対に語彙力が増えて、リーディング問題でも有利になる。
TOEICでスコアを伸ばすためには、リスニングがある程度解けないといけない。まずは、発音を練習して音がなれるようにし、そのあと、過去問を解きまくるのが最も効率のよいリスニングの攻略方法だと思う。
スピーキングは必要ないように思えるが、リスニングを鍛えるためには、発音を学ぶ必要がある。
ラングリッチは発音テキストが充実しているので、繰り返して発音のトレーニングをすることを勧める。
これさえやっておけば、かなり英語の音になれてリスニングが聞き取りやすくなる。
最初は抵抗があるかもしれないが、3カ月もすればかなり効果が出てくるので、期待して頑張れ。
過去問が豊富に収録されているのでお勧め。これも飽きずに繰り返して勉強するれば、だんだん聞き取れるようになる。
TOEICは類似の問題が多いので、過去問を繰り返せば点数に直接結び付くのようにできている。
まあ、来年の就活は悲惨になるから、とくにとりえもないけど絶対に就職しなきゃやばいっていう人は以上の方法で頑張ってみては。
保証はできないけど、この方法を実行すれば短期間でTOEIC600点は取れると思う。他の勉強やるよりTOEICの点数だけ上げるのがたぶん就職に一番有利だろう。それではみなさん頑張って。
http://1-byte.jp/2011/03/20/20_tips_you_need_to_learn_to_become_a_better_php_programmer/
良いPHPerだって?そんなものは丸めてゴミ箱にでも捨ててしまった方が資源の再利用になる分いくらかマシだ。
つまり俺たちがしなくちゃならないことは「より良いPHPerにならないため」に何ができるかってことなのさ。
それじゃ、始めよう。
?>なんて使っちゃいけない。そう俺たちはBAD PHPer。
無駄なホワイトスペースの出力に悩まされるくらいなら対称性なんて丸めてゴミ箱にでも捨てた方がまだマシだ。非対称性こそが賛美。
require_once("config.php");
未だにこんなことやってるやつがいるのかいベイベー。絶対にダメだ。この一行を見たら俺は悶絶する。
ダメだ、早く何とかしないと。
大抵このconfig.phpの中身はこうなっている。見て絶望だ。
$hoge_path = ''; if (!LOCAL) { define('FOO_FLAG', 1); if (HONBAN) { define('HOGE_FLAG', 1); } else if (TEST) { define('HOGE_FLAG', 2); } } else { $hoge_path = '/local'; define('FOO_FLAG', 2); define('HOGE_FLAG', 3); } define('HOGE_URL', $hoge_path.'/hoge/');
こういうのが延々と続くわけだ。もういやだ。もう見たくない。
本番環境とテスト環境でどういう値の違いがあるのか、ローカル環境だとどうなるのか、まったく把握できる気がしない。
なまじPHPな設定ファイルのせいで、処理をついつい書いてしまう。そしてどんどん複雑になってしまう。
やはり設定データは基本的にYAML等のデータしか定義できない形式のもので用意すべきだ。そして環境ごとに設定ファイルを分けるべきである。
そうすることで何にどういう違いがあるのかすぐにわかるし、diffすれば一度にすべて把握することができる。
# 本番環境設定ファイル foo_flag: 1 hoge_flag: 1 hoge_url: '/hoge/'
# テスト環境設定ファイル foo_flag: 1 hoge_flag: 2 hoge_url: '/hoge/'
# ローカル環境設定ファイル foo_flag: 2 hoge_flag: 3 hoge_url: '/local/hoge/'
// ここで後の処理のためにhogeメソッドを呼び出しておく $q->foo(); // $a['foo']はここに来る時点で真のはず // 2010-03-10 判定がおかしいので修正 // 2010-06-21 やっぱり値が入ってる方が正しい if ( !isset($hoge[0]) ) { }
コメントは保守されない。そう、それは真実。こんなコメントを発見したら即効削除しよう。コメントは基本信じるな。
俺たちにちょっとしたヒントと大きな損害を与えてくれる、それがコメントの役割なのだ。
わかる。いいたい事はとてもわかる。俺たちはしばしばインデントにスペースを使うはずだ。一方でIDEのしっかりした言語ではタブも使うことがある。しかし悪いことに、両者を混同しているプログラマも一定数いるのだ。
タブを画面上で認識しにくいエディタが世の中には存在する(何とは言わないが)
そして画面上で認識しにくいことを理由にタブを気にしないプログラマがいる。
この二つの条件が重なると、タブとスペースの交じり合ったインデントが完成する。もうぐちゃぐちゃだ。これは永遠に続く戦いだ。
私たちが勝利を掴むためにできることなどせいぜい、常にスペースしか使わない。タブを見つけたらその都度スペースに変換する。そういった地道な活動が明日へとつながるのだ。
われわれがプログラムをするとき、何に一番時間がかかってるか。実は変数の命名なのである。ここで拘り過ぎて時間をかけ過ぎては何も進まない。
御託はイイからさっさと書け、だ。しかしとはいっても変数名は重要。日頃からどういうときにどんな名前を使うかを決めておくといい。
そして変数名に型はまったく必要ない。型宣言のないPHPにおいて、型の変数名をつけること自体ナンセンスだ。
$iNumber = 'aaa';
になんの意味もない。コメントを信じるなでも言ったが、これはプログラマを混乱させるだけの害悪なものだ。
変数を使う前に初期化するのは、警告を出さないという意味でも良い癖だ。しかし具体的にどこでやるかが問題だ。
$foo = null; $foo = $q->foo();
こんな初期化に意味はない。よくあるのはやはり、if文で値を振り分けるケースだろう
$foo = null; if ( $hoge ) { $foo = 1; } else if ( $bar ) { $foo = 2; }
このときの初期化はとても有効だ。もしnullの初期化を忘れたまま$fooを使うと警告が出るが、ちゃんと初期化してるので出ない。基本中の基本だ。
function getStatus() { $bReturn = false; if ($i == 2) $bReturn = true; return $bReturn; }(中略)
もし、何かしらの理由で、あなたの書いたif文が間違っていたら?
この書き方をしていれば、間違った値に対して、常にfalseが返る。
私たちが、PHPでsensitiveなデータを取り扱うなら、正しいデータが入力されるまでは、動かないコードを書くべきだ。
trueとfalseの条件がいまいち明確ではないが、本当に動かないコードを書けというのであれば以下のようにすべきだ
function getStatus() { $bReturn = false; if ($i == 2) $bReturn = true; else if ($i == 1) $bReturn = false; else throw new Exception("bad status! $i"); return $bReturn; }
中途半端にfalseを返して生存させる必要性はまったくない。今すぐ死ね!
連想配列のキーを指定する場合だけ定数と間違わないようにクオートで囲まなければならない。そして逆に定数を使いたい場合はクオートで囲ってはいけない。
更に後世のプログラマが処理を見たときに、定数が使いたかったのか、文字列が使いたかったのかを明確にしたい場合はconstantを使うと良い。
// 定数のFOOを使うよということが明確になる print $a[constant('FOO')];
もし、文字列を変数の値と一緒に出力するとき、PHPではコンマの代わりにprintfを使うことが使える。
printf( “Hello, my name is %s“, $sName);
以下の代わりに上記のコードを使う。
echo “Hello, my name is “, $sName;
出力すべき変数が増えれば増えるほど、有効になっていく。とにかく迷ったならば、printfを使え、だ。
三項演算子はとても有効だ。しかし優先順位に難があるせいで、三項演算子をネストしようとすると以下のようなコードになってしまう
$n = (($i == 1) ? 2 : (($i == 2) ? 3 :$i));
括弧だらけで読みにくいったらありゃしない。三項演算子を使うなら一回まで。約束守れないやつは丸めてゴミ箱にでも捨てちまえ。
if ( $flag ) { }
仕様をちゃんと把握しているなら真偽値のチェックなどこれで十分。
もし事前にbool型だというのが確定してるのなら「$flag === true」を使えばいい。
インクリメント、デクリメント演算子は前に付くか後ろに付くかで意味が変わるので慣れるまでは非常にややこしい。
わけがわからなくなるくらいなら初めから使わないほうが良い。見極められないなら使うな。それがPHPerなのだ。
文句なしだ。これは文句がない。
他にも色々あるので覚えておこう
$a %= 1; $a &= 1; $a |= 1; $a ^= 1; $a <<= 1; $a >>= 1;
てっとり早く画面に表示する際にpreはよく使うが、デザインの関係上画面の文字が見えないときがある。
なのでdivを使って以下のようにしとくと便利だろう。
function p($var) { echo "<div align='left' style='background-color:white;color:black;'><pre>"; print_r($var); echo "</pre></div>"; }
君らが通常作るアプリケーションなんぞに、定数なんぞ必要ない。いいか、もう一度言う、お前ら程度のもんが、定数使おう何ぞ、おこがましいわ!
大丈夫。なんでもかんでも定数にする必要はない。結局設定ファイルに定数をずらずら作りまくってわけがわからなくなってるパターンが多い。
貴様みたいなもんに、定数は制御できん。いいか設定ファイルはYAML等のデータで持つようにし、その連想配列のデータ構造を一つ持ってるだけで定数の変わりになる。
このメリットに比べれば、定数だと書き換えられなくて良いという利点などこの歯のカスほどのものだ。そんなものは丸めてゴミ箱へ捨ててしまうといい。
認識を改めろ。俺たちはより良いPHPerにならないために努力している。
class Request { private $parameters; private $method; function __construct () { $this->method = $_SERVER['REQUEST_METHOD']; if ( strtoupper($this->method) === 'POST' ) { $this->parameters = $_POST; } else { $this->parameters = $_GET; } } function param ($key) { return isset($this->parameters[$key]) ? $this->parameters[$key] : null; } }
これだけでもいい。たったこれだけでもとても便利だ。ここから拡張してGETやPOSTを明示的に取るメソッドとかも作ってみるといい。自分の手を動かすのだ!
例が良くない。こんなのは引数が20個ある関数から、setを20回呼ぶオブジェクトに変わっただけではないか。
そもそもこの20個の引数とはなんなのか。何かのデータ構造なんであれば連想配列にして引数一つとして渡すべきだし、それぞれまったく異なる用途の変数なのであればWindowsプログラミングじゃあるまいし、20個も引数取る時点で設計が間違えている。
何がいいたいか。別に関数でもオブジェクトでもどっちでもいいということだ。
そんなことで悩んでる暇があったら設計を見直せ。
スキあらば自分自身を返せ。スキあらばオブジェクトを返せ。配列はArrayObjectのARRAY_AS_PROPSで返せ。
ひたすらメソッドチェイン。来る日も来る日もメソッドチェイン。とにかくメソッドチェインを使い続けろ。そこに未来はある。
どんなコードも繰り返すな。もし、少しでも同じコードを書いていたなら、それは関数に置き換えてしまえ。
・・・と、いうのはやめなさい。
一見同じように見えた処理でも前後の流れでまったく違うものということが往々にしてある。
まとめ方にも問題があるケースもある。何でもかんでも関数化すると、関数が膨大に増えていく。君は見たことがあるだろうか。common.phpやfunction.phpの恐ろしさを。
確かに細かく関数化はされているが、適切に関数化していないのである。結合度が非常に高い。なんでもかんでも盲目的にまとめれば良いという話ではないのだ!
あまりに極度に意識しすぎると、プログラムそのものができなくなる。そういう状態に陥る。
気を抜いて。そう気を抜いて。所詮あなたのコードなんてすぐに消えてなくなるよ。きっともっと偉い人が作り直すよ。だからまずは思うが侭にやるといい。
結合度を減らすというのは非常に難しい。何度も何度も失敗し続けて、ようやくここは分けた方が良かったんだなと気付く。次に活かそうと心に決める。そしてまた同じ過ちを繰り返していくわけだ。
まずは実装することだ。これが一番の早道だ。まずはがっつり結合した関数をあえて作るといい。何も考えずに作ろう。
そしてその後に、一部分使いまわしたいとおもうことがあるはずだ。その時に関数に切り出そう。それを繰り返すといい。そのうち初めから分けた方が良いと気付く。
何事も経験が必要である!経験を積まないプログラマは丸めてゴミ箱に捨ててしまえ。
さて、先の例で言うならば、私ならadd_result_outputという関数を作ってしまうだろう。だって、addとresultを連続して呼ぶのはめんどくさいんだもん。一連の流れをいつも使うのなら、その流れをやってくれる関数を作ればいいじゃないか。
function add_result_output ($iVar, $iVar2) { $r = add($iVar, $iVar2); echo result($r); }
もっと言えばクラス化してしまってもいいかもしれない。どんな感じになるかは君の手を動かして確認しよう!
このTipsはとてもわかりにくく、ニッチ過ぎる部分も多いかもしれない。
あくまでも「より良いPHPerにならないための20Tips」なのだ。
君はこの記事を鵜呑みにしてはならない。PHPをPHPと見抜けないPHPerはPHPを使うのは難しい。
もし、あなたがPHPプログラマなら、公式のPHPドキュメントはあなたのケツの穴を拭くための紙になるだろう。
私は、それぞれのセクションを眺めて、各関数でどんなことが出来るかなんぞ、歯クソのゴミ程に役に立たないとおもっている。動けばいい。はは。
あなたは、PHPで用意された既製関数で多くのことが実現できることに、(俺の仕事を減らすなと)驚くはずだ。
この記事があなたの役に立たない事を。
ふざけんな!
84 :名無しさん@お腹いっぱい。:2011/01/06(木) 22:22:49
585 名前:sakurazaka.jpn.ph[] 投稿日:2011/01/06(木) 22:15:17 ID:B05NruFc0
今回のまとめ作ったけど横に長すぎた
・東日本が削除人の作業時のログを見つける。http://be.2ch.net/test/sss/hoop.datとか。
これは誰がいつ削除したかがわかる程度。
・だが、/test/sss/以下の全ファイルリストがApacheの仕様で見れた。
しかもbe鯖のsss/以下にはなぜかcgiが拡張子なしで置かれてた。
元の現在動いてるcgiスクリプトを探し出し、それに対してコマンド実行。
・そのcgiも糞で、パスワードなしで2chの全キャップが入手でき、他にもパスなしで板移転なども可能だった。
ファイル一覧も取得可能だった。
・いろんな人がそれを実行した。板移転もやりたい放題、キャップも全部ばれたのでお止めも自由。
・しかもファイル一覧取得にもバグがあり、そこからOSのコマンドを叩くことも可能。ここで全部のcgiソースを入手可能。