信頼はずっと、挑戦はもっと。

お問い合わせ
TEL:03-3496-3888

BLOG コアテックの社員ブログ (毎週月曜~金曜更新中)

LIST OF ARTICLES

記事一覧

  • 雑記

    緊急事態宣言

    はじめまして。3月に入社しましたyuです。よろしくお願いします。3度目の緊急事態宣言が発令されました。外食を控えようと思い、ウーバーイーツを初めて利用してみました。便利だなと思いました。緊急事態宣言過ぎてからも利用すると思います。

  • 画像:ブログサムネイル

    雑記

    転ばぬ先の杖

    02月に入社しましたぐっちです。どうぞよろしくお願いします。突然ですが皆さん電子機器の水没対策していますでしょうか?ふとしたきっかけで飲み物をこぼしPC等の電子機器を水没させない為にも、私は蓋付きの物(タンブラー)を愛用しています。転ばぬ先の杖として、皆さんも使ってみてはどうでしょうか?

  • 画像:ブログサムネイル

    テクログ

    Go言語でマークダウンファイルをhtmlファイルに変換する処理を作る

    はじめまして。たなしょです。   日頃から技術的なことをメモをする際にマークダウン形式でメモを取っているのですが、それをブログに上げる際にいつもvscodeでhtmlファイルにコンバートをかけていました。そこでGo言語の学習のついでに変換機を自作しようと思い作ることにしました。まだまだ追加で実装しなくてはいけないところが多々ありますがある程度メイン部分が完成したので機能や苦労した点、今後の改良点をここに記載したいと思います。長くなってしまったので要約です。TL;DR・ごく一部の文字は変換することができた。・苦労した点はcodeタグ内の「<>」の扱いと、pタグ内に文字をどのように入れるか。・今後はaタグや画像の出力、リストなどにも対応していきたい。・息抜きに違う言語で開発する際はぜひGo言語を。実行結果変換したhtmlを画面で見るとある程度読めなくはないのかなという感じでしょうか。ファイルの全体や各ファイルについて全体的なファイルは下記のようになりました。. |-- Makefile |-- css.go |-- execute.go |-- generate.go |-- go.mod |-- main.go |-- paragraph.go |-- reg.go `-- test.md mdファイルとMakefileを除いて331ステップをGo言語で作成していました。cloc mvtohtml/     9 text files.     9 unique files.     1 file ignored. github.com/AlDanial/cloc v 1.88 T=0.02 s (326.4 files/s, 18156.6 lines/s) ------------------------------------------------------------------------------- Language           files     blank    comment      code ------------------------------------------------------------------------------- Go                6       62       10      331 Markdown             1       5       0       20 make               1       4       0       13 ------------------------------------------------------------------------------- SUM:               8       71       10      364 ------------------------------------------------------------------------------- 各ファイルの機能は下記のようになります。main.go 引数チェックやmdファイルのファイル名を取得する。  execute.go  htmlファイルに書き込む処理。   css.go css部分を書き込む処理。  generate.go 変換処理の大本。  paragraph.go  pタグの変換処理。  reg.go htmlファイルに変換する際の「<」と「>」が存在するか判定する処理。  機能詳細、苦労した点h1タグやpタグの判定は各行の1文字目~4文字目を見て判定しています。  brタグは各行の後ろ1〜3行目が空白かどうかで判定しcase文で各パターンを判別しています。func pattern_check(line string, codeline int, slice_arr *[]string) (int, string) { br_flg := 0 pattern := "NONE" html_line := "" h_string := "" // first string search if line == "" && codeline == 0 { html_line += "\n" return codeline, html_line } else if line == "" && codeline == 1 { html_line += "\n" return codeline, html_line } else { slice := strings.Split(line, "") length := len(slice) if slice[0] == "#" && slice[1] == " " { pattern = "H1" for i := 2; i < length; i++ { h_string += slice[i] } } else if slice[0] == "#" && slice[1] == "#" && slice[2] == " " { pattern = "H2" for i := 3; i < length; i++ { h_string += slice[i] } } else if slice[0] == "#" && slice[1] == "#" && slice[2] == "#" && slice[3] == " " { pattern = "H3" for i := 4; i < length; i++ { h_string += slice[i] } } // code check if line == "```" { pattern = "CODE" } // br check if slice[length-1] == " " && slice[length-2] == " " && slice[length-3] == " " { br_flg = 1 } // in code tag check if pattern != "CODE" && codeline == 1 { pattern = "INCODE" } if pattern != "NONE" { paragraph(pattern, &html_line, slice_arr) } switch pattern { case "H1": html_line += "<h1>" html_line += h_string html_line += "</h1>" case "H2": html_line += "<h2>" html_line += h_string html_line += "</h2>" case "H3": html_line += "<h3>" html_line += h_string html_line += "</h3>" case "NONE": if br_flg == 1 { for i := 0; i < length-3; i++ { html_line += slice[i] } html_line += "<br>" } else { html_line += line } html_line += "\n" paragraph(pattern, &html_line, slice_arr) case "CODE": if codeline == 0 { codeline = 1 html_line += "<pre>" html_line += "<code>" } else { codeline = 0 html_line += "</code>" html_line += "</pre>" } case "INCODE": rep_line := "" if reg(line) { rep_line = strings.Replace(line, "<", "&lt;", -1) rep_line = strings.Replace(rep_line, ">", "&gt;", -1) html_line += rep_line } else { html_line += line } } if pattern != "NONE" { html_line += "\n" } return codeline, html_line } } 苦労した点は2点あり、一点目はcodeタグ内のh1タグなどの「<>」がhmtlがファイルに変換されるとそのままタグとして読み込まれてしまうため文字列に置き換えるところでした。解決策は「INCODE」パターンに入ったときにreg.goを呼び出して「<>」が存在するかを判定して、存在した場合は「<」は「&lt;」、「>」は「&gt;」に変換をかけることにしました。  case "INCODE"詳細   case "INCODE": rep_line := "" if reg(line) { rep_line = strings.Replace(line, "<", "&lt;", -1) rep_line = strings.Replace(rep_line, ">", "&gt;", -1) html_line += rep_line } else { html_line += line } reg.go詳細   goの標準ライブラリであるregexpと正規表現を利用して各タグが行内に存在するか判定しています。package main import ( "regexp" ) const ( HEADING  = `</?h[1-6]>` PARAGRAPH = `</?p>` CODE   = `</?code>` BREAK   = `<br\s?/?>` ) func check_regexp(reg string, str string) bool { flg := regexp.MustCompile(reg).Match([]byte(str)) return flg } func reg(text string) bool { reg_flg := false regexp_arr := [...]string{HEADING, PARAGRAPH, CODE, BREAK} for _, v := range regexp_arr { reg_flg = check_regexp(v, text) if reg_flg { break } } return reg_flg } 2点目は「#」や「```」(ここでは特殊文字という)以外の文字が1文字目に現れた場合はpタグ内に格納し、特殊文字が現れた場合はpタグを閉じるようにするところです。   解決策はパターン「NONE」で文字列スライスが空の場合はpタグと行を文字列スライスポインタへ格納、文字列スライスに文字が入っている場合は行を文字列スライスポインタへ格納、パターンが「NONE」以外ならpタグを文字列スライスに格納して文字列スライスポインタ内の文字列をhtmlファイルに出力する方法で解決できました。  以下paragraph.go の詳細です。  package main func is_Empty(s *[]string) bool { return len(*s) == 0 } func slice_Delete(s *[]string) { res := []string{} *s = res } func slice_Join(s *[]string) string { var str string for _, v := range *s { str += v } return str } func paragraph(pattern string, html_line *string, slice_arr *[]string) { if pattern != "NONE" { if !(is_Empty(slice_arr)) { *slice_arr = append(*slice_arr, "</p>\n") *html_line = slice_Join(slice_arr) slice_Delete(slice_arr) } } else { if is_Empty(slice_arr) { *slice_arr = append(*slice_arr, "<p>") *slice_arr = append(*slice_arr, *html_line) } else { *slice_arr = append(*slice_arr, *html_line) } *html_line = "" } } 今後の改良点まだまだpタグ、codeタグ、hタグにしか対応してないので今後はaタグや画像の出力、リストなどにも対応していきたいです!おわりに皆さんは業務でPHPを使うことが多いと思いますがたまには息抜きに違う言語で開発してみるのはどうでしょうか?   特にインタプリタ型の言語とコンパイル型の言語では考え方が違うためとてもいい勉強になると思います。  その際はぜひGo言語は勉強してみてはいかがでしょうか?   今回のソースの詳細は下記リンク にあるのでマークダウン変換機能を作る際は参考にしてみてください(笑)https://github.com/jacoloves/lab/tree/master/go_tool/mvtohtml  

  • 画像:ブログサムネイル

    テクログ

    SEO対策のきほん

    ◆SEOとはウェブマーケティングにおいて重要な施策のひとつであるSEO。ウェブ担当者やウェブマーケターにとってはもはや必須のスキルとなっていますね。SEOとはSearch Engine Optimization(検索エンジン最適化)の略称でざっくりと説明すると、検索エンジンの検索順位を上げたり、表示される情報を増やすことで自社サイトにできるだけ多くの顧客を集客することを目的としたマーケティング手法です。今回は、一番メジャーな検索エンジンであるGoogleをベースに、SEOにおいて基本となる3つの要素について紹介したいと思います。◆検索順位はどのように決まるのか?SEOの主な目的である「検索順位の向上」ですが、この検索順位はどのように決められているのでしょうか?Googleの検索順位が決まるまでには、以下の3つのステップがあります。ウェブサイトを見つけるウェブサイトの情報を持ち帰って整理する整理した情報をもとにウェブサイトを評価するSEOの基本を知るために、まずはこのステップについて理解しましょう。①ウェブサイトを見つける大前提ですがGoogleが知らないウェブサイトはGoogleには表示されません。でも普段みなさんがGoogleで検索すると非常に多くのウェブサイトの情報が表示されますよね。これらはウェブクローラ(bot、スパイダーなどとも)と呼ばれるプログラムが、日々世界中のあらゆるウェブサイトの情報を集めてきているからです。検索エンジンが精度の高い検索結果を表示するために、まずはこの情報収集が重要になります。②ウェブサイトの情報を持ち帰って整理するウェブクローラが持ち帰ってきたあらゆるウェブサイトの情報はGoogleのサーバーに蓄積されていきます。一つのウェブサイトの中でもテキスト、画像、動画など色々な形式の情報があるので、それらを適切な形で整理し、情報の内容(新しさ、テーマ性など)によって細かく分類していきます。図書館の本があいうえお順に並べられているように、Googleも集めてきたウェブサイトの情報を細かく分類していつでも情報を取り出せるように整理しています。③整理した情報をもとにウェブサイトを評価する最後に、整理された情報をもとにGoogleが独自のアルゴリズムを使ってウェブサイトを評価します。そしてより評価の高いページが検索順位の上位として表示されることでランキングが付けられます。これが検索順位が決まるまでの一連の流れになります。◆検索順位を上げるにはこの3つのステップを改善するこの3つのステップを別の言葉で言いかえるとクロールインデックスアルゴリズム(による評価)と言います。SEOで検索順位を上げていくためにはこの3つの要素を理解し、それぞれが最適な状態となるよう適切な施策をおこなうことが重要となります。これがSEOで基本となる3つの要素です。ではここからは、具体的にSEOでどのように最適化していくのか、それぞれの要素に対するSEOの取り組み方について見ていきましょう。◆SEOの取り組み方3つの要素が最適な状態というのはつまり、ウェブクローラが見つけやすくウェブクローラが情報を持ち帰り、整理しやすくアルゴリズムに評価されやすいウェブサイトということになります。この状態を目指すためにそれぞれどんな対策をしていけばよいでしょうか。①クロールの改善検索エンジンのプログラムがウェブサイトの情報を集めることを「クロール」と呼びます。クロールをするので「ウェブクローラ」なんですね。そしてこのクロールのしやすさのことを「クローラビリティ」と言います。ウェブクローラがウェブサイトを見つけやすい状態にするためには、このクローラビリティを上げていくことが大切です。ウェブクローラは、通常ウェブサイトに貼られたリンクやサイトマップXMLと呼ばれるウェブページのURLの一覧などから、新しいウェブサイトやサイトの中の個別のページを発見します。そのため、新しくウェブサイトやページを作った場合は、リンクやサイトマップXMLを使って「ここに新しいサイト(ページ)がありますよ!」ということをウェブクローラに伝えてクローラビリティを上げましょう。②インデックスの改善ウェブクローラが情報を持ち帰り、整理して保存することを「インデックス」と呼びます。クローラビリティと同じくこちらもインデックスのしやすさを「インデクサビリティ」と言ったりします。インデックスされてないウェブサイトはクロールされていても検索結果には表示されません。また、検索順位はインデックスされた情報をもとに評価されるので、ウェブサイトにどれだけ良い情報があるとしても、ウェブクローラが読み取れなかったり、理解できない状態になっていると正しく評価することができません。プログラムであるウェブクローラが正しく情報を理解できるように、HTMLを分かりやすく記述したり、画像や動画には代替テキストを用意するなどでもれなく情報を持ち帰ってもらいましょう。また、実際にウェブページが正しくインデックスされているかをサーチコンソールなどのツールで確認することも大切です。③ウェブサイトの改善Googleにはコアウェブバイタル、モバイルフレンドリー、パンダアップデート、ペンギンアップデートなど一部公表されているアルゴリズムのほかにも数百のアルゴリズムがあると言われています。また、それらも日々アップデートがおこなわれているので、すべてのアルゴリズムに対応したウェブサイトを作るのはとても難しいでしょう。そのため大事なことはアルゴリズムに評価されるウェブサイトを作るのではなく、ユーザーに評価されるウェブサイトを作るということです。Googleは検索エンジンとして「ユーザーの検索意図を理解してユーザーが本当に知りたい情報を提供すること」を重要視しているので、ユーザーのためのウェブサイトを作ることが結果的にアルゴリズムに対しても最適化することにつながります。どんなアルゴリズムがあるかを理解しつつも、ユーザーにとって有益なウェブサイトづくりを目指しましょう。◆SEOで大事な3つの要素 クロール・インデックス・アルゴリズムさて、ここまで検索エンジンで検索順位が決まるまでの3つのステップと、それに対するSEOの取り組み方について書かせていただきました。今回お話したこのクロール・インデックス・アルゴリズムはSEOの基本となる重要ワードになりますので、ぜひ覚えていただければと思います。一般的にSEO対策というと「タイトルタグにキーワードを入れる」「外部リンクを増やす」などピンポイントの施策として紹介されていることが多いですが、どんな施策も本来はこの3つの要素のいずれかを改善するためにおこなうものです。SEO対策をおこなう際は、この3つの要素を意識して「いま自分のウェブサイトではどの要素を改善するべきなのか」を考えながら施策をおこなっていきましょう。今回のお話は「Google 検索の仕組み」というサイトでもっと分かりやすく紹介されています。SEOや検索エンジンについて更に知りたくなった方はぜひご一読ください。▼Google検索の仕組みそれでは、また!

  • 画像:ブログサムネイル

    雑記

    諭吉さんの激しすぎるギャップ

    日本にいるなら、国民も海外旅行者も全ての人がお世話になっているこの御方。「天は人の上に人を造らず、人の下に人を造らず」の名言と慶應義塾の創設者で有名な、福澤諭吉。最近は、ナントカペイやクレジットカードの利用で目にする機会が減ってきてはいますが、でも変わらず日本中がお世話になっています。いつもありがとうございます。なぜこの御方の名前を出したかといいますと、実は弟から Amazon Kindle ペーパーホワイトをプレゼントされたことをきっかけに、せっかくなら今まで手を出したことのないジャンルで電子書籍を買ってみようと思ったことがきっかけで「学問のすゝめ」と「福翁自伝」を読んだからになります。普段、まじまじと見る機会はないと思うので宜しければお財布の中にいる諭吉さんを取り出して一度眺めて頂けますでしょうか。お財布にいなければATMにいます。見て頂いて、どんな印象を受けますか??自分は、「堅そう」「鬼真面目」「無愛想」こんな感じでしたが、上記の書籍を読むとその印象はまるで逆のものになります。前置きが長くなりましたが、今回は福澤諭吉という人物について書きたいと思います。まず、「学問のすゝめ」ですが本書の冒頭に書かれている「人々は皆平等である」と謳った上記の名言には続きがあり「でも実際には人間世界に格差はあるし、その格差は学ぶかどうかで決まるから勉強することを勧めるよ」と、大雑把に言うとこんな内容でして、理想論だけでなく現実味も合わせてやっぱり勉強って大切だよなと思わせてくれる一冊でした。勉強についてだけではなく、100年前に書かれたとは思えないほど今の時代でも通用する人生に対しての本質を突いた考え方、人間関係など大切にした方がいい部分が書かれていて、非常に優れたビジネス書だなと思いました。今後は新刊だけでなく、こういった昔の本もどんどん読んでいきたいなと思わせてくれました。ありがとう、諭吉さん。しかし、自分が伝えたいのは「福翁自伝」!!!めちゃめちゃ面白いんです、この本!!!この御方の生きてこられた半生が綴られていますが、その内容が衝撃的なんです。まずこの御方、お酒大好き過ぎてしょうがないです。大好きどころか泥酔して何度もお酒でやらかしてます。笑自分も何度もやらかしています。親近感が湧いてしょうがないです。しかも、お酒の味を覚えたのがなんと幼少時代というぶっ飛んだエピソードを諭吉さんはお持ち。諭吉さんの月代(サカヤキと読みまして、ちょんまげの周辺の毛がない部分を指すそうです。)をお母さんが剃る時に、痛いから嫌がっていたそうなんですが(頭剃られるなんて経験ないですけど、痛そうですよね)その時に、困ったお母さんは「分かった。酒を飲ませてやるからそこを剃らせろ」と言って諭吉さんもお酒が飲みたいから従っていたそうです。いや、お母さんファンキー過ぎません!?笑今で言えば、お母さんが「ちょっと静かにしてて」とスマホを与えるような感じで小さい我が子に酒を与えるって、そこでもう計り知れないです、この親子。そこからまだハタチにもならない未成年で立派な酒飲みに育ったと本人が綴っています。でも、このお母さん本当に懐が深いんです。元々、福澤家の主人は亡くなっていたところ、その上お兄さんまでもが病気で亡くなってしまい、お母さんと妹はいましたが女性では家を相続することができないという時代。福澤家の男は諭吉さんただ1人だったので、周囲からは「兄の不幸でお前が家を相続した以上、御奉公大事に勤めをするはずのもの。なのに、オランダの学問をやりたいとはどういうことだ。呆れて物も言えん。お前の母もそれを許しはしない。」と言われたそうで、家を継いだら自分のやりたいことは諦めなければならない大きなピンチがあったそうです。そこで諭吉さんは考えた。「頼みになるのは母1人だ。母さえ承知してくれれば誰が何と言っても怖いものはない」と。そして、お母さんに「自分にはやりたいことがある。だからここを出ていきたい。」と自分の思いの丈を伝えたそうです。しかし、諭吉さんが家を出てしまうと五十何歳のお母さんと、生まれてまだ3歳の亡くなった兄の娘、その2人を家に残してしまうという状況です。そんな状況で、我を通す諭吉さんも凄いですが、何よりもここで出たお母さんの言葉に驚きました。「うむ。よろしい。兄が死んだけれども、死んだものは仕方ない。お前もまたよそに出て死ぬかもしれないが、それはどうこう言っても仕方ない。どこへでも出ていきなさい。」と言ったそうです。え、ちょっとお母さん、カッコ良すぎじゃないですか??きっと周囲から冷たい眼差しや、批判など食らうことは分かっていたと思いますが、それでも本人のやりたいことを尊重し、羽ばたいていけと送り出すその懐の深さ。しかも当時は飛行機なんてないので海外へ行くのも命がけの時代に「死ぬことをどうこう言ってたら何も始まらないから、行ってこい」と言って送り出す懐の深さ。もう、その懐に惚れそうです。いや、惚れました。またこの諭吉さん、お茶目な人だったそうです。囲碁なんてやったことなく何も知らなかったそうですが、塾の学生仲間が囲碁を始めると、しゃしゃり出て上手者のようなことを言う人がいてイラッとしたそうで。「あー、その黒の手、間違いじゃない??ほら、やられた。バカな奴だな、あれを知らないなんて。」と振り切った知ったかぶりを横からしていたそうです。笑そんなこと言っちゃうから向こうから「じゃあ福澤、一番やろうか」と言われて「馬鹿言うな、君たちを相手にするのは時間の無駄。そんな暇はない」と言って逃げたものの、その後何かのタイミングで化けの皮が剥がれて散々罵られたそうです。笑いや、そんなのいずれバレるの分かるじゃんって 笑笑でも、知ったかぶりをしたくなっちゃった諭吉さんお茶目で、可愛くないですか??肖像画からは全く想像つきませんが。笑他にも物を盗んじゃったとか、嘘ついて欲しいものを手に入れたとか、悪知恵を働いて器用にこなしていく面白エピソードが沢山あるので本当にイメージが、ガラリと変わります。しかも自伝といっても成功自慢があまりなく、自分のダメなところや失敗談を包み隠さず綴っているので、その点も懐が深い、人間味溢れる人だなという印象へ変わりました。ただ、やはり凄い人であることには変わりなく、その1つで自分がビックリしたことですが、今自分たちが当たり前のように払っている「授業料」実はこれ福澤諭吉が発案したそうです。それまでの私塾の習わしをぶち破り、「教授も人間の仕事。人間が人間の仕事をして金を取るのに何の不都合があるんだ。周りに構うことはないから公然と値を決めて生徒から取るがいい」と言い、授業料という名を作って生徒に払わせた。と綴られています。このエピソードに面白い一文がありました。「何事によらず新工夫を考えてこれを実際に行うというのは、その事の大小を問わず、よほどの無鉄砲でなければ出来たことではない。その代わりに、それが首尾よくいって、いつの間にか世間一般の習慣になれば、私にとっては願いが成就したようなもので、こんな愉快なことはありません。」いつの時代も、何かを考えてそれを実行できる人というのはそうそういないし凄いことであると感じましたし、今ある常識や慣習を疑い、独自に工夫して実行し改善を図っていくその貪欲な姿勢もカッコいいなと感じました。インターネットなんて無い時代に、自分の発案したことが世間一般に定着していくというのは、世間の人々に受け入れられながら広がっていったんだろうなと想像できますし、もの凄い偉業だと思います。最後に、福澤諭吉は自分の人生を振り返ってこう綴っています。「人生過去を想えばぼんやりとして夢の如し、とはいうが私の夢はとても変化の多い賑やかな夢でした。小士族に生まれた少年が、ひょいと外に飛び出して西洋学の門に入り、以前と変わった本を読み、以前と変わった人と交わり、自由自在に運動して、二度も三度も外国に行けば考えはだんだん広くなって、日本が狭く見えるようになってきたのは、何と賑やかなことで大きな変化ではあるまいか。」と。今は、新型コロナウィルスの影響で旅行や外に出ることも、ましてや人と対面で話すことさえ難しい時代ですが、自分も色んな人と話したり色んな所へ行って考えが広がっていくこと自体好きですし、諭吉さん程ではないですがお酒も好きなので、いつかこのコロナが終息して以前のように戻ったら、今まで以上に海外旅行や人とお酒を飲む時間を楽しんで、諭吉さんのように自分の知見を広げていこうと思います。

  • 画像:ブログサムネイル

    雑記

    読書好きの私が、最近読んで一番印象に残っている本

    私は小さい頃から読書好きでして、今でも毎日就寝前に読書しています。この1年で30-40冊ほど読んだと思いますが、最近読んだ本の中でも特に印象に残っている本を紹介しようと思います。それがこちら、草薙龍瞬さんという僧侶の方の本「反応しない練習」です。最初はスルースキルを高めるテクニック的な本かな、と思っていたのですが、・無駄な反応や他人との比較をやめ、・自分自身の価値観に従って生きるという、ほとんどの自己啓発本で一致するようなアドバイスを、仏教的視点に基づいて説いているのが新鮮でした。この本の中で特に印象に残っている話を、2つほど紹介します。1.余計なことを判断しない余計な判断とは、例えば「あの人は正しい(間違っている)」「あの人は嫌い」「ついてない、最悪」といったことが当てはまると思います。「ついてない」「最悪」「失敗した」という判断は憂鬱や不満といったネガティブな執着を生み出しますし、正解・不正解のない物事を「あの人は正しい(間違っている)」と断定することは自分の視野を狭め、自分の考え方がその判断に執着してしまいます。余計な判断は足枷になってしまうんですね。じゃあ、余計じゃない判断は何かというと、著者は自分にとって役に立つ・有益なことだけ判断するべき、といっています。例えば芸能人の不倫の良し悪しとか、あの人は性格悪いらしいとか、そういった自分に無益なことに反応せずに、寝る前に何をしたらよく眠れるか、どのツールを入れたら仕事が捗るか、といった自分に有益なことにだけ判断しよう、ということですね2.本当の自分 = がんばれる自分 ー 弱い自分これは僕も耳が痛いのですが、自分のことを「がんばれる自分」をベースに考えてしまうんですよね例えば勉強でも、今日は8時間勉強しようと決めても、スマホをいじったりして4時間しかできない、みたいなことは誰にでもあると思います。そうすると、本当は8時間できたはずだったのに、と理想の自分(妄想)に執着し、現実の自分とのギャップに苦しむことになります。そうではなく、快楽や怠惰に流される弱い自分を等身大の自分として受け入れ、そこからどうやったら頑張れる自分に近づけるか(弱い自分を減らせるか)を考え、努力しよう、という話です。ちょっとスピリチュアルな話で気持ち悪いかもしれませんが、僕はこの二つのアドバイスを意識するようになってから、ストレスを感じることが減った気がします。それほど読むのに時間がかかる本では無いので、気になった方はAmazonのリンクを貼っておくので読んでみてください!https://www.amazon.co.jp/%E5%8F%8D%E5%BF%9C%E3%81%97%E3%81%AA%E3%81%84%E7%B7%B4%E7%BF%92-%E3%81%82%E3%82%89%E3%82%86%E3%82%8B%E6%82%A9%E3%81%BF%E3%81%8C%E6%B6%88%E3%81%88%E3%81%A6%E3%81%84%E3%81%8F%E3%83%96%E3%83%83%E3%83%80%E3%81%AE%E8%B6%85%E3%83%BB%E5%90%88%E7%90%86%E7%9A%84%E3%81%AA%E3%80%8C%E8%80%83%E3%81%88%E6%96%B9%E3%80%8D-%E8%8D%89%E8%96%99%E9%BE%8D%E7%9E%AC/dp/4041030404