月: 2022年2月

  • 大室山と伊豆シャボテン動物公園へいってきた。

    週末に伊豆の大室山と伊豆シャボテン動物公園へ行ってきた。ゆるキャンを見ていたら、伊豆に行きたくなり、暖かくなるのを待っていってきた。

    大室山のリフトは、思っていたよりもめちゃくちゃ怖かった。大室山の傾斜がきついので、リフトも急な斜面の登り降り。リフトにはセーフティーバーがあるとは言え、怖いものは怖い。

    山頂の尾根も柵があるわけではないので、端にいくと落ちそうで怖い。景色はとてもよい。富士山も見えるし、海も見える。景色が綺麗なので、余計に高さがわかるから怖いのだろう。大室山は下から見るのがいい。リフトが怖いので、もう上はいいかも。

    伊豆シャボテン動物公園は、入場料がちょっと高いので、ゆるキャンを見ていなければ、たぶんずっといくことのない場所だったと思う。園外に脱走した鳥や猿はいなかったけれど、園内には自由に移動している猿や鳥たちがいた。至る所に、餌やり体験用の餌が売っており、いろいろな動物に餌付けできる。餌代を動物たちが稼いでいる感じがいい。

    目当てのカピバラ温泉にも、カピバラがたくさん入っていてほっこりした。温泉はそんなに大きくはないけれど、カピバラはたくさん入っていて、密集していた。

    中のレストランで食べたカピバラバーガーは、大きくて、食べ応えがあった。中のハンバーグがよく、おいしかった。大きいので、子供だと食べきれないサイズかもしれない。メニューもシンプルで、そんなに高くなくて、でかいカピバラやレッサーパンダのぬいぐるみがいて、楽しいところだった。伊豆シャボテン動物公園はまた行ってみたいと思える場所。今度は、もっと暖かくなったころに行こう。

  • NO WAR

    どんなことでも戦争はよくない。今回のウクライナの問題で真剣に考えさせられる。核戦争一歩手前だし、底知れぬ不安。子供の頃にみた「はだしのゲン」の映画のシーンがフラッシュバックしてくる。戦争はよくない。核兵器はもっとよくない。絶対ダメ。

  • ランチ:堂間の築地伴助 トロサバ開き(2022/2/24)

    今日のランチは、創作和食 堂間にいってきた。注文したのは、築地伴助 トロサバ開き。パリッと焼けたサバの干物がおいしい。しっかりと水分が抜けていて、味が濃くなっている。難点は、身がしっかりとしているので箸で身がとりにくいこと。おいしい鯖だった。

  • STREET FIGHTER6をつくっているのか。

    STREET FIGHTER 6の制作が発表された。筋肉隆々なキャラデザ。結局、スト4も、ストVもやらないまま過ごしてきたので、スト6はやってみようかな。個人的には、ゼロシリーズのキャラデザな感じが好きなんだけど。

    https://www.streetfighter.com/6/ja-jp/

  • 真間川の河津桜が咲き始めた(2022/2/22)

    真間川の河津桜がやっと咲き始めた。寒い日々が続き、すぐに咲き始めると思ってからかなり経っての咲き始めだった。

    まだ、1本の木で、2,3輪しか咲いていない。蕾は成長しているので、これからはどんどん咲いていきそうだ。これから散歩が楽しくなる。

  • Google workspaceの無料利用の特権がなくなるので・・・

    とても長いこと無料で使えていたGoogle Workspace(昔はGoogle Appsだったっけ)が、ついに有料化される。これの対応に困っているというのが本音。

    さくらインターネットやGMOのお名前.comの安いメールサービスを契約して乗り換えれば、年間で2000円程度で大量のメールアドレスを維持できる。その分、容量や使い勝手は下がる。安いのにはわけがあるわけだ。

    Google Workspaceで課金するのが一番手っ取り早いが、維持費がなかなか高い。Google Workspaceも値上げされているので、困った。ただ、使い勝手とかを考えると、有料サービスに切り替えるのが最適なんだけれど。今までの無料枠をずっと使えていたことがすごかったのかもしれないとも思う。

  • 読了:インターネットは言葉をどう変えたか デジタル時代の〈言語〉地図

    インターネットだけではなく、言葉がどう変わってきてのかも書かれている。日本語の話し言葉の変わり方もすごいけれど、英語でも同じようなことがある、というのは言語というものが、生き物であるかのようにかわり続けていくというのが面白い。

    「言語は、究極の参加型民主主義といえる。テクノロジー用語を借りるなら、言語とは、人類のもっとも壮大なオープンソース・プロジェクトなのだ」というのが、この本の結論とも言える。時代や使うシーンに応じて、少しずつ変化しているし、略語もできる。ミームもあるし、そうでないものもある。言語の変わり方は面白い。そういえば、昔はネチケットとか言われていたが、最近は聞かないし、いろいろと変わっている。あまり気にしたことはなかったけれど、研究している人がいるというのも面白い。

  • GASからMySQLに接続して、コミットする

    通常は、自動コミットされるので、Update文やInsert文を実行したタイミングで、コミットされる。DBへの複数の書き込み処理を、同じタイミングで行うのは、自動コミットをオフにして、手動でコミットする必要がある。

    自動コミットを無効にするには、DBコネクションの「.setAutoCommit(false)」を使用する。

    手動でコミットするには、DBコネクションの「.commit()」を使用する。

    試してみたところ、オートコミットをオフにした場合、「.commit()」を実行しなくても、エラーにはならない。GASのエディタ上でもアラートを上げてくれないので、注意が必要。

    サンプルコード

    function myFunction() {
      dbConnection();
    }
    
    // --------------------------------
    // SSL 接続なしで接続する
    // --------------------------------
    function dbConnection(){
      Logger.log('start dbConnection function.');
    
      // 接続先設定
      var connectionIp = 'xxx.xxx.xxx.xxx'; // 接続のMysqlのIPアドレス(ホスト名も可)
      var userName = 'user'; // 接続で使うユーザ名
      var passwd = 'password'; // 接続で使うパスワード
      var databaseName = 'database'; // データベース名
    
      var addr = 'jdbc:mysql://' + connectionIp + '/' + databaseName;
      Logger.log('start mysql con');
      Logger.log(addr);
    
      var connectionInfo = {
        user: userName,
        password: passwd
      }
    
      // DBにコネクションをはる
      var connection = Jdbc.getConnection(addr, connectionInfo);
      Logger.log(connection.getCatalog());
    
      // オートコミットを無効にして、手動でコミットするようにする。
      connection.setAutoCommit(false);
    
      // sqlステートメントをデータベースに送信するためのオブジェクトを作る
      var statement = connection.createStatement();
    
      // Insert文を発行
      var resultInsert = statement.executeUpdate('Insert Into List (id,listname) values ("5","kanagawa")');
    
      // 実行結果が0なら失敗、1以上なら成功
      Logger.log(resultInsert);
    
      // 手動でコミットする。通常はオートコミットされるので必要なし。
      connection.commit();
    
      // ステートメントを閉じる
      statement.close();
    
      // コネクションを閉じる
      connection.close();
    }
  • GASのDB接続で、オートコミットになっているかを調べる

    コネクションの「.getAutoCommit()」を実行することで、DBへの書き込みがオートコミットになっているかどうかを調べることができる。

    「.getAutoCommit()」の結果が、Trueならオートコミット、Falseなら手動コミット。手動コミットの場合には、「.commit()」を明示的に実行しないとDBにコミットされない。

    サンプルコード

      // DBにコネクションをはる
      var connection = Jdbc.getConnection(addr, connectionInfo);
    
      // オートコミットを無効にして、手動でコミットするようにする。
      connection.setAutoCommit(false);
    
      // Trueならオートコミット、Falseなら手動コミット。ログに書き出す。
      Logger.log('オートコミットの設定: ' + connection.getAutoCommit());
  • ASP.NETでChrome対応したらJSでテキストボックスに値が入らなくなったときの対応

    IE用に作られたASP.NETのアプリを、Chrome対応(Chromium Edge対応)しているときに、JavaScriptでASP.NETのパーツのテキストボックス(type=text)に値をいれたところ、値が入らないということがおきた。「getElementById(“ID”).value」に、JavaScriptから値をいれたが、IE11では問題ないのに、Chromeだと値が入らなかった。

    document.getElementById("ID").value = "値";
    // ↑これだと、IE11は値が入るが、Chromeだと入らない。

    PostBackは発生させていない処理なのだが。いろいろと調べていき、Chromeの場合は「.defaultValue」を使って初期状態の値を書き換えれば、画面の表示が変わることを確認できた。

    document.getElementById("ID").defaultValue = "値";
    // ↑Chromeの場合は、defaultValueを書き換える。

    IE11も残しておく必要があったので、ブラウザの種類をみて、IF文でIEとそれ以外で分岐させるようにした。

    サンプル。

        // ブラウザを取得する
        var userAgent = window.navigator.userAgent.toLowerCase();
        if (userAgent.indexOf('msie') != -1) {
            // IEのときの処理を書く
            document.getElementById("ID").value = "aaaa";
        } else {
            // IE以外の処理。ChromeやChromium Edgeの想定
            // document.getElementById.value だと、画面上の表示が変わらないことがわかった。
            // そのため、document.getElementById.defaultValue に変更したところ、うまくいった。
            document.getElementById("ID").defaultValue = "aaaa";
        }