BLOGTIMES
«Prev || 1 · 2 · 3 · 4 · 5 · 6 · 7 · 8 ·... | | Next»
2020/10/08

金木犀の花が咲いている


雨に濡れる金木犀 - 金木犀の花が咲いている

最近、めっきり秋らしくなって、朝晩はだいぶ寒くなってきました。
今日は雨なので一段と寒いですが、この時期の雨に濡れるキンモクセイは本当に雰囲気がありますね。


    at 12:17 |
    2020/10/08

    親父の三回忌

    葬祭 

    親父が死んでから早いものでもう2年になります。
    今年はコロナのせいで三回忌に帰省はするのは諦めましたが、今日は親父を偲びながら仕事しようと思います。


      at 08:20 |
      2020/10/07

      みずほが週休最大4日制を導入

      労働環境  covid19 

      みずほ銀が、週休3日制や4日制を正式に採用するようなのでメモ。
      当然のことながら週休 2 日を標準として、勤務が1日経る毎に 20% ずつ給料が減るという体系になっています。

      みずほ、12月から週休最大4日 3休なら基本給8割、4休は6割 | 共同通信

      新型コロナウイルス感染拡大を踏まえた新たな働き方に対応する。週休3日以上の本格導入はメガバンクで初めて。基本給は週休3日で従来の80%程度、週休4日で60%程度になる。


        at 23:31 |
        2020/10/07

        int arr[n]; はいつからできるようになったのか

        c  programming 

        C プログラミングを教えていときに「int arr[n]; のような感じで、配列の宣言時に変数が使えるのか?」と質問を受けたので、昔習ったとおり「できない」と答えたのですが、「実はこの書き方でもコンパイルが通ってしまうのですが・・・」と追い打ちをかけられたので、その理由を調べてみたら意外な結末を迎えてしまったのでその顛末をメモ。
        C 言語も日々進化しているので、自分の知識も定期的にアップデートしなければならないことを実感しました。

        今回のサンプルプログラム

        単純な例だと以下のようなコードでしょうか。

        var.c

        #include <stdio.h> int main(void){ int len = 5, i; int arr[len]; for(i = 0; i < len ; i++ ){ scanf("%d", &arr[i]); } for(i = 0; i < len ; i++ ){ printf("%d\n", arr[i]); } return 0; }

        コンパイルしてみると・・・・

        確かに gcc で何もオプションを付けないとコンパイルが通ってしまいます

        $ gcc --version gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-39) Copyright (C) 2015 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. $ gcc var.c

        おそらく言語仕様の問題だという勘所は掴めたので std と pedantic を付けて順番に試してみます。
        そうすると、c99 や c11 ではエラーが出ず、c90 だとエラーが出ることが分かりました。

        $ gcc --std=c90 -pedantic -Wall var.c var.c: In function ‘main’: var.c:4:2: warning: ISO C90 forbids variable length array ‘arr’ [-Wvla] int arr[len]; ^ $ gcc --std=c99 -pedantic -Wall var.c $ gcc --std=c11 -pedantic -Wall var.c

        エラーメッセージにvariable length array と書いてあるんで、これ variable length array と呼ばれている機能なんですね。
        それはともかく、c99 と 20 年前の仕様から許されていたことにびっくり
        よく考えたら 20 年前は僕も大学生でしたので、そのときに習っていた C は c90 相当だったわけですね。

        仕様書を調べて見る

        というわけで、これは仕様に当たるしかないということで ISO の C 言語仕様を見比べてみることにします。

        とりあえず、仕様書で配列の宣言( Array declarators )の該当部分を調べていきます。
        まず C90 を見てみると、明確に constant expression と書かれていて、[ ] 内は定数しか許されていないことが分かります。

        [C90] §6.5.4.2 Array declarators

        1 The expression delimited by [ and ] (which specifies the size of an array) shall be an integral constant expression that has a value greater than zero.

        これに対して C99 の方は整数型 ( integer type ) とは書いてありますが、constant という表現は無くなっており、文法的にも [ ] 内に許される式が constant-expression から assignment-expression に変更されていることが確認できました。通常の整数の演算は assignment-expression に含まれているので、このことから配列の宣言に変数を使うことができることが分かります。また、第4項の後半にサイズが定数でない場合には variable length array (可変長配列)になるという記述が追加されていました。

        [C99] §6.7.5.2 Array declarators

        1 In addition to optional type qualifiers and the keyword static, the [ and ] may delimit an expression or *. If they delimit an expression (which specifies the size of an array), the expression shall have an integer type. If the expression is a constant expression, it shall have a value greater than zero.
        4 (略) If the size is an integer constant expression and the element type has a known constant size, the array type is not a variable length array type;otherwise, the array type is a variable length array type.

        さらに、C11 は C99 と同様の定義になっているのですが、先ほどの第4項がちょっと変更されていて、なぜか conditional feature になっています。
        要はオプションなので、使えるかどうかはコンパイラ依存ということで、微妙に地雷のような感じがするのは僕だけでしょうか。
        Visual Studio でこの機能が使えないのはこの辺りにヒミツがありそうです。

        ちなみに §6.10.8.3 には _ _STDC_NO_VLA_ _ というマクロが定義されていて、これが 1 の時は VLA はサポートされてないということになるようです。

        [C11] §6.7.6.2 Array declarators

        4 (略) If the size is an integer constant expression and the element type has a known constant size, the array type is not a variable length array type; otherwise, the array type is a variable length array type. (Variable length arrays are a conditional feature that implementations need not support; see 6.10.8.3.)

        思った以上に根が深い問題でした。。。。。。


          at 21:20 |
          2020/10/06

          シェーバーの刃を交換した

          家電 
          パナソニック 替刃 メンズシェーバー用 セット刃 ES9025

          使っているシェーバーはほぼ 10 年前のラムダッシュなのですが、このシェーバーの刃はなかなか優秀で、使っていてこれまで破れたことがありません。ただ、これも善し悪しで、交換の次期がよく分からないんですよね。交換目安は内刃1年、外刃2年ですが、前回交換したのは記録が残っていないので詳細はわかりませんが、おそらく4~5年くらい前だったと思われます。

          やはり刃を交換すると全然違う

          刃を交換してみて気づいたのは、切れ味はもちろんのこと「音が違う」ということ。
          バッテリーもそれなりに劣化しているはずですが、今のところそれほど不便も感じませんので、もうしばらく活躍して貰おうと思います。


            at 08:51 |
            2020/10/05

            800 万円かけても身長を伸ばしたい?

            medical 

            海の向こうアメリカで約 800 万円払うと身長を伸ばす手術が受けられることがニュースになっていたのでメモ。
            身長が低いというコンプレックスの人は多いですからね。

            800万円で背を伸ばす手術。「15センチ高くなる」に予約殺到 | Forbes JAPAN(フォーブス ジャパン)

            ラスべガスのあるクリニックが、今の身長を伸ばせる脚延長術を発表した。財布には、人生最大の打撃を与えることになるかもしれないが、本来より15センチばかり背が伸びた自分に変身できるというのだ。

            かくいう僕も 162cm しかないのですが、個人的にはあまり気にしたことがないです。。。
            800 万あれば、国内では工学系の学位が普通に取れたりすると思います。


              at 21:10 |

              U 字型のポップガードに交換してみた

              covid19  teleconferencing 
              GRANPRO ポップガード ポップブロッカー マイクフィルタ ノイズ防止

              マイクにはこれまで円形の比較的大きなポップガードがついていたのですが、やはりちょっと邪魔なのでコンパクトな U 字型のポップガードに交換してみました。

              効果はどの程度変化したのか分かりませんが、とりあえずマイクで画面に死角ができたり、Web 会議中に資料を取ろうとしてうっかりポップガードに手があたってしまうという頻度はかなり少なくなくなりました。


                at 10:38 |
                2020/10/04

                国勢調査は 7 日まで

                stats  mic 
                国勢調査 ありがとうございます - 国勢調査は 7 日まで

                ポストを確認したら「国勢調査 ありがとうございます」というビラが投函されていました。僕は 21 日にすでにネットから回答を済ませています。今回からは、調査済みの世帯に対して調査員の人はインターホンを鳴らしたりせずに、ビラを投函していく方針になっているみたいですね。

                国勢調査の締切りは 10/7 なので、まだの人は回答しましょう。


                  at 18:21 |

                  久しぶりに散髪


                  散髪 - 久しぶりに散髪

                  コロナが始まってから毎日のように Web 会議を使っているのですが、もみあげが伸びてくるとヘッドホンがこめかみの部分に当たって痛いのでこまめに散髪に行くようになりました。といっても、間隔が 3 ヶ月から 2 ヶ月になったくらいですけどね。

                  頭の上の方まで白髪が出てきました。。。。。


                    at 18:17 |
                    2020/10/03

                    第二次防御ラインが全線開通

                    earthquake  disasterpreparedness 

                    実家のほうで「第二次防御ラインが全線開通」したことが話題になっていたのでメモ。

                    なんかエヴァっぽい名前で、作中で「第二次防御ライン突破されました!」とかいう台詞が出てきそうな感じですが、仙台空港の東側を通る単なるかさ上げ道路です。震災の津波の時に仙台東部道路が予期せず防潮堤になったので、これに着想を得て海岸の海岸防潮堤(これが第一次防御ライン?)と合わせて多重防御とするようです。

                    実家に帰った時に確認してみようと思います。
                    あと、サイクルスポーツセンター*1も復活したみたいですね。


                    at 23:11 |
                    «Prev || 1 · 2 · 3 · 4 · 5 · 6 · 7 · 8 ·... | | Next»