Life is a Beautiful Struggle

jentagawaの平凡な毎日。ウェブ制作、音楽、MIDIコンについて。

【書籍レビュー】ヨコハマ買い出し紀行 x EVISBEATS/いい時間

日常系漫画

日常系漫画が好きです。

昔は誰が好き好んでこんな単調なものを読むんだろうと思ってました。
けど、歳をとるにつれて、その系統が占める割合が増えました。

流し読みできるし、ホッと一息つきながら読むことができます。


日常系の中でも、設定に一癖あるものが好きです。

ピュ~と吹くジャガー聖☆おにいさんダンジョン飯とか、海外だとCalvin and Hobbesとか、

ヨコハマ買い出し紀行もその類で、
舞台は緩やかに衰退を迎える地球です。

海面上昇で人が住める土地が減り、(おそらく)人口も減っています。
そんな環境下で人類は、環境の変化に争うことをやめ、のんびり最期を迎えようとしてます。


そんな舞台ではありますが、主人公は、カフェを営むアンドロイドで、そののんびりとした日常です。
あくまで主役はアンドロイドであり、地球環境の変化などの問題は、時折、進行が描写される程度です。



現在、猛スピードで変化してく現代社会への反発や、高齢社会などによる将来不安で、働き方や生活が見直されてる中で、
この漫画のような、発展を追求しない社会は、また違った視点として、参考になるところがあるのかもしれません。


読むときBGMにしてた曲。
↓↓↓
www.youtube.com

重複チェックを追加

PDO接続とは何ぞ?と思い、試しがてら、LIGで紹介されてるフォームに、重複チェック機能を追加。

こんな感じの箇所を抜粋&追記。

function saveDbPostData($data){
//追記開始
$name = $data['email'];
        $sqlmail = "select count(*) from post where name = '$email'";
        $ss = $this->pdo->query($sqlmail);
        $count = $ss->fetchColumn();
        if($count > 0){
        echo 'そのemailアドレスは既に使用されています。';
 }else{
//追記ここまで
$smt = $this->pdo->prepare('insert into post (name,email,body,created_at,updated_at) values(:name,:email,:body,now(),now())');
$smt->bindParam(':name',$data['name'], PDO::PARAM_STR);
$smt->bindParam(':email',$data['email'], PDO::PARAM_STR);
$smt->bindParam(':body',$data['body'], PDO::PARAM_STR);
$smt->execute();
}

フォームで入力されたメールアドレスをデータベースから取得。データベースに取得したデータが一行以上あればエラーを表示。なければデータ登録に進む。

多分これでいい、
かな?

完全なファイル構成は、元ネタを参考にしてください。


引っ越しの準備をちまちまと進めてます。

特定文字列を含むデータの個数を返す

書籍レビューばかりではつまんないので、今日は、最近作ってるサイトでメモしときたいことです。

参考: 【Mysql】COUNTを条件指定で | altplus


目的は、フォーム内のラジオボタンで特定の回答が選択された数の取得です。

$sql = SELECT COUNT(ラジオボタンのname属性 = '特定文字列' or null) AS data FROM テーブル名;


多分これでsqlに特定文字列の回答数が入ったはず…

改めて時間ができたときに試し、結果を追記します。笑
追記
多分これでsqlに特定文字列の回答数が入ったはず…
正しくは、特定文字列がキーでその個数が値の配列が$sqlに入ります。
多分。


一昨日は、仕事がてら、クラブ2件とお気に入りの近所のバーに行ってきました。


縁もゆかりもない土地に来て5年。
ふらっと寄ったとこに、知り合いがいる嬉しさを感じてます。コミュ障な私にとっては感慨深いです。


春からまた全く知らない場所に移るのですが、そこでの新たな出会いが楽しみです。

【書籍レビュー】天国の車庫 今野雄二

天国の車庫

天国の車庫

ニューヨークのハウスミュージックシーンの話

80年代のニューヨークが舞台。
ニューヨークのクラブ初心者が主人公で、現地で活躍する日本人クラバーの案内で、ハウスミュージック、ドラッグ、ゲイコミュニティを知る話。

ハードコアな描写

その界隈の性習慣のハードコアな描写に、最初は抵抗がありつつも、作者の本質はそこだけの描写ではなく、その社会や文化全体を伝えたいという気持ちが伝わってきます。
(本の中にも登場する)Larry LevanパラダイスガラージミックスをBGMとして読んでたのですが、そのアッパーで明るいテンションと、ハードコアな文化に乖離を感じてたのですが、途中からなんだか違和感がなくなります。
そういう愛の形もあるんだなぁ、と。

また、エイズが蔓延した時期でもあり、死がとても身近な社会です。
命の危険があったとしても、自己表現できる場、素の自分でいられる場所を選ぶ儚さ。

初クラブを追体験

読みながら、自分がはじめて学生イベントではなく、都内のクラブに行ったことを思い出しました。

本作とは比べ物にならないくらい地味なイベントでしたが、主人公のように、最初、雰囲気に圧倒されながら年上のクラブ上級者にいろいろと教わる感じ。

読んでて懐かしい気持ちになりました。


あと、読んでいて当時のニューヨーククラブシーンの盛り上がりっぷりの半端じゃなかったことが改めて分かりました笑。

ページに埋め込まれた、SVG画像を保存するChrome拡張機能

国内サイトでも増えてきている、SVG拡張子の画像。他のサイトで使用されているSVG画像を保存するのが面倒くさいときがあります。


そんな時に便利な、Chrome拡張機能を作ってみました。
多分探せばもっといいやついっぱいあると思うけど!笑

ウェブサイト作る要領で簡単なアプリができちゃうのは楽しいですね。

ファイル構成はこんなかんじ。果たして拡張機能にする意味があるのでしょうか?笑

/
 ├images
 │ └アイコン画像いっぱい
 ├ js/
 │ └background.js
 │ └content_script.js
 │ └jquery-3.2.1min.js
 └manifest.json
 

manifest.jsonはこんなかんじ。
Chromeに対する自己紹介みたいな。

{
    "name": "Save SVG",
    "description": "This extension saves SVG",
    "version": "2.4.4",
    "manifest_version": 2,
    "icons":
    {
        "16": "images/icon_16.png",
        "48": "images/icon_48.png",
        "128": "images/icon_128.png"
    },
    "browser_action":
    {
        "default_icon":
        {
            "19": "images/icon_19.png",
            "38": "images/icon_38.png"
        },
        "default_title": "Save SVG"
    },
    "permissions": [
        "activeTab"
    ],
    "background": {
        "scripts": ["js/background.js"],
        "persistent": false
    }
}

browser actionという指定をすることで、アイコンがメニューバーのところに常住するタイプの拡張機能になります。
permissionsのところで、アクティブタブの情報にアクセスできるようにしています。
backgroundで、background.jsが走るようにしています。ずっと走りっぱなしだと、負荷がかかりそうなので、persistent falseにしましたが、その効果はよくわかってないです。

次にbackground.js。

chrome.browserAction.onClicked.addListener(function(tab) {
chrome.tabs.executeScript(null,{ file: "js/jquery-3.2.1.min.js"},
           function(){
              chrome.tabs.executeScript(null,{file: "js/content_script.js"});
              });
          });


アイコンをクリックした時に、jqueryとcontent_script.jsを閲覧しているページに追加してください。という指示です。


最後にcontent_script.jsです。
※これは出来合いのものをコピってきました。

var e = document.createElement('script');
e.setAttribute('src', 'https://nytimes.github.io/svg-crowbar/svg-crowbar.js');
e.setAttribute('class', 'svg-crowbar');
document.body.appendChild(e);


eという変数に、scriptというタグを作る指示を格納。
変数eのsrc属性にhttps://nytimes.github.io/svg-crowbar/svg-crowbar.jsを設定する。
変数eのclass属性にsvg-crowbarを設定する。
変数eをページに追加する。


さぁこれでSVGが埋め込まれてるサイトがあったときには、一発ダウンロード!

chrome.google.com


2018年初風邪。
昨日、一昨日と更新できなかったので、今日頑張って連続投稿です!

さくらインターネットでデーターベースに接続するときのメモ

すぐ忘れちゃうのでメモです。

さくらインターネットのデーターベースに接続する際の各プロパティの参照場所。
※記載がない、DATABASE_NAMEは、データーベース作成時に付けた名前

f:id:jentagawa:20180111104108p:plain

風邪ひいて、ベッドの中でカタカタ遊んでます。
幸せ。

【書籍レビュー】大人のための社会科ーー未来を語るために

大人のための社会科 -- 未来を語るために

大人のための社会科 -- 未来を語るために

財政社会学の井手英策氏、
政治思想、政治哲学の宇野重規氏、
社会的選択理論、マーケットデザインの坂井豊貴氏、
日本社会史の松沢裕作氏
の4人が、それぞれの専門分野から現代社会を考察する。
おおまかにわけると

  • 過去と比較しながら今の社会をみる
  • 現状の民主主義や、選挙制度の課題について
  • 現代を支える公正や信頼について
  • 未来に向けた歴史認識についてや、生活、保障の場となる公共について見直す


と、盛りだくさんな内容です。


現代社会における課題をたくさん取りあげ、将来の不安を煽らないよう、丁寧に解説されています。読者に諦めて思考停止しないでほしいという思いが伝わってきます。


個人的におもしろかった箇所を抜粋。

勤労国家とは、働き、所得を得て、自ら貯蓄をする、このことで将来不安をなくす仕組みでした。勤労国家は自己責任によって支えられ、これを家族や地域の助け合いが補完していた


アジア・太平洋戦争期にさらに普及した、勤労という価値観。
それが今でも社会に残っています。憲法にも、労働ではなく、勤労の義務を定めています。
びっくりするのが、憲法の解釈の仕方によっては、勤労の義務を果たしていないと、国による生存権の保障がないと。


戦後になっても、勤労に対する行き過ぎた賛美はなくならず、一般から認められる勤労の水準に、身体的、精神的で満たせないものへの執拗な追及があったりします。


また、引用にあるように、経済成長がプラスありきの頃は、家族や地域、会社が助け合って勤労国家での生活は、成り立っていました。
現代は、家族や地域、会社のつながりは昔に比べて希薄になり、どんどん自己責任の範囲が広がってます。
サポート体制の減少や、自分が勤労できなくなる心配や不安が今の世の中の根っこにあるのかもしれません。


お互いをサポートする社会という点ですが、この本を読んで以降よく考えるようになりました。
(実家にも、近況報告をするようになりました笑)


twitterinstagram、Line、Facebookなどのコミュニティやシェアエコノミーが盛んになるのも、国が保障してくれない箇所をお互いに補完しあいたいからかもしれませんね。


そこで、今はまだ計画段階なのですが、知り合いとイベント(ほぼただの飲み会)を企画中です。最初は、参加できるのは知り合いの知り合いくらいまでで。

個人的にそこで試したいのは、他人同士の信頼が形成される経過を観察したいのと、どういったバックグラウンドの方がリピーターになるのか。
あと、できれば、家族や会社、地域コミュニティとのつながりが地理的に持てない人にとって、何かあった時に、助けを求められる人がいる場になるといいな。