月別アーカイブ: 2021年9月

リサイクル時代

持続可能な17の開発目標

2030年までに達成すべき持続可能な17の開発目標

巷には、SDGs(Sustainable Development Goals)、サステナブルなどのことばが踊っています。一方、「消費者は王様だ」の声掛かりのもと、消費することが経済を発展させ次の原動力を生み出す呼び水になると喧伝されてきました。

リサイクルということばは手垢がついて色あせた存在になっていましたが、ここに至って息を吹き返しています。モノがいつの間にか小さくなったり数が少なくなったりしています。

 

乾電池が10本単位で売られていたものが8本になって以前より安くなって売られると実質値上げされたことが気づきにくいです。

1本当たりの値段を計算すればわかりやすいです。当初、10本で100円で売買されていたものが、8本で88円とすれば単価が10円から11円に値上げされたことになります。

3R・4R・5R

江戸時代は外国との交易がほとんどゼロでした。そのため、自給自足の考えが尊重されました。モノを購入するには当時の賃金からすれば高価であり、リサイクルして使うことは普通のことだったでしょう。時代が進んで産業革命が起き労働の対価として賃金を受ける機会が増え、生産効率が高まるとリサイクル精神は後退しました。

今や高度成長のときは過ぎ去り、資源には限りあることが自覚され再びリサイクルが注目されています。大量生産への飽き、労働時間短縮、賃金の頭打ちなどがモノを大切にして再利用する機運が盛り上がったと思われます。

年金が目減りしたり、実質賃金が横ばいないし低下するとき、壊れたり破けたモノを修繕して使うことは庶民のささやかな抵抗と言えましょう。

集合住宅ではトンカチで家具を修繕することもままならないでしょうが、メカを動かす為に使った乾電池が取り換え時期になって捨てる前に、ラジオに再利用しています。

電池が古くなるとヒビが入ったような音声になりますが、今は問題なく使えています。知恵を絞って値上げの洪水に対抗していきます。

知恵を絞った補修

私の親の代ではガラスが割れてもすぐ交換しないで、右の写真のように割れ目にテープを貼って補修して使いました。

写真の例は芸がなくいかにも貧乏感が漂っています。当時は気の利いたテープもなく、包み紙を桜や梅に象(かたど)り丁寧に補強して割れ目を目立たないようにしていました。

和室が減って障子戸も見かけなくなりましたが、障子が破れたときもちょっとした破れは同様の補修をしたものです。

人口が増加傾向にあるときは補修して使うよりも働いて賃金を得て買う方が得策でした。

安定成長期においては取得する所得にも限界がある一方、自由に使える時間が増えました。リサイクル、再利用に目を向けて限りある資源を大切にしたいものです。

PCからスマホにSMS送信法

SMS送信の動機

友だちや趣味の会などへの連絡や報告はLINEでのやり取りが必須です。

LINEは電話の通話料のような従量料金は発生せず、サブスクリプション(定額契約料)で賄うことが可能でコミュニケーションツールとして今や欠かせないものになっています。

電話とメールのいいとこ取りがLINEと言えましょう。

そうは言っても、LINEが開通するまではLINEを使えませんし、LINEの構築法を会員に知らせるためにPCからスマホにSMS(ショートメール)を送りたいという要望は多く存在します。

また、パソコンに蓄積された膨大な情報をコピー&ペーストしたいことがあります。

しかし、出来合いのシステムでは携帯番号を使ってSMSをパソコンから送ることができません。そこで自分の体験も含めてパソコンからSMS送信方法をまとめます。

今回はGmailとAndroidスマホしか確認できませんでしたが、我が国は競争社会だからIPHONEなどの他機種でも可能なことが多く挑戦して発表してください。

参照したサイト

この記事を書くに当たり、次のサイトを参照しました。ぜひ、お読みいただきたい内容です。

  • GmailからSMSが送信できる!図を使って詳しく解説するよ
  • Gmail(WEB版)からSMSを送信する方法をご紹介!
  • Web版GmailからSMSを送信する方法


  • 必要なもの

    準備する以下のツールはすべて無料で入手できます。

    パソコンでは
    Chromeブラウザに、
    SMS from Gmail ™ & Facebook™ (MightyText)拡張機能を追加し、
    テキストや画像のメール作成・送信はWeb版Gmaileソフトを使い、
    Androidスマホには
    「MightyText – コンピュータからSMS」をインストールしてショートメールを送信します。

    手順

    1. GmailからSMSを送信するにはChromeブラウザをインストール

      検索のためのブラウザとしてグーグルクロームをすでに使っている場合はここは省略します。

    2. SMS from Gmail ™ & Facebook™ (MightyText)のリンク先から拡張機能を追加

      インストールの完了後、拡張機能アイコンがトレイに表示されます。あとはChromeの設定からAndroidスマホで使用しているGoogleアカウントでログインして、同期を有効しGoogleアカウントと同期します。

    3. WEB版GmailをAndroidスマホに連携

      WEB版Gmailを開くとGoogleアカウントにログインする画面が現れます。Googleアカウントのパスワードを入力して本人確認をします。二段認証の場合は設定したメールアドレスあるいは電話番号先にメールや音声で認証コードが届くので指定時間以内で認証コードを入力します。以上でパソコンにおける準備はひとまず完了です。

    4. Androidスマホに「MightyText – コンピュータからSMS」をインストール

      次にAndroidスマホの準備をします。まずは「Google Play ストア」を開き、「MightyText」と検索し、一番上に表示された「MightyText – コンピュータからSMS」を選択します。「インストール」を開いてアプリをダウンロードします。

    5. Googleアカウントを「許可」

      アプリのダウンロードが完了したら、「開く」を押します。その後アクセス許可のリクエストがくるので、「OK」をクリックしてSMS・連絡帳・電話のアクセス許可をOKにします。メイン画面が開き、「Complete Setup」が表示されたらそれをタップします。次の画面に「Success!」と 表示されれば、WEB版GmailとAndroidスマホの連携の完了です。

    SMS送信の実際

    WEB版Gmailを動作させると次のような画面が現れます。

     

    上の図で左側にMightyTextのメニューが3つ追加されています。最初にSMSを送信する場合は「Compose SMS」を選択すると右のメニューが現れます。

    最下行に1000の文字に気づくでしょう。これはあと、1000文字の入力が可能であることを示しています。右の図では6文字入力済みであり、994(1000-6)が表示されています。

    To:欄に送信先の電話番号を指定します。もちろん、SMSを受信できる電話番号に限られます。

    残量文字数に注意しながら送信文面を入力します。最後に送信指示ボタンを押して送信します。

    さいごに

    SMSにより送信できる文字数が格段に大きくなりました。そうするとフルキーボードでないスマホからの文字打ちは苦痛をともないます。パソコンからSMSを送信する需要は大きいものがあります。

    今回の記事はあらゆる条件を満たすものではありませんが、必要は発明の母であり、知恵を絞ることにより解決策は見つかることでしょう。

    追って書き

    このたびの送信法の利点はスマホを手元に置かずパソコンだけで送受信できそうな点ですが、気づいたことをメモにしておきます。通信費はパソコンに発生しませんが、スマホに通常と同じ額が発生するでしょう。



    わかったことは次ようなことです。相手からSMSが送られてきたとき、パソコンのGメールでスマホに送られてきたとみられる内容を確認できました。その内容を受けて今回まとめた方法でGメールから相手のスマホにSMSを送信しようとしたところ、送信エラーになりました。

    Web版Gmailには「スマホの電源がオフになっていたためにエラーになった」とありました。スマホとして未受信のまま送信はできないということと理解しました。

    スマホの電源を入れ受信完了後に再送したところ正常送信できました。これらの細かな現象は記録に留めていきたいと考えています。

    ルーレットを自作する

    回転と停止

    ルーレットゲームを作るにはまず、画像を回転させることから始めます。ルーレットはゲームマスターともいうべき管理人が円盤を回転させ、一定時間後に円盤が停止してその時の状態で配当が決まるようです。

    ここでは回転と停止のタイミングをプレイヤーが決めて当たりはずれを決められるゲームからスタートします。まずはこれで回転や停止のテクニックを取得できるでしょう。

    サンプルゲーム

    🎯
    🌸
    ©TacM,2021 Ver0.01a

     

    HTMLプログラムコード

    <!DOCTYPE html>
    <html>
    <body>
    <Div id="top" style="width:580px; height:460px; border:1px solid blue; font-size:64px; color:mediumvioletred; background-color:lightyellow;">
    <img id="disc" src="https://aidesign.lolipop.jp/wp-content/uploads/2017/10/turnTable.png" style="width:360px; height:360px; margin-left:110px; margin-top:30px; transform:rotate(90deg);">
    <div style="margin-left:470px; margin-top:-225px; font-size:32px;">&#x1F3AF;</div>						<!-- &#x21e6; -->
    <a href="javascript:void(0)" onclick="startStop();return false;" style="text-decoration:none;">
    <div id="playstop" style="margin-left:30px; margin-top:110px; font-size:64px;">&#x25b6;</div>
    </a>
    <div id="luckyNo" style="margin-left:460px; margin-top:-120px; font-size:88px; color:blueviolet;">&#x1F338;</div>
    <div style="margin-left:230px; margin-top:-30px; font-size:12px; color:blueviolet;">&copy;TacM,2021 Ver0.01a</div>
    </Div>
    <audio id="atari" src="https://aidesign.lolipop.jp/wp-content/uploads/2017/10/1tosho.mp3"></audio>
    <script type="text/javascript" charset="utf-8">
    const INTERVAL=40;														//回転スピード, 74 ~ 10
    var clickCount=degree=-1;												//clickCount:開始/停止, degree:回転角
    	msObj=document.getElementById("atari");
    	onClk=document.getElementById("playstop");
    function startStop(){													//開始あるいは停止を制御する関数
    	console.log("K=", clickCount, onClk.innerHTML);
    	var k = ++clickCount % 2;
    	onClk.innerHTML = "\u23f9\u25b6".substr(k, 1);						//&#x25b6; &#x1f533;
    	if(k==0){setTimeout('revolution()', INTERVAL);document.getElementById("top").style.backgroundColor="lightyellow";}	//停止中から開始
    }
    function revolution(){													//回転を制御する関数, intervalの間隔で起動
    	var d=(++degree)%36*10+90;											//0 5 10 15 20 ~ 355,   90 ~ 440
    	var e=Math.floor((d-72)/36) % 10;									//0 ~ 9
    	document.getElementById("luckyNo").innerHTML = e;					//console.log("Degree=", degree, d,e);
    	document.getElementById("disc").style.transform="rotate("+d+"deg)";	//回転を制御
    	if((clickCount % 2)==0)	setTimeout('revolution()', INTERVAL);		//引き続き回転を制御する
    	else{																//停止指令を受けたら ラッキーセブンか判定する
    		if(e==7){msObj.play();msObj.volume=0.4;document.getElementById("top").style.backgroundColor="hotpink";}	//大当たり
    	}
    }
    </script>
    </body>
    </html>
    

    ひとこと解説

    このゲームは当たり矢の部分に7が止まったら当たりとなりやったー!の大音声が流れ幸運を祝う単純なゲームです。プログラムコードを確認してください。15行目のINTERVAL定数で回転スピードを調整しています。慣れてくると容易に7を出すことができます。難易度を高くするにはその定数値を小さくします。

    これからの計画

    無料でダウンロード可能なルーレットゲームがネット上にあふれています。当サイトではそれらを評価するものではありません。それらを参考にしてオリジナルなゲームを作ることを目指しています。

    次にはもっと面白味を加えたテクニックが加わることでしょう。

     

     

    日本地図から

    統計開始以来初

    この度、台風14号が台風に関する統計を取り始めて、福岡県に初上陸したことをニュースで知りました。

    台風の通り道を考えるとき、福岡県の前に、佐賀県と長崎県があり福岡県に直接、台風が上陸することはこれまでなかったようです。

    同様に京都府、まして富山県に上陸することは確率上、きわめて低いと考えられます。岩手県ですら2016年8月にやっと、台風10号が上陸しました。

    今回、福岡県に上陸する前に壱岐の南を通ったようですが、壱岐の真上を通ったら壱岐は長崎県であり上陸地は長崎県となり福岡県に再上陸と言いそうですが島の場合、上陸とは言わず「壱岐を通過」と言います。

    今回は南を通ったのでややこしくならずよかったと思っています。

    同様に、台風が「行政区分が東京都八丈町、車の登録ナンバーが品川の八丈島を通過」しても「東京都に上陸」したとは言いません。

    京都府はともかく、富山県に上陸することはこれからも恐らくないでしょう。

    福岡県のイメージ
    「学塾ヴィッセンブルク」から引用

    福岡県から遠く離れたところで生まれ育った人間には福岡県のイメージは薄いです。

    九州と言えば、江戸時代の国際貿易や蘭方医学で栄えた長崎の方が親しみが湧きます。

    長崎・平戸は16世紀後半に開かれたのに対して、福岡・大宰府は900年も前の7世紀後半に防人(さきもり)の中心地になっています。

    大げさに言えば、福岡県は国際日本の発祥地とも言えそうです。

    秋の俳句から

    成就ばかりが人生か

    人生、望んだとおりになることは多くありません。一方、想像や創造は無限の広がりを持ちます。秘かにあこがれる、慕うままがいいこともあるようです。

    正岡子規の俳句  ©TacM,2021 Ver1.03

    朝顔あさがお
      夢裡むり美人びじん
        えて

     

    便利な演算子

    味のある演算子

    コンピューター言語において、四則演算などに用いる多くの演算子があります。対象となる項が1、2、3などがあり、ほとんどは+-*/などよく知られた2項演算子です。

    その中に剰余演算子 ( % )があり、 1 つ目のオペランドが 2 つ目のオペランドで除算されたときに残った剰余を返します。 これは常に被除数の符号を取ります。

    9%4==>1のように結果をもたらします。剰余演算子はFORTORAN、COBOL、BASICなどには存在せず、CやJava、JavaScriptあたりから出現したようです。

    この演算子に特別な親近感を抱いています。将棋の駒で言えば桂馬のような存在です。

    この演算子を効果的に使うことによって短いコードで深みのあるプログラミングを実現することができます。次項にて実例を示します。

    使い方の一例

    剰余演算子は繰り返し処理を得意とします。一連番号(n)の下一桁が1の時に特別なことをするには、n%10で0~9を求めその値が1かどうかを判別するだけで事足ります。10回に1度、処理をするにはカウンターを用意しその値を確認し該当すればヒットと判定します。



    また、カウンターが繰り返し数に達したらリセットする方法が定番ですが、剰余(モジュロ)演算子を使えば、一々、リセットする処理を省略できます。

    サンプルコード

    <html>
    <head>
    <meta charset="utf-8">
    </head>
    <body onload="setTimeout('countUP()', 2000);">
    <Div style="padding-top:20px; max-width:326px; height:164px; margin:0 auto; border:0px solid darkviolet;">
    <div id="day7" style="float:left; width:160px; height:160px; font-size:32px; display:flex; justify-content:center; align-items:center; border:1px solid gold;">&#x1f4c5;</div>
    <div id="week" style="float:left; width:160px; height:160px; font-size:26px; color:pink; text-align:center; border:1px solid blue;">
      <img id="fig7" src="https://aidesign.lolipop.jp/wp-content/uploads/2021/09/yobi160x160.png">
    </div>
    </Div>
    <script type="text/javascript">
    const dayOfWeek=["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"];
    const color4=["red", "chocolate", "cyan", "blue"];
    var counter=0;
    function countUP(){
    	var j=counter % color4.length;		//4 0 ~ 3 fill色
    	var k=counter % dayOfWeek.length;	//7 0 ~ 6 画像
    	document.getElementById("fig7").src="https://aidesign.lolipop.jp/wp-content/uploads/2014/11/week"+k+".png";
    	document.getElementById("day7").style.color=color4[j];
    	document.getElementById("day7").innerHTML=dayOfWeek[k];
    	console.log(counter, j, color4[j], dayOfWeek[k], document.getElementById("fig7").src);
    	if(++counter==28)	counter=0;		//28:最小公倍数
    	setTimeout('countUP()', 1000);		//1秒間隔
    }
    </script>
    </body> 
    </html>
    

    動作例

    以下の例は英語による曜日の色が4日ごとに、曜日の文字が7日ごとに繰り返され、28日で同一状態が出現されます。

    📅


    コードの説明

    1. 6, 11行のDiv要素で左右中央寄せを実現する。
    2. 7行に英語表記の曜日を表示。id名’day7’によりdayOfWeekテーブルから曜日名を引き当てる。
    3. 8~10行で曜日画像を切り替える。
    4. 13行、英語曜日名。
    5. 14行、色を定義。
    6. 15行、counterにより曜日画像と曜日名を切り替え制御する。
    7. 16~25行、countUP関数。
    8. 17行、色インデックスを0~3で繰り返す。color3テーブルサイズを使ってプログラム可変性を保つ。
    9. 18行、画像0~6で繰り返す。
    10. 19~21行、画像ファイル、色、曜日名を動的に設定。
    11. 23行、4と7の最小公倍数28のとき、counterをリセット。リセットについては後述。
    12. 24行、処理を1秒間隔で繰り返す。

    counterリセットについて

    23行目において、counterをリセットしますが、この部分は今回、省略することができます。JavaScript における安全な整数の最大値はNumber.MAX_SAFE_INTEGERで表現される9007199254740991です。

    整数変数が大きな値になって、表現可能値を超えると誤動作することがあります。その僅かな可能性をなくすために最小公倍数になったらリセットを実行します。

    0から1秒ごとに1加算して最大値に達する時間は数百万年を超える時間を要します。数ミリ秒間隔ではもっと短い期間で最大値を超えるのでリセット処理を行うことが基本になります。

    その後の広告2021

    動く広告

    前回、万華鏡を背景にした回転するメッセージを出しました。サイン風筆記体メッセージにより動くメッセージもたくさん表現してきましたが、コードサーズが大きくなることが難点でした。

    CssにAnimationを使う動くメッセージは小さなコードで表現することができます。今回は前回の試作品を改良して快適な描画にしました。

    今回、メッセージ、色、書体などを複雑に変えながら描画するように改訂したので、万華鏡の背景を含めると二度と同じ画像は現れないでしょう。

    作りながら楽しむプログラミングを体現して欲しいものです。BGMは再生ボタンを使って適宜、流すことができます。

    Moving
    Advertisement
    Product ID Number 004

    新しい広告2021

    動く広告

    千変万化の万華鏡を背景にして、さまざまなメッセージを回転しながら表示します。

    今回は言わば試作品であり、長く付き合っていると繰り返し場面が現われ飽きがくるかもしれません。これらはプログラミングに精通すれば容易に改良できることでしょう。

    音声再生ボタンによりBGMが流れます。

     

    Moving
    Advertisement
    Product ID Number 001

     

    馬の鼻先にニンジン作戦

    ワクチン接種優遇策

    自治体はコロナワクチンの接種率向上にさまざまな優遇策を打ち出しています。私の住んでいる地区ではワクチン接種を2回終えている住民に2000円クーポン券を贈って地域活性化を図っています。使い道は飲食補助券であり、市に登録した飲食店に限られているので、全国チェーン展開の大手よりも身近なお店で使えるようになっています。

    市の広報の通り、郵送で届いたのでさっそく使いました。2000円といえどもたいへんありがたく食事に出かけました。4月、5月頃はワクチン接種者がワンサカ押し寄せたので優遇策はあまり報道されなかったようです。一方、マスコミは若者の副反応を心配する声を大げさに伝えていたように思います。

    長期にわたるワクチン副反応の研究は従来から統計づけられており、新型コロナウィルスの場合は長年の研究を踏襲するしかないようです。

    完璧な副反応の結末が出そろったときには爆発的な蔓延がはびこった後というのでは手遅れです。かといってリスクの高いワクチンを多くの人に接種するのは危険でもあります。

    この辺りは長い人間の歴史を振り返って腹を括るほかないと考えます。幸いにもワクチン接種を先行した国が多くありました。それらの国々とはかなりのタイムラグがあります。

    マスコミは最近になって若者が希望してもワクチン接種にありつけないことを報道しています。

    マスコミはもっと早いうちからカッコつけないでワクチン接種のネックになっていることが何かと若者に語って欲しかったです。

    自治体の関与

    選挙投票率を上げるためやワクチン接種率を上げるため、参加者に景品をあげる作戦は動機が不純と本質論を貫く人もおります。

    多様な考えのなか、ニンジン作戦は実効を上げるための一つの策と言えるでしょう。

    また、ワクチン接種済みの人には旅行、食事、宿泊などに対する身近な優遇策として行動制限緩和をわかりやすく実行してください。

    芭蕉の俳句

    ページ読み込み完了の3秒後に自動スタートします。再実行するにはブラウザの再読み込みボタンをクリックしてください。

     

     

    芭蕉の俳句
    貞亨4年春。芭蕉が奥州に旅するという門人の僧侶に贈った餞別の詩 ©TacM,2021 Ver0.02
    わするなよ
    やぶなかなる
      うめはな

     

    その後のお知らせ

    ブラウザ、chrome, Edge, Operaでは期待した動作が得られましたが、FireFoxでは縦書きにおいて若干の乱れが起きています。縦書きで表示するにはh2vR.jsライブラリーを使いますが今回は使っていません。h2vRを使った動作を模索中です。また、竹冠りの籔を改め草冠りの薮に変更しました。