2017年6月26日月曜日

レッスン記録(3回目)




レッスン記録です.

3回目.行ってまいりました.

今回は3曲.



ハノン1番.


「ゆっくり」と「リズム変奏」を弾いてOK.

楽譜に○をいただきましたw

恥ずかしいので書かないで欲しかったですが,「あっ」と思っている間に○(ピンク色♡)が付いていました(笑)

ですが.嬉しいですねw



速いのも弾いてみました.

全くもって転びまくりでした.

速いのもそろそろ練習してみますかね.


ル・クーペさんのI


前回のレッスンで見てもらって改善されたと思っていたので,すでに録音はしていました.

この前のせたのと同じです.


家では弾けるってやつですね.

先生の前ではなんか変.

ということでアドバイスをもらって,次回もう一度♡


1)最初のところ

チャチャチャチャチャチャ,チャ〜〜〜チャ

の最後のチャを優しく弾いてね♡



2)左手を強く.

左手を強調!


上の楽譜(動画の1分8秒くらい)のところは

左手強調の方がいい.



3)クレシェンド
しっかり強弱つけてね!!

上の楽譜(動画の1分27秒くらい)のところ,のっぺりなので気をつけること.

の3つくらいですかね.

次回までに鍛えておきます.



アレッタのルンバ(E.バウムガートナー)


今回はレッスン前に録音してみました.

前後で変わるかな?ということで.

レッスン前のはこれです・・・.

アレッタのルンバ

練習,約3ヶ月.
体感難易度: 10



今回も先生は動画検索を始めましたw

レッスン前は限定公開にしておいたほうがいいか・・・(笑)

自分のがヒットせずラッキーでした.


レッスン内容・・・

1)強弱強弱・・・
一番最初.

ド#に「1」が書かれていますがこれを2で弾いていました.

1の方がいいのでは?とのこと.

あと上(ラファ)と下(ド#,ド,シ)

どちらか片方強調,もう片方少し抜く感じで♡

でした.

先生が弾くとどっちでもかっこいいので先生も迷っていました.

とりあえず,下強調で練習してみようと思います.


2)スラーが切れているところはしっかり抜く♡

動画の16秒くらいからのところ.

あとはしっかり歌うこと.

3)装飾音かっこよく

動画の28秒くらい

モニョっとしておりました.

手首の回転を使うといい感じでした.

かっこよくなったかも( ;´Д`)



4)左手が弾きにくい
42秒くらい

これは練習ですかね.

片手練習をします.



あとは上がるところでクレシェンド.

下がるところででクレシェンドにしましょう.

とのことでした.



次回までに改善しますかね.

レッスン合格でもう一度録音してみます.

以上.












ちんこ.






日の音符読み:48秒



2017年6月17日土曜日

ル・クーペさんのIを弾きました.





Hのあとに愛(I)がある♡


・・・


アルファベットの話でございます.

こんばんは.

あやしいおじさんでございます.




さて,弾きました.

ちょっと弾きにくいと言いますか,

盛り上がりに欠けると言いますか,

つかみどころがない曲だったんですよね.

しかし,私はピアノを習い始めました!笑

先生に見てもらった結果でございます.




とにかく,どうぞ.

おじさんのI♡


Le Couppey Op.17 L'ABC No.9


閻魔帳レベル: 7
練習期間: 48日



練習期間,長いw



これでもだいぶ良くなったんですよ.

先生のお手本演奏よかったなぁ・・・.




Iの予備練習はこちら




その他の

ル・クーペ,ピアノのアルファベット動画

もよければどうぞ.





2017年6月16日金曜日

クソリプボット作りました(ツイッター)



ツイッター,続けております.

こんにちは.

あやしいおじさんでございます.




「ウーーーン」と言っている人がたまにいるんですよね.

手動で「コ」を送ったことがあります.



これをやるボットを作れないか・・・?

と思ったのがきっかけです.

(41歳・男性)






できましたのでリンク貼っておきます.

クソリプボット: @kuso_rep_bot

1日しか動かしていませんが,

反応としては・・・

・好意的: 1割程度
・ブロック( ;´Д`): 2-3割
・スルー: 6-7割

くらいですかね.

うんこ好きは日本人の1割程度と予想します.

英語バージョンも作った方がいいのだろうか・・・.

うんこは英語で何ですか?笑




ここから作り方に興味ある方,どうぞ.




・ツイッターアカウント作成とアプリ登録
・Oauth認証
・api利用で検索
・文字列チェック(最後に「うん」があること)
・「うーん」に「こ」をリプライ

で,できました.



では.順番に.

1. ツイッターアカウントとアプリ登録


Twitter REST APIの使い方を参考に作りました.
このページの「2.アクセストークン」の取得まで

2. Oauth認証の準備

2.1 はじめに


苦労しました.

google検索によって得られた情報・・・

・AbrahamさんておじさんがツイッターOauth認証のライブラリを作っていてよく使われているようだ.
・そのライブラリを使えるようにするにはcomposerというコマンドをインストールする.

です.


これにたどり着くのに1,2日かかりました.

急がば回れですかね.日本語のページはヒントにはなりましたが,結局は本家の英語のページを読むのが一番早かったかもしれません.書いてあること短いし・・・.


アブラハムおじさん.

ありがとう,アブラハム♡



まず・・・

2.2 composerのインストール


composerのダウンロードページを読みます.


% php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" 
% php -r "if (hash_file('SHA384', 'composer-setup.php') === '669656bab3166a7aff8a7506b8cb2d1c292f042046c5a994c43155c0be6190fa0355160742ab2e1c88d40d5be660b410') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" 
% php composer-setup.php 
% php -r "unlink('composer-setup.php');"



リンク先のページにも書いてあるように上の要領でダウンロードとセットアップができました.(composer.pharができる)

あとはパスが通っているところにcomposer.pharをcomposerに変えて保存.

2.3 abraham/twitteroauthのインストール


GitHubにソースがあります.ここからファイルダウンロード♡

クリックで拡大


図の1,2の順番でzipをダウンロードです.

(2017年6月ではtwitteroauth-master.zipというファイル名です.)

サーバに置いて解凍.

場所は動作させたいボットプログラムと同じディレクトリでいいと思います.


あとは,アブラハムさんのページのとおり進めます.
(というか,コマンド1行.)


zipを置いたディレクトリで,行います.

twitteroauth-master のディレクトリではありません


% composer require abraham/twitteroauth 


と何も考えずに打ちます.


composerにパスは通っていますよね?
(hash -r しましたか?♡)



% composer require abraham/twitteroauth
PHP Warning: Module 'curl' already loaded in Unknown on line 0
Using version ^0.7.3 for abraham/twitteroauth
./composer.json has been created
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 1 install, 0 updates, 0 removals
- Installing abraham/twitteroauth (0.7.3): Loading from cache
Writing lock file
Generating autoload files
% 
%



みたいなのがでたらOKです.

warningが出てますね・・・無視(笑)

インストールできました♡


途中でphp-extensionsのオプションがいくつか必要になり,インストールしましたが忘れました・・・.
たしかcurl,  JSON, MBSTRING, OPENSSL, ZLIBくらいだったかな?

3. phpコーディング


あとはやりたいことをphpで書きました.

私の場合は「うーん」検索と,その人に「こ」を送信.



ソース,貼っておきます.

「うーん」検索するのですが,

最後にない場合は「こ」を送っても「うんこ」にならないので,その判別を行なっています.

最後に

・うーん…
・うーんw
・うーん?

等最後に1文字付いている場合も「こ!」を返信しています.

json周りの処理はなんだか自信がありませんがなんとか動作しています.

jsonの解析は検索結果が

$tweet = $connection->get('search/tweets', ["q"=>$search_keyword, 'count' => $search_num]);

で$tweetに入りますので,

var_dump($tweet)したものをJSON Pretty Linter Ver2で整形して,要素名を目視チェックしましたw

もっといいやり方がありそうですが・・・.



consumer_keyのあたりのxxxxは各自のものを.




<?php

require_once "vendor/autoload.php";
use Abraham\TwitterOAuth\TwitterOAuth;

// 設定項目
$consumer_key = "xxxxxx"; // API Key
$consumer_secret = "xxxxxx"; // API Secret
$access_token = "xxxxxx";
$access_token_secret = "xxxxx";

$callback_url = "https://xxxxx.jp/kuso.php";

//connection
$connection = new TwitterOAuth($consumer_key, $consumer_secret, $access_token, $access_token_secret);

//search...
$search_num = 20;

$search_keyword = "うーん";
search_and_rep_main($search_keyword, $search_num, $connection);

$search_keyword = "うん";
search_and_rep_main($search_keyword, $search_num, $connection);

/*==============================
* search_and_rep_main()
*=============================*/
function search_and_rep_main($search_keyword, $search_num, $connection){

  $search_keyword = mb_convert_encoding($search_keyword, "UTF-8", "EUC-JP");
  $tweet = $connection->get('search/tweets', ["q"=>$search_keyword, 'count' => $search_num]);

  $array = json_encode($tweet, false);
  $data = json_decode($array, true); //$dataに配列形式で検索結果が入る

  search_and_reply($search_num, $search_keyword, $data, $connection);
}
/*============================== 
* cut_end_word()
*=============================*/
function cut_end_word($word){

  $dest_word = mb_substr($word, -1);

  return $dest_word;
}
/*==============================
* compare_ok_char()
*=============================*/
function compare_ok_char($cut_word){

  $hit_flag = "NO";

  $ok_list = array("。", "w", "笑", "?", "?", "…", "!", "!", "っ", "ー", "☆"); 

  foreach($ok_list as $value){
    $value = mb_convert_encoding($value, "UTF-8", "EUC-JP");
    $cut_word = mb_convert_encoding($cut_word, "UTF-8");
    if(strcmp($value,$cut_word) == 0){
      $hit_flag = "YES";
    }
  }

  return $hit_flag;
}
/*==============================
* search_and_reply()
*=============================*/
function search_and_reply($search_num, $search_keyword, $data, $connection){ 

 for($i=0;$i<$search_num;$i++){
    $hit_flag = "NO";
    $tw = $data["statuses"][$i]["text"];   //検索にヒットしたツイート内容
    $user_id = $data["statuses"][$i]["user"]["screen_name"];   //ユーザid
    $tw_id = $data["statuses"][$i]["id_str"];

    $keyword_pos = mb_strpos($tw,$search_keyword);

    $all_length = mb_strlen($tw);
    $keyword_length = mb_strlen($search_keyword);

    if(($all_length - $keyword_pos) == $keyword_length){   //うーんが最後のとき
      $hit_flag = "YES";
    }
    //1文字だけ最後にあるとき
    else if(($all_length - $keyword_pos) == ($keyword_length + 1)){  
      $cut_word = cut_end_word($tw);
      $hit_flag = compare_ok_char($cut_word);
    }
    else
      $dummy = "d";


    if($hit_flag == "YES"){      //文末にうーんであれば,
      $comment = "@$user_id こ!";
      $comment = mb_convert_encoding($comment, "UTF-8", "EUC-JP");
      $result = $connection->post("statuses/update", array("status"=>$comment, "in_reply_t\o_status_id"=>$tw_id)); 
    }
  }
}
?> 



4. cronでphp実行


上のphpをcrontabに登録

0 * * * * /usr/local/bin/php $HOME/kuso_rep.php

の感じで.

これだと毎時0分実行ですね.


phpにhttpアクセスでデバッグしました.

クソリプボットの完成です.




他に面白い案ありますかね.



(2017.6.17 追記)

最後まで読んでいただきありがとうございます!!!

「ある検索ワード→ヒット→リプライ」はツイッター社により禁止されているようです.

やめましょう!!!www

クソリプボットは1日で自動投稿を制限されましたw



いやー.客観的に見て,ただのスパムボットでした.
すみません( ;´Д`)

面白いと思っていただいた方も複数いらっしゃったようで残念ですが,諦めます.



( ;´Д`)( ;´Д`)( ;´Д`)( ;´Д`)( ;´Д`)



参考・・・

自動化ルールと成功事例



今日の音符読み:46秒