submit(サブミット):送信させない4つの方法です🙄。#javascript #サブミットキャンセル

2022.09.07

Logging

おはようございます、台風一過が去りましたね😌。

さて、今日はsubmit(サブミット):送信させない4つの方法を記載します、方法は大きく分けて2つの方法があり、それを細分化して4つの方法になります。まず、一番目は“送信する際(form側)”にてキャンセルする方法です。この場合、addEventListener(アッドイベントリスナー)でキャンセル処理する場合とonsubmitを使用してキャンセルする方法があります。

サンプルコード例1と例3にあたるコードが上記のコードになります。

次に”ボタンをクリック”した際にサブミット(送信)処理をキャンセルする方法です、この方法でも送信を阻止する事ができます。

サンプルコード例2と例4にあたります、自分としてはフォームで処理した方が良いかなと思いますが、こちらでも送信をキャンセルする事ができます。

尚、ソースコードは下記になります。また、参考にしたサイトのリンクを貼っときます。MDNのリンクです。

    <form id="frm" method="post" action="./example/">
        <input type="hidden" name="example" value="data">
        <button type="submit" class="btn btn-primary">Submit1</button>
    </form>
    <form method="post" action="./example/">
        <input type="hidden" name="example" value="data">
        <button id="btn" type="submit" class="btn btn-primary">Submit2</button>
    </form>    
    <form method="post" action="./example/" onsubmit="return func1()" >
        <input type="hidden" name="example" value="data">
        <button type="submit" class="btn btn-primary">Submit3</button>
    </form>
    <form method="post" action="./example/"  >
        <input type="hidden" name="example" value="data">
        <button type="submit" class="btn btn-primary" onclick="return func2()" >Submit4</button>
    </form>
//例1
document.getElementById("frm").addEventListener("submit",function(event){
    event.preventDefault();
});
//例2
document.getElementById("btn").addEventListener("click",function(event){
    event.preventDefault();
    event.stopPropagation();//インターフェイスのメソッドで、キャプチャおよびバブリング段階において現在のイベントのさらなる伝播を阻止します。 
});
//例3
function func1(){
    return false;
}
//例4
function func2(){
    return false;
}

タグ

, 2, , 4, addEventListener, Form, javascript, onsubmit, submit, アッド, イベント, キャンセル, クリック, コード, こちら, サブミット, サンプル, それ, フォーム, ボタン, リスナー, , 上記, , 今日, 使用, , , 処理, 台風一過, 場合, , 方法, , 細分化, 自分, 記載, 送信, 阻止, ,

未来予想は当たらないけど、加速するテクノロジーは分かるかも?

2022.01.02

Logging

未来予想は今まで当たった例のない自分ですが、加速するテクノロジーは分かるかもと思って書いています。コロナ禍になっていろいろな所で「DX、DX(ディーエックス)」って耳にするようになったと思います。DXって何の略かと言えばデジタルトランスフォーメーションの略です。じゃ、デジタルトランスフォーメーションって何だよとなるかと思います、デジタルトランスフォーメーションとは凄く簡単に言うとこれまで人がしていた仕事をパソコン等を使用して自動化することを指します。もっと言えばデジタルで仕事を効率化を指します。

【落合陽一】なぜ進まない?DXの「本質」を考える。

例えばどんな事かと言えば、今まで人がしていた事務の入力作業を人工知能などを使用してコンピューターで自動化するなどや、今まで人が荷物を仕分けていたところをロボットが仕分けるなど。こう言ったことがコロナ禍で急速に浸透していっている事なのかなぁと思います。

Inside A Warehouse Where Thousands Of Robots Pack Groceries

特に事務処理の単純作業はコロナがおさまる頃にはコンピューターに置き換わっている可能性が高いです、これはコロナ後になると思いますが、自動運転車が街中を走り回る時代になり人は車を持たないようになると思います。このことに関しては数十年後の話になると自分は思っていてますが、何れはそうなると思っています。

One year anniversary of our public #WaymoOne rider-only service

DXになって得するのはITエンジニアや雇用主であって、それ以外の人は仕事を奪われるだけであって得にはなりませんので、あんまり日本ではコロナ禍であってもDXは進まないとは思いますが世界を見ると大きく変わっていっていると思います。なので、コロナ禍で確実に自動化は進むと思っています。

タグ

DX, いろいろ, エックス, おさ, , こと, これまで, コロナ, コンピューター, ティー, テクノロジー, デジタル, ところ, トランス, パソコン, フォーメーション, まる, ロボット, 予想, , 事務, , 人工, 仕事, , 作業, 使用, , 入力, 処理, 加速, 効率, 単純, 急速, , 未来, 浸透, , 知能, , 簡単, , 自分, 自動, 荷物,

今はよく使う無名関数と即時関数というモノ?

2021.06.21

Logging

javascriptを例に無名関数即時関数をよく書いています。尚、PHPでも同じ要領で無名関数と即時関数がかけます。たぶんいろいろな言語に同じ要領で書けるようになっていると思います。但しPHPにアロー関数での無名関数と即時関数がどうか分かりません。因みにPHPの方に即時関数があることは結構、最近になって知りました。
自分は無名関数の存在は知っていましたが、あまり使うことがなく使い方もヘンテコな使い方をしていましたね。
無名関数や即時関数を使わない人もいると思います、駆け出しのエンジニアさんに配慮して書かないという職場もあるでしょうし、制約で書けない場合もあるかもしれません。

【JavaScript入門 #7】匿名関数、高階関数、コールバック関数を攻略せよ!【ヤフー出身エンジニアの入門プログラミング講座】

そんな感じで仕事をしているといろいろ制約の中でコードを書くことになるので、ちょっと窮屈感を感じる人も多いと思います。特に開発に新しい技術を取り入れるような実験が出来る職場は少ないです。大規模開発になればなるほど、実験的な事ができなくなる傾向にあると思います。それも仕事だと割り切るしか無いかなと思います。使いたい技術は私用で開発するときに使うようにしましょう。そういうITエンジニアは結構いますよ。

//functionで無名関数
var mumei1 = function(a){
	return a;
};
console.log(mumei1(123));
//アロー関数で無名関数
var mumei2 = (a)=>{
	return a;
};
console.log(mumei2(123));
//functionで即時関数
console.log((function(a){
	return a;
})(123));
//アロー関数で即時関数
console.log(
((a)=>{
	return a;
})(123));

タグ

javascript, php, アロー, いろいろ, エンジニア, コード, こと, ヘンテコ, もの, , , , , 仕事, 使い方, , 傾向, 制約, 即時, 場合, 大規模, 存在, 実験, , 感じ, 技術, , 最近, 無名, 窮屈, 職場, 自分, 要領, 言語, 配慮, 開発, 関数, 駆け出し,

bingから画像を一括ダウンロードするアプリ。

2020.06.14

Logging

任意のキーワード検索でbing画像からを一括ダウンロードするアプリを作りました。img-dl-bing-sss.exeファイルを起動すると動画のようなコンソール画面が開くので入力してダウンロードを開始してください。ダウンロードが終わると勝手に閉じます。

なお、一応R指定にも対応しています、キーワードがR指定項目かもと思う場合、Yと入力ください。
新垣結衣さんの熱烈なファンでもないですが、綺麗な方だとは思います。ということで例として使用させて頂きました、、、関係者の皆様ごめんなさい。

bingから画像を一括ダウンロードするアプリ

このアプリはウィンドウズ10環境で動作します。また、動作しないブロックされる場合は下記のURL等を参照しブロックを解除しお使いください。ブロック解除方法:https://forest.watch.impress.co.jp/docs/news/1130655.html

※なお、Bingサイトのデザインが変わった場合、動作しなくなりますのであしからず。

画像ダウンロードアプリのソースコードはこちら(古いコードですので動かない場合がありますVS2019C#)

using System;
using System.Runtime.CompilerServices;

namespace img_dl_bing_sss
{
    class Program
    {
        static void Main(string[] args)
        {
            string keyword = "",R18="";
            Console.ForegroundColor = ConsoleColor.Red;
            Console.WriteLine("処理中は画面や立ち上がったブラウザを閉じないでください。\n" +
                "処理が完了すると「***終了します***」と表示されます。\n" +
                "何かキーを押し終了してください\n\n");


            Console.ForegroundColor = ConsoleColor.Green;
            Console.WriteLine("↓検索キーワードを入力しエンターを押してください");
            keyword = Console.ReadLine();
            Console.ForegroundColor = ConsoleColor.White;
            Console.WriteLine("↓R指定ですか?\nY or N かの文字を入力しエンターを押してください");
            R18 = Console.ReadLine();
            Console.ForegroundColor = ConsoleColor.Yellow;
            Console.WriteLine("***画像のダウンロード量(画像数ではありません) 1?999 ***");
            var scroll = 9999;
            try
            {
                scroll = int.Parse(Console.ReadLine());
                if(scroll >=1 && scroll <= 999)
                {
                    scroll = scroll * 9999;
                }
            }
            catch
            {
                Console.ForegroundColor = ConsoleColor.Yellow;
                Console.WriteLine("***検索キーワードが不適切です。***");
            }
            SuiteTests img =  new SuiteTests();
            if (img.Imgdlok(keyword, R18, scroll))
            {
                img.Dispose();
            }
            else {
                Console.ForegroundColor = ConsoleColor.Yellow;
                Console.WriteLine("***検索キーワードが不適切です。***");
            }
            Console.ForegroundColor = ConsoleColor.Yellow;
            Console.WriteLine("***終了します***");
            
        }
    }
}
// Generated by Selenium IDE
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Firefox;
using OpenQA.Selenium.Remote;
using OpenQA.Selenium.Support.UI;
using OpenQA.Selenium.Interactions;
using Xunit;
using AngleSharp;
using AngleSharp.Html.Parser;
using AngleSharp.Html.Dom;
using AngleSharp.Dom;
using System.Runtime.InteropServices;
using Newtonsoft.Json;
using System.IO;
using System.Net;

public class SuiteTests : IDisposable {
  public IWebDriver driver {get; private set;}
  public IDictionary<String, Object> vars {get; private set;}
  public IJavaScriptExecutor js {get; private set;}
  public SuiteTests()
  {
    driver = new ChromeDriver();
    js = (IJavaScriptExecutor)driver;
    vars = new Dictionary<String, Object>();
  }
  public void Dispose()
  {
    driver.Quit();
  }
  public bool Imgdlok(string keyword="", string R18= "",int scroll = 999999)
    {
        if (keyword == "") return false;
        Console.Clear();
        string path = System.IO.Directory.GetCurrentDirectory() + "\\IMG\\";
        if (!Directory.Exists(path))
        {
            Directory.CreateDirectory(path);
        }
        driver.Navigate().GoToUrl("https://www.bing.com/?scope=images&nr=1&FORM=NOFORM");
        driver.Manage().Window.Size = new System.Drawing.Size(945, 1030);
        driver.FindElement(By.Id("sb_form_q")).Click();
        driver.FindElement(By.Id("sb_form_q")).SendKeys(keyword);
        driver.FindElement(By.CssSelector(".search.icon.tooltip")).Click();
        try
        {
            if (R18 == "Y")
        {
            driver.FindElement(By.LinkText("設定の変更")).Click();
            driver.FindElement(By.CssSelector("#settings_safesearch div:nth-child(3)")).Click();
            driver.FindElement(By.Id("adlt_set_off")).Click();
            driver.FindElement(By.Id("sv_btn")).Click();
            driver.FindElement(By.Id("adlt_confirm")).Click();
        }
        }
        catch
        {
            Console.ForegroundColor = ConsoleColor.Yellow;
            Console.WriteLine("***R指定ではありません***");
        }
        try
        {
            double ps = 0;
                for (int i = 99; i < scroll;i+=1000)
            {

                js.ExecuteScript("window.scrollTo(0," + i + ")");
                Console.CursorLeft = 0;
                ps = (double)(((double)i / (double)scroll) * 100);
                Console.Write("処理中::{0:D2}%",(int)ps);
            }
        }
        catch
        {
            Console.ForegroundColor = ConsoleColor.Yellow;
            Console.WriteLine("***Max画像まで到達しました***");
        }
        Console.ForegroundColor = ConsoleColor.White;
        Console.WriteLine("\n***ダウンロード処理開始***\n");
        int cnt = 0;
        var elm = driver.FindElements(By.ClassName("iusc"));
        driver.Manage().Window.Minimize();
        foreach (var e in elm) {
           dynamic jsondata = JsonConvert.DeserializeObject(e.GetAttribute("m"));
            Console.ForegroundColor = ConsoleColor.Red;
            Console.WriteLine((string)jsondata.murl + "::wait.....");
            string imgurl = (string)jsondata.murl;
            if(4 <= Path.GetExtension(imgurl).Length && Path.GetExtension(imgurl).Length <= 5)
            {
                try
                {
                    cnt++;
                    string ext = Path.GetExtension(imgurl);
                    WebClient myWebClient = new WebClient();
                    myWebClient.DownloadFile(imgurl, path + "No-" + cnt + "-" + keyword + ext);
                    myWebClient.Dispose();
                    Console.ForegroundColor = ConsoleColor.Cyan;
                    Console.WriteLine("***" + cnt +"::" + imgurl + "\n::ダウンロード中、画面を閉じないでください...***");
                    Console.ForegroundColor = ConsoleColor.Green;
                    Console.WriteLine("***" + cnt + "::ダウンロード済***");
                }
                catch
                {
                    Console.ForegroundColor = ConsoleColor.Yellow;
                    Console.WriteLine("***ダウンロードが失敗しました***");
                }

            }else{
                Console.ForegroundColor = ConsoleColor.Yellow;
                Console.WriteLine("***画像の拡張子が不明のためダウンロードが失敗しました***");
            }
        }
        Console.ForegroundColor = ConsoleColor.Blue;
        Console.WriteLine("***ダウンロード完了しました***\n" + path);
        return true;
  }
}

タグ

10, bing, exe, img-dl-bing-sss, url, VS, アプリ, ウィンドウズ, キーワード, コード, こちら, こと, コンソール, サイト, ソース, ダウンロード, デザイン, ファイル, ファン, ブロック, 一括, 下記, 任意, 使用, , 入力, 動作, 動画, 勝手, 参照, 場合, 対応, 指定, 新垣結衣, , 方法, 検索, 環境, 画像, 画面, 皆様, , 綺麗, 解除, 起動, 開始, 関係者, 項目,

テストサーバーを適当に立ち上げる。

2020.06.02

Logging

テストサーバーを適当に立ち上げる方法を録画してみました。
最初の動画はselinux 無効などはしていませんが、それをしないと誤作動というか上手く動かなくなるのでご注意を!!

ちなみにファイヤーフォールの設定などはググりながらお勉強ください。動画ではそこらへんもググりながら設定しています。あんまりサーバー系のコマンド覚えていないだよね。サーバーの考え方がなんとなく頭に入っている程度です。

ちなみにこれをローカルサーバーじゃなくてVPSでサーバーとして公開するならばWAF(わふ)とかその他、いろいろな設定をすることをオススメします。尚、さくらレンタルサーバーのブログはいいよ!?

尚、cgi-binでPHPのバージョンを分ける動画は、ちょっと見るだけでは出来ないかもしれませんが・・・ヒントを2、3書いときますね、あとコマンドも例として記載します。

まずcentOS8の最小インストールでPHP7.4系を使う場合は鬼車(おにぐるま)が入っていないので入れなければなりません。そんな具合にインストールしていないものはガンガン入れていこうぜという具合です(*´?`*)

dnf --enablerepo=PowerTools install oniguruma-devel

これを全部入れることができればPHPの違うバージョンでも何とかなりますよ。ちなみにPHP5系とかは下記のようなものを入れるのであって、同じじゃないよ。同じものも有るけれど記述が違うので注意してくださいね。過去のものはググれば結構表示されます。

./configure \
--prefix=/var/www/php-7.4.6  \
--with-config-file-path=/var/www/php-7.4.6 \
--with-config-file-scan-dir=/var/www/php-7.4.6 \
--with-zip \
--enable-gd \
--with-jpeg \
--with-xpm \
--with-zlib \
--with-gettext \
--enable-bcmath \
--enable-sockets \
--enable-opcache \
--enable-exif \
--with-curl \
--with-bz2 \
--enable-calendar \
--enable-inline-optimization \
--with-expat \
--enable-mbstring \
--enable-mbregex \
--with-freetype \
--with-openssl \
--with-mysqli \
--with-pdo-mysql \
--with-mysql-sock=/var/lib/mysql/mysql.sock

最後にcgi-binってインストールしたPHPのphp-cgiを参照しているだけです。シンボリックリンクで!!!

あとは・・・。
Apacheグールプにオリジナルのユーザーを追加してあげて!!。尚、最初の動画はrootで動かしているだけどね。基本的にrootではなくユーザー追加してそれをApacheグールプ追加するのさってヒントも書いときますね。

タグ

2, , 7.4, 8, centOS, cgi-bin, php, selinux, VPS, WAF, いろいろ, インストール, おすすめ, お勉強, こと, コマンド, これ, ご注意, サーバー, さくら, そこら, その他, それ, テスト, バージョン, ヒント, , ファイヤー, フォール, ブログ, べん, レンタル, ローカル, 使, , 公開, 動画, 方法, 最初, 最小, 無効, 程度, 考え方, 記載, 設定, 誤作動, 適当, 録画, ,

21lessons{レッスン}を読了?

2020.05.03

Logging

アマゾンの朗読サービスで21lessonsを読了。普通に読めば結構な時間を費やしそうだけど、3日か4日で朗読が完了した。朗読は途中から2倍速再生で聞いたのだけど情報は聞き取れたので、これからこの方法(2倍速)で朗読本は読んでいこうと思います。肝心の感想だけどサピエンス全史の方が面白いかなと思います。

この本はどちらかと言うと客観的には見ているもののユヴァル・ノア・ハラリ氏の宗教観やジェンダー感が繰り返し書かれているところが多かった、ユヴァル・ノア・ハラリ氏は世界の殆どのことは虚構なのだと言っている。これは間違っていないと思います、法律やマネーなんていうのは良い例で人々がルールを信じているから成り立つものだから。

これからどう生きていけば良いのかなどは明確な答えはユヴァル・ノア・ハラリ氏は言っていないものの、これからは人工知能などやバイオテクノロジーの進化により今までとは予想もしない世界になることだけは間違いないようです。

長生きすればその恩恵を受けれるかもしれない。

尚、客観的に21lessonsを解説しているサイトが合ったので紹介します。
21レッスン『図解』きょん
https://note.com/my_kyon_note/n/n88e9db42abf5

タグ

2, 21, , 4, lessons, アマゾン, こと, これ, サービス, サピエンス, ジェンダー, ところ, どちらか, のあ, バイオテクノロジー, ハラリ, マネー, もの, ユヴァル, ルール, レッスン, 世界, 予想, 人々, 人工, , 倍速, 全史, 再生, 完了, 宗教観, 情報, , 感想, , 方法, 明確, 時間, 普通, 朗読, , 殆ど, 法律, 知能, 答え, 結構, 肝心, 虚構, 読了, 途中, 進化,

Standard PHP Library(SPL)というライブラリーには便利な関数が入っている。

2019.04.07

Logging

The Standard?PHP?Library (SPL) は、標準的な問題を解決するためのインターフェイスやクラスを集めたものですと公式ページに書かれている通り
便利な関数です。例としてspl_autoload_registerを紹介。
ぐぐるとどんな機能なのか書かれているので割愛してます。

<?php
spl_autoload_register(function($name){
    include __DIR__ . DIRECTORY_SEPARATOR ."class" . DIRECTORY_SEPARATOR . $name . '.php';
});
$class_demo = new class_demo();

タグ

autoload, class, demo, DIR, DIRECTORY, function, include, Library, lt, name, new, php, register, SEPARATOR, SPL, Standard, The, インターフェイス, クラス, ため, ページ, もの, ライブラリー, , 便利, 公式, 割愛, 問題, 機能, 紹介, 解決, 通り, 関数,

文字の置き換えはコマンドラインから

2017.09.19

Logging


文字の置き換えは「sed」というコマンドを使うことで
文字の置き換えは可能ですが、文字の置き換えを行なった後、
ファイルの保存もしくは上書き保存を行わないと意味が無いので
注意が必要になります。
例えばリナックス系のサーバで文字を置きたい場合、このような感じに
記述すると文字の置き換えが可能となります。

sed -i -e "s/utf8mb4/utf8/g" mysql.sql

結構、大きめサイズのテキスト形式のファイルも難なく
置き換えが可能です、ちなみにWindowsでも同じようにコマンドから
文字の置き換えすることは可能ですが少々面倒なので、リナックスでの
置き換えを自分は推奨します。
ちなみに文字コードがUTF8ではない場合は
文字コードをiconvでUTF8に置き換え後、文字列の置き換えを
すれば良いのでとても楽です。


ちなみにこちらの動画は悪い例↑
?

タグ

-i, 4, 8, e-, iconv, mb, MYSQL, quot, sed, SQL, UTF-, Windows, コード, こちら, こと, コマンド, サーバ, サイズ, テキスト, ファイル, ライン, リナックス, 上書き, , 保存, 動画, 可能, 場合, 大きめ, 形式, , 必要, 意味, 推奨, 文字, 文字列, 注意, 自分, 記述, 面倒,

何度も見ているじぃさんは賢い。

2017.03.02

Logging


この映画は何度も繰り返してみている。
この映画で一番、良いとこどりは主演の俳優でもなく。
爺さんです。全部奪っているじゃないかこの映画を。
映画の内容でも画てきなモノもすべて 爺さんが奪っている良いとこ取りの賢い爺さんだと
こういうの好きだなと感じます。
ちなみに、ちょっとドロってしてます。
映画ではカンブリア紀のことを例に出していますが これって社会に置き換えることもできますし
人生に置き換えてみることも出来ます。
この映画を見たとき結構いろいろあった時期なので 余計にいろいろ痛感したのかもしれません。
リミットレスという映画があります。
こちらストーリーが飛んじゃってますが 飛んじゃってるので面白かったです。
2つの映画は相反するところがありますが ひとつ共通するところがあります。
それは知恵=頭脳=経験が鍵になるところです。
 

タグ

2, いろいろ, カンブリア紀, こちら, こと, これ, ストーリー, すべて, それ, とき, どこ, ところ, どり, ドロ, ひとつ, もの, リミット, レス, 主演, 人生, 何度, 余計, , 俳優, 共通, 内容, 映画, 時期, 爺さん, , 痛感, 知恵, 社会, 経験, , 頭脳,

関数型プログラミングに目覚めた!IQ145の女子高校生の…

2015.08.20

Logging

関数型プログラミングに目覚めた!IQ145の女子高校生の先輩から受けた特訓5日間という本を買ったのですが、プログラミングの作法はあまり書かれていなく、どちらかと言えば解説が多い本です。ただ、自己流でいままで作ってきた人にはそれなりに知識の得られる本になっていると思います。自分はいままで誰かに習った経験がないので結構ためになった本です。習える環境がある人達を見ていた経験(派遣)から言うと羨ましい限りです。習えない環境の下で働いている人達の方が貪欲であることは確かだと思います。これって良い例かわからないですが、日本と昔のアフリカの教育みたいなものでアフリカの生徒たちは日本の生徒たちに比べて貪欲に学習します。教わることが当たり前の環境の下とそうでない違いは明らかに違ったりするのです。この「関数型プログラミングに目覚めた!」という本はそんな貪欲にプログラミングを学びたい方には結構ハードルが高いですが、勉強になることは確かだと思います。Amazonの評価は若干、低いものの、そう書いていることは悪く無いと感じました。

タグ

145, 5, IQ, アフリカ, こと, これ, それなり, ため, どちらか, ハードル, プログラミング, もの, , , 作法, , 先輩, 勉強, 女子, 学習, 当たり前, 教育, , 日本, , , 派遣, 特訓, 環境, 生徒, 知識, 経験, 自分, 自己流, 解説, 誰か, 貪欲, 違い, 関数, 限り, 高校生,

悪人のススメを走り読み(´Д`)悪人になれ!!

2014.08.23

Logging

悪人のススメを走り読みしましたので感想なんかを!!善人より悪人のほうが得をするとか言う話です、それなりに説得力はあります。読んでいて悪人というより、どちらかと言えば、真面目と不真面目の話を書いているような気がするのです…真面目にコツコツやっている人は、たまに羽目をはずすと周囲から驚かれる、批判される、逆に遊び人が真面目なことをすると評価が良いという話です。そんな内容の話がいろいろな例を取り上げて力説している本です。
こんな人にはおすすめ、真面目で堅物な人。
 

タグ

nbsp, いろいろ, おすすめ, こと, ダマ, どちらか, 不真面目, , , 内容, 力説, 周囲, 善人, 堅物, , 悪人, 感想, 批判, , , 真面目, 羽目, 評価, , 説得力, 走り読み, , 遊び人,