リモートデスクトップと画面転送

職場で来月に在宅勤務キャンペーンをやるそうだ。

在宅勤務なら午前だけ勤務もできる?

このときに書いたけど、このキャンペーンに合わせて新人の定義が変わり、僕も在宅勤務の対象者になるという話。

その結果として、僕もキャンペーン対象者になると。


さて、今月。在宅勤務でやることが想定される仕事として、論理シミュレーションがある。

うちの職場では論理シミュレーションをワークステーションで行うので、

リモートデスクトップを使ってワークステーションにアクセスして論理シミュレーションを行う。

これを在宅勤務でも出来るのかと思って、いろいろ調べていたらできることがわかった。

もともとリモートでやってるので、リモートでやりやすい仕事なのは確かで理にかなった話ではある。


ところで、在宅勤務で使うリモートアクセスの方式にはいくつかある。

リモートアクセスのどれを選ぶか

想定しているのはここでいうところの画面転送方式だ。

リモートデスクトップ+画面転送ということは、なんと画面転送→画面転送 ってなるんだよね。

なんてアホらしい。


でも意外にも性能は悪くない。事前調査の結果、わりと社内でいるのと同じように仕事が出来る。

画面転送ってオーバーヘッドが大きそうなのだけど、いろいろ効率化されているようで。

だから一見非効率だけど、意外といけるみたいで。


というわけで今の仕事なら在宅勤務は全く問題ないなと思っている。

ちょうどよかったなと。

ハードウェアが必要な仕事だとなかなか在宅勤務に向かないからね。

けっこうQRコード使ってるんだ

昼間も寒い日が続いていたけど、最近は昼間も暖かいということで、市内に積もった雪もずいぶん融けてきた。

なかなか融けねぇなぁと思ってたが、融け始めると早い。そんなに寒い地域ではないし。

でも、まだ日陰には残ってるし、また雪が降るかもという話もあるんだよね。


配達を担当している郵便局がわりと近くにあるもんで、

書留が届いて持ち帰りになったときにはだいたいゆうゆう窓口に取りに行っている。

不在連絡票を出すと、それを見て取りに行くんだけど、このときにQRコードを端末で読み取っていることに今さら気づいた。

あのQRコードって再配達依頼に使うものだと思ってたけど、郵便局の人も使ってんだな。


今まで再配達依頼するときは、PCでWebサイトに問い合わせ番号など打ち込んでやっていたが、

実はあのQRコードを読み込むと、問い合わせ番号、その他必要事項が入力された状態からスタートになるらしい。

あれ、ただの再配達依頼ページへのリンクじゃなかったのか。知らなかった。

そして、郵便局の人もこのQRコードを読み込むと、郵便・荷物の情報が即時に呼び出せると。

あのバーコードにそんな意味があったとは。


それはそうとして、郵便局では伝統的に追跡用には1次元のバーコードを使ってきた。

その一方でQRコードもいろんなところで使っている。

例えば、Webゆうプリでゆうパックの送り状を作ると、追跡用バーコードとは別にQRコードが印字される。

これは「引受用」と書いてあって、出荷時に端末で読み取ると、追跡情報以外に料金の計算に必要な情報とかが入っているのだろう。

Webゆうプリの場合はこのQRコードは補助的な情報に過ぎないだろうと思うのだが、

クリックポストの場合は、QRコードを読み取られると料金の請求が発生する仕組みだそうだ。

あと、料金後納で郵便・荷物を送る人が使うゆうびんビズカードにもQRコードがあるようだ。

差し出し時に端末に読み込ませると、月単位で集計して後払いできるってことなんだろう。

などなど、QRコードにいろんな役割を持たせているようだ。


一番重要な追跡用バーコードは相変わらず1次元バーコードなんですけどね。

ここはなかなか変えられないのかも知れない。

ゆうパックだとそこまで問題ではないかも知れないけど、書留郵便とかだと日本郵便のツールを使わずに追跡用バーコードを打ち出すことも多いでしょうし。

実はこの追跡用バーコードというのはNW-7という方式で、バーコードフォントをダウンロードしてくるだけで使えてしまう非常に簡単なものだ。

番号帯の割り当てを受けて、正しくチェックディジットを計算すれば、実は簡単に印字できてしまう。

あとは単純に追跡情報だけなら11桁とか12桁の数字で済むのでバーコードでいいって話なんでしょうね。


ちなみにこういうことをやっているのは日本郵便だけではなく、ヤマト運輸もそうらしい。

不在連絡票にはQRコードがあるし、ネコピットで発行された送り状にはQRコードがある。

一方で追跡用バーコードは一次元バーコードだと。

利便性を考慮するとここに落ち着くって話なんでしょうかね。

不本意だけど500円単位

今月末で他の職場に異動になる人がいて、その送別会の調整をあれこれやっている。

同じチームの人で、最近は一緒に仕事をすることも多かったこともあって、

課長から「送別会の幹事をやってくれ」と言われたのだった。


多くの人が参加できる日取りが決められたし、店も決まった。

それで、会費の集金について、あれこれ考えたのだが、これが意外と難しいことに気づいた。

というのも、会費を千円単位で設定すると、帳尻合わせが難しいからだ。

慣例的に課長には多く払ってもらうことにしても、苦しい気がした。


というのも店に支払う金額は1人あたり4500円なんだよね。

送られる人の会費はいただかないことは前提だ。この分は実質的に課長から払ってもらおう。

その上で、1人あたり4500円を4000円に切り下げられないかと検討してみた。

この場合、500円×人数を課長に払ってもらおうということになるのだが、問題は人数が多いこと。

さすがにこの金額をいただくのは気が引けたので、会費を千円単位で設定することは諦めた。

おぞらく人数が半分以下だったら、課長に多めに払ってもらうことで千円単位にしたと思うのだが……


500円単位ということで集金が難しいだろうということを想定して、週末にATMで500円玉を集めておいた。

500円を持っている人が3割ぐらいいればなんとかなる計算だ。

これだけしておけばなんとかなるでしょう。ダメだったらそれはそのときだ。


集める側の理屈としては上の通りで、4000円だと足らなくて、5000円では多すぎるというのが理由なのだが、

払う側からしてみれば、4500円も5000円もそんなに変わらないという話もある。

なんとかして4000円払う人と5000円払う人に分けられれば、500円に悩む必要はなかったんだけど。

実際にやろうとは思わないけど、くじ引きで4000円か5000円か選ばせるとかでもいいんだが。

でも、説得力に欠けるから、500円単位にしてでも同じ金額にするのがよいかなぁとなるんだよね。


そもそも、キャッシュレスなら端数も関係ないから、振込で払ってくれってのはあるけどね。

どうせみんな経費口座として同じ店に銀行口座持ってるんだし、振込手数料はかからないんだよね。

理屈上はそうなんだけど、これは便利だと思ってくれる人はそんなに多くないんだろうなぁ。

そういう提案もしていきたいところではあるけどね。

直販のチケット

注文していたコンサートのチケットが郵便で届いた。

たいていコンビニとかで引き取りだけど、直販なもんで郵送だったのだ。


このグループのコンサート、チケットの販売情報の発信があまりよろしくない。

ただ、確かなことは下記の3つの販売チャネルがあるということ。

  1. ファンクラブ向けのチケット販売 (直販)
  2. ファンクラブ向け以外のチケット先行販売 (直販)
  3. 前日までのチケット一般販売 (チケットぴあ など)

1.が一番早くて、ファンクラブ向けの専用サイトで注文するのは会員にとっては自明だろうから問題ないだろう。

3.は前日まで扱っていることもあって、ギリギリになると情報が出てくる。が、いつから売り始めなのかはよくわからない。

3.の売り始めはけっこう遅くて、いつになったら買えるんだよとやきもきしていたこともある。

ただ、どうもファンクラブ会員でなくても、2.の直販で買えるルートがあるらしいという噂を聞き、

え? そうなの? と思って、ファンクラブ向けではないグッズ販売サイトを時々見ていた。

すると、あるとき販売が始まっていることがわかったので、ポチっと注文したのだった。


もともとグッズの販売サイトなので、グッズと同じように1枚とか注文するだけ。

送料はもともと500円均一のようで、チケットだからと言って特別扱いはない。

ただし、他のグッズと同時注文はしないようにという指示はあるが。

抽選ではなく、先着順販売のようで。売り切ればなければ特に問題なしだが。

あとは1週間前ぐらいに送ってくるということで待ってればいい。そしたら「発送しました」と連絡が来たのだった。


直販の特徴としては、なによりチケットがカラー印刷できれいなことですかね。

コンビニでは汎用の用紙に印字するだけなので、それと比べるとずいぶん華やか。

ファンクラブ向けだけだと思ってたけど、非会員でも実は入手できたと。

入場順序は、ファンクラブ向けの後、チケットぴあなど販売分の前ということになっている。

送料500円はかかったが、チケットぴあで注文して、クレジットカード払い・コンビニ引き取りだと324円なので、大差なしとも言える。

というわけで、ファンクラブ会員ではないけど、直販ってのはよい選択肢だったねという話。

もっとアピールした方がいいんじゃないですかね。ファンクラブ会員に限らず、興味を持っている人は多いでしょうし。


ただ、このチケットの送り方を見ると、気になることがたくさん。

  1. 宛名ラベルの1行目が管理番号、2行目が「〒1728799」のような正しくない郵便番号表記
  2. 電話番号の記載なし (そのせいで土曜に配達に来たのに持ち帰りになってしまった)
  3. バーコードシール と スタンプ押しの「簡易書留」
  4. 法人にしては「料金別納郵便」
  5. チケットの整理番号が手書き

1.は大問題ですよね。

内国郵便約款を見るとラベルに記載する郵便番号は1行目に 「172-8799」 のように頭に何も付けず、ハイフン込みで等間隔で記載しなさいとなっている。

あと、郵便番号の近くにまぎらわしい数字を書いてはいけないともなっている。(宛名の下に管理番号などを書くのか可)

簡易書留だと機械処理しない気もするから、そこまで厳密に考えなくてよいかもしれないが、1行目に管理番号は人間が見ても紛らわしい。

2.は僕にとっては不都合なことだ。必須ではないのは確かだが、任意で書いてくれたほうがよい。

3.は郵便局にやらせたのかなぁ。300通以上出してるはずなので、バーコード印字して割引適用してもらった方がよかったのでは?

何百通も持ち込まれたのに、バーコードシールを貼って、それを受領書に転記して、なんてやらされたら迷惑でしょ。

あと、発送メールに追跡番号が書いてあったけど、この追跡番号を受領書から転記しているとすれば、お互いに手間だ。

ゆうパックプリントRなどのツールでバーコードごと印刷して持ち込めば、お互い楽できたと思うし、1通11円の割引が適用されたはず。

4.は余計なお世話ですね。月締めじゃなくて都度払いなんだねって話。担保を納めるのが惜しかったのかもしれない。

5.も余計なお世話といえばそうなんだけど、手書きだと手間もさることながら、誤記・誤読の恐れもあるんじゃないかなぁと。

ナンバリングスタンプで連番を押すか、整理番号部分をシール貼りにするか、業者に頼まずやるならそこら辺かなと。


ファンクラブ業務とか外部に委託してるもんだとおもってたけど、

こんなにお粗末なのを見ると、おそらく内製なんだろうなという想像はできる。

世のチケット販売サービスがやたらと手数料取ってくるって話はあるけど、

主催者にとっての手間や、利用者の利便性などを考慮すると、手数料だけの価値はあるって話だと思いますよ。

確かにチケットは汎用の用紙だから味気ないかもしれないけど、それはそうとして。

CDMAってなにをやってたんだろ?

昨日、デジタル放送で使われている変調方式OFDMの話を書いた。

なんでデジタル放送だと同一周波数でいいんだろ

こういう通信の技術ってやたらと複雑なものが多くて、一体なんでそんなことができるんだよって思うことが多くて、

デジタル放送の単一周波数ネットワークは今まで謎の技術だった。調べてみるとなるほどって感じだけど。

そこで思い出したけど、CDMAもよくわからんのだよなぁ。


CDMAというと、第3世代の携帯電話の通信方式、W-CDMAなどで使われている。

そもそも、携帯電話というのは、複数の端末が同時接続できる必要がある。

複数の端末が同時接続する方式にはいろいろあるのだが、

一番わかりやすいのが周波数分割、この方式をFDMAという。アナログ時代の携帯電話がこの方式だった。

帯域を細かく区切って利用者ごとに割りあてて、使用中は1つのキャリアを占有していたと。

次にわかりやすいのが時分割、この方式をTDMAと言い、第2世代の携帯電話(日本ではPDC)がこの方式だった。

利用者ごとに時間を決めて通信してもらうわけだ。この方式にしたことで利用者増にもある程度対応できた。


ここまでは直感的にもわかりやすいのだが、3つ目の方式、CDMAはそう簡単ではない。

CDMAはCode Division Multiple Access、日本語で言うと 符号分割多元接続となる。

どうも、全ての基地局、全ての端末が同じ周波数を同時に使う方式らしい。

いやいや、それじゃあ全部混ざって区別できなくなるでしょ。

コードの違いで区別するんだって言うけど、コードってなんだよ。


ドコモR&Dのテクノロジー / 主要技術(ネットワーク) / マルチプルアクセス方式/ DS-CDMA方式の原理 (NTTドコモ)

この絵をみればわかるかな? 送信する波形にPN系列という波形を重畳することで区別できるようにすると。

このPN系列の波形を端末ごとに変えることで、区別できるようになると。

どういうことかというと、端末Aが 1という情報に (-1,+1,-1,-1,+1,+1,-1,+1)を重畳して送るのと、

端末Bが-1という情報に(+1,-1,+1,+1,-1,+1,-1,-1)を重畳して送るのと、端末Cが+1という情報に(+1,-1,+1,+1,+1,-1,+1,+1)を重畳して送るのと、

これらを全て重ねると(-1,+1,+1,+1,+3,-1,+1,+3)となる。これにそれぞれ重畳した信号列をたたみ込む。

端末Aの信号列をたたみ込むと+4、端末Bの信号列をたたみ込むと-12、端末Cの信号列をたたみ込むと+8となる。

プラスマイナスは正しく判定できてるね。これがCDMAってこと。


CDMAはコードさえ違えば端末を識別できるから、多くの端末を同時に収容することが出来る。

ただし、何も考えずにCDMAをやると、基地局近くの端末からの電波で、遠くの端末からの電波がかき消されるという問題が発生する。

でもこの問題は端末の出力を調整してもらえば解決できるから、それがCDMA実用化のポイントだったらしい。

あと、CDMA方式は送信する信号に、端末ごとに異なる速い信号を重畳して送る方式なので、占有帯域幅が広くなる。

FDMAは帯域を細切れにして1端末ずつ細く使っていた。これに対してCDMAは広い帯域をみんなで共有するという方法だったわけ。

帯域が広いので、その一部がノイズや干渉でやられても、残りの帯域で通信が成立するというメリットもあるようだ。


CDMAのおかげで携帯電話の利用者増に対応できたのだ。

というのだが現在のモバイルデータ通信の主力であるLTEはどちらかというとFDMAなんだよね。

LTEは下り(基地局→端末)はOFDMA、上り(端末→基地局)はSC-FDMAという方式を使っている。両方式ともFDMAって入ってるね。

OFDMAは昨日書いたOFDMそのもの。OFDMを多元接続用途で使っているというだけの話。

周波数を細切れにして(15kHz間隔)、細い占有帯域幅のキャリアを周波数空間で直交するように並べる。

干渉・ノイズなどの影響を受けにくく、受信しやすいキャリアをユーザーごとに割りあてると。

昔のFDMAに比べると、キャリアを緻密に並べられるようになり、ユーザーごとの周波数割り当てを動的に選べるようになった。

この結果としてLTEは周波数利用効率がよい通信方式となったのだという。


ただし、OFDMAは複数のキャリアを重ね合わせる方式なので、送信機の電力効率があまりよろしくないらしい。携帯電話でそれは困る。

というわけで、上りはSC-FDMAという方式を使っている。

ユーザーごとに帯域を割りあてて、その中で1つのキャリアで転送してもらうと。

ポイントはこの帯域は通信量に応じて加減できること。

通信量が少ない場合は、狭い帯域で低いシンボルレートにしてもらう、多い場合は広い帯域で高いシンボルレートにしてもらう。

OFDMAは低いシンボルレートの狭帯域キャリアを必要数束ねて使うが、SC-FDMAでは連続した帯域の幅を変えて、それに応じてシンボルレートを変えてもらうと。

やっていることは違うけど、根本にある考えは一緒なんですね。

これに周波数ホッピングを組み合わせt、周波数を動的に変えながら送信するので、干渉・ノイズで通信しにくい周波数があっても、影響を受けるのは一部で済む。


概念的にはLTEの方がわかりやすいよね。

動的に使う帯域を変えながら、通信量に応じた帯域幅、干渉・ノイズの少ない周波数を選んで使うと。

下りのOFDMAと、上りのSC-FDMAで考えには違いがあるが、狭い帯域の遅い通信をたくさん と 広い帯域で速い通信をドカン という考え自体は納得しやすい。

でも、それを実現する技術は複雑だ。動的に使う帯域を変えるというのはそういうことだ。

それに比べればCDMAはなんて直感的じゃないんだとは思うのだが、理屈が分かってしまえば、そんなに難しいことやってなかったんだなとわかる。

確かにこれなら1つの周波数でたくさんの端末と通信できるよね。

とはいえ、データ通信量の増大に対応するには、賢い帯域割りあてが必要だということでLTEに移行していったわけだけどね。

今は帯域がものを言う時代って話ですね。その考えからすればFDMAがシンプルでいいって話ですね。

なんでデジタル放送だと同一周波数でいいんだろ

地上デジタル放送の特徴として単一周波数ネットワークというのがある。

これができるおかげで、UHF53~62chを携帯電話用に転用したり、

茨城県・栃木県・群馬県でのNHK総合テレビの県域放送ができるようになった。

というわけで、すごく画期的な技術なんだけど、なんでできるようになったんだろ?


同一周波数ネットワークというのは、同じ周波数の送信所を並べてネットワークを作る方式だ。

i-dioがよい例だが、関東甲信越については全ての送信所が105.428571MHzで送信する。

親局の東京タワーも、秦野中継局も、将来できるかも知れない群馬県の送信所も、全てこの周波数を使う。

テレビで全ての送信所を同一周波数にしている放送局はないはずだが、複数の送信所で同じ周波数が使うことは普通にやっていて、

例えば埼玉県のNHK教育テレビの中継局で使っている物理Chを見ると26chと17chの2種類しかない。(cf. 受信情報 (NHKさいたま放送局))


アナログ放送では基本的にこういうことをしない。

なぜならば、同じ周波数で複数の場所から送信すると、複数の送信所からの電波が干渉して受信しにくくなる地域が生じるからだ。

それでも周波数を有効利用するために、同期放送という方法で同一周波数の中継局を設けることがある。

一部のAMラジオ局と、コミュニティラジオ局で採用されている。

複数の送信所の周波数を精密に合わせると干渉の影響を緩和できるという理屈なのだが、

この方式でも干渉が生じて受信しにくくなるエリアは発生するのが実情だそうで。そういうエリアを山間部とかに押し込めてるだけだと。


なんでデジタル放送では単一周波数ネットワークができるようになったのか?

その理由はOFDMという変調方式を使っているからだそうだ。

OFDMってどんな変調方式なのかと調べると、

  • 与えられた帯域を細切れにして、多数のキャリアを並べる (ISDB-Tでは5.57MHz幅に432本×13セグメント=5617本)
  • 各々のキャリアは周波数空間で直交するように選んでいるのでお互いに干渉しない
  • 1つずつのキャリアの帯域は狭い分、シンボルレートは遅くする(ISDB-Tでは1008μsで1シンボル送る)

アナログテレビではキャリア(搬送波)は音声・輝度・色の3つだったはずだから、デジタルテレビは5617本だから3桁も多い。

アナログとデジタルで比べるものでもないとは思うが、キャリアの数が多いというのが大きなポイントだそうだ。


位相差のある複数の波を重ね合わせると、その時々で強め合ったり、弱めあったりする。これを干渉と言っている。

複数の送信所からの電波を重ね合わせたときにも発生するが、1つの送信所から受信する場合でも、長距離伝搬するときは発生する。

というのも、長距離伝搬するうちに反射などで、伝搬経路の違う複数の電波が重ね合わされるから。

遠くのAMラジオ局を受信すると、音量が大きくなったり小さくなったりするけど、これこそまさに干渉だ。

ただ、周波数ごとに弱め合うタイミングと強め合うタイミングが違うから、

キャリアが5617本もあれば、その時々で干渉して使えないキャリアもあるけど、使えるキャリアもたくさんあると。


ところが、これだけでは問題は解決しない。というのも、伝搬距離の差で遅延量にも差が発生するから。

電波が10km伝搬するには33μs、50km伝搬するには167μsかかる。

ということは、50km離れた送信所からの電波は、10km離れた送信所からの電波より134μs遅れて到達することになる。

アナログテレビではこの差がゴーストとして見えていた。ずれた画面が重ね合わされたように見える現象ですね。

音声ぐらいゆっくりした信号ならさほど問題はないんでしょうけど、映像だと大きな問題になる。


しかし、この問題もOFDMのキャリア数が多いという特徴により解決されることになる。

キャリア数が多い分、1つのキャリアで使う帯域幅を狭くする必要があり、そのためには伝送スピードは遅くせざるを得ない。

アナログ変調を例に取るとわかりやすいけど、AM変調でf[Hz]の信号を送るには、2f[Hz]の帯域を使う。

AMラジオは7.5kHz程度の音声しか送らないので、占有帯域幅は15kHzで済む。

これに対してアナログテレビの映像信号は4.2MHzもある。音声信号など含めて占有帯域幅は6MHzとなる。

狭い帯域幅では遅い情報しか送れないというのは、ここからも理解できると思う。

実際、ISDB-Tでは5617本もキャリアがあるが、1つのキャリアは1008μsで1シンボルしか送らない。

1シンボルには6bit(ワンセグ以外)、2bit(ワンセグ)を割りあてている。(1シンボルで表す情報量が少ないということは、その分ノイズに強い)

1秒に1000シンボル、1シンボルで6bitとしても6000bpsだが、これが5617本もあるので30Mbpsぐらいになる。

確かにハイビジョン映像送れそうな数字だね。(実際には情報を冗長化しているのでこれより低いが、実際のデータレートも16.8Mbps程度)

このシンボルレートが遅いという特徴により、複数の電波の重ね合わせで遅延が生じても無視できるようになる。

1008μsで1シンボルということは、1シンボル解読するのに1008μsかけてよいことになる。端は遅延の影響を受けても、真ん中が大丈夫ならOKだ。

さらにシンボル間に126μsのガードインターバルを空けてあるので、送信所同士の遅延量の差がこの範囲に収まれば、シンボル本体は何も影響が出ない。


周波数を細切れにして、多数の周波数に情報を散らし、それぞれの周波数ごとではゆっくり送る。

多数の周波数に情報を散らしているおかげで、干渉でダメな周波数があっても、問題ない周波数で救える。

情報をゆっくり送ることで、送信局同士の遅延量の差があっても、吸収できてしまう。

この結果、単一周波数ネットワークという仕組みが成り立つわけだ。

こういう変調方式が成り立つのはデジタルだからこそというのはあるんだけど、

いろいろあるデジタル変調方式の中でも、同一周波数ネットワークを構築できる条件を選んでいるのは言うまでもない。

遅延量の問題があるので、シンボルレートが速いとどうやってもできないですからね。遅いってのが大きなポイントではある。


他にデジタル放送では、チャンネルにすき間を空けずに敷き詰めてよいというのもある。

6MHz幅のうち、5.57MHz幅にキャリアを敷き詰めても(=片側あたり215MHzのすき間を空ければ)、隣接チャンネルには影響なしというほどだ。

アナログテレビは、隣接のチャンネルから干渉を受けることを防ぐため、すき間を空けて使っていた。

確かに、近畿広域圏ではVHFで2,4,6,8,10,12chと偶数チャンネルだけ使っていたよね。今はそういうことをしなくてよい。

むしろアナログのときはすき間が必要だったのかって話だけど、デジタルになって改善したことの1つではある。

静的解析は考え物

プログラムでも論理回路でもそうだけど、ソースコードの静的解析を行って、

静的解析で出てきた指摘事項に対して対応するようにとなっている。

その指摘事項がバグにつながっている場合もあるけど、大半の指摘事項はバグではないのが実情だ。


今は論理回路の設計をしているので、HDLの記述に対する指摘を例に示す。

always @(posedge CLK) begin
  if(SET) begin
    CNT <= 8'd0;
  end
  if(INC) begin
    CNT <= CNT+1;
  end
end

これに対して2つの指摘があった。

1つ目は、1つのalways文の中に2つのif文があるということ。

2つ目は、非同期リセット信号は入っていないこと。


1つ目の指摘は、2つのif文が同時に成立した場合に問題になる。

SET==1 かつ INC==1 の場合、後ろのif文のCNT<=CNT+1 だけが有効で、前の CNT<=8’d0; は無視されるはず。

それが想定通りならよいのだが、普通はこういうのってこう書くよね。

if(SET) begin
  CNT <= 8'd0;
end
else if(INC) begin
  CNT <= CNT+1;
end

こうすると、複数の条件に当てはまるときの優先順位がわかりやすい。

この指摘に対応する中で、本当は SET==1 を優先させないといけなかったとか気づけたという場合もあるだろう。


2つ目の指摘は、通電時のリセットをやらなくて大丈夫? ということ。

通電時のフリップフロップの値は不定とされている。

そこで、通電時にリセット信号を入れて、フリップフロップの値を初期化するということがよく行われる。

このリセット信号は非同期リセットが使われることが通常だ。だから、非同期リセットがない=通電時にリセットしなくていいの という意味だと。

なるほど、確かに非同期リセットしないと、値が不定になって問題だと気づいて修正するとこうなる。

always @(posedge CLK or negedge RSTX) begin
  if(!RSTX) begin
    CNT <= 8'd0;
  end
  else begin
    if(SET) begin //以下略

確かにこれが問題となるケースもあるのだが、常に問題があるわけではない。

SET信号を入力→CNT信号を使う という順序が確立されていれば、通電時のリセットは必須ではない。


指摘事項にはいくつかのランクがあるが、「重要」とか「必須」とかなっているのは、必ず対応するようにというルールになっている。

でも、本当に「重要」とか「必須」の指摘事項って全部対応しないといけないの? とチームリーダーに聞くと、こういう返答だった。

  • 好ましい記述ではないので、バグではないと分かっていても、可能なら修正した方がよい
  • 修正できない・修正しにくい場合、問題ない理由を明確にすればそのままでもよい
  • 既存のソースコードについては、指摘事項が膨大にあるのが実情だが、そこはあえて修正する必要はないだろう

「重要」とか「必須」って言ってる割には、必ず修正するとは限らないんだよね。

特に既存のソースコードは、静的解析結果への対応が十分ではないこともある。

明らかにまずいソースコードもあるのだが、問題を引き起こさないことが明らかなら、あえて修正しないでよいだろうと。


本当にバグにつながる指摘事項というのはさほど多くないのだが、

静的解析がきっかけで、通常のテスト・デバッグでは気づかないような特殊な条件で発生するバグを見つけて直したことがある。

バグではなくても、記述がまずいので、修正しようとなるものはけっこうある。

ただ、これは修正しなくていいだろ、ってなるような指摘事項も少なくはないんだよね。

そういう指摘事項に対して、修正すべきか、理由を示して修正せずに終わらせるのか。

そこら辺の処理がめんどくさいんだよなぁ。静的解析が無意味ではないことは実感しているが、それに伴う手間がなかなか。

違う空港に飛んで遅れて

おととい、雪の影響で成田空港で滑走路が閉鎖されるなどの影響が出た。

もともと雪が降ることが想定されている空港ではないですからね。

深夜に除雪を完了させ、本来の運用時間を延長して対応したらしいけど、

そうはいっても飛んでいる飛行機はそのうち着陸しないと燃料が尽きてしまう。

というわけで他の空港を目指した飛行機も多かった。

近くで雪の影響を受けていない空港というとセントレアか関空ですかね。


目的地以外の空港に着陸することをダイバートという。

機材トラブル、急病人による場合もあるだろうけど、やはり天候理由が多いでしょうね。

国内線の場合は、出発地の空港に戻るケースも多いかな。機材繰りの問題や乗客への影響を考えるとそれが最善となるケースが多いようだ。

近隣に大きな空港があれば、そこに着陸して到着としてもよいのだが、そういうケースばかりでもないので。

あと、24時間空港だと関係ないけど、空港の運用時間に引っかかるということでのダイバートもある。

伊丹空港は21時閉鎖なので、それより遅れると関空着になるとか。けっこうあるらしいですよ。


もともと成田空港行きの国際線の飛行機が関空に着陸するとどうなるか。

関空で運航終了して、東京などに列車で振替輸送という手もあるが、

国際線では天候が回復するなどしたら、改めて最終目的地に飛び直すことが多いようだ。

さほど待たずに運航再開できればよいのだが、日を越えてしまうことも想定される。

そりゃ災難だなという話なんだけど、今回でもいくつかそういう飛行機が出ていたようだ。


例えば、CA157(重慶→上海→東京(成田))がそうで、

本来は21時成田着のところ、滑走路閉鎖のため関空に目的地を変更、翌日昼に再出発し、最終的に成田空港に到着している。

そうすると、1/23(火)には、1/22発で関空から成田へ向かうCA157と、1/23発で通常通りに成田へ向かうCA157の2つが存在することになる。

これでは運航管理上不都合なので、1/22発の方には CA157D と便名にD(Delay)を付加していたようだ。

日付をまたいで遅れた場合にはこういう対策はよく行われるようで、

今回はダイバートの影響だったが、到着機遅れでの遅延が日付をまたいだ場合などでも同様だ。


というわけで1/23の成田空港の到着便を見てみるとDのついた便名の飛行機がいくつもある

出発地で遅らせたケースも含まれているが、ダイバートして、再運航というのが多いでしょうね。

単なる欠航もそれはそれで問題だけど、目的地でもない空港で待機ってのもなかなか厳しい。

どうせ日本国内なんだし、運航終了して振替輸送で対応してくれればという気もするんだけど。


ちなみにこういうことは列車でもある。

列車といっても運行打ち切りのしにくい貨物列車の話なんだけど。

考えはほぼ同じで 遅4084列車 のように 遅れ を表す文字を付けて対応しているらしい。

旅客列車の場合、当日中に到着できなければ打ち切りでしょうね。その後、臨時列車などで対応というのはあるだろうけど。

雪の影響はかなり救済された

今朝は雪の影響もさほどではなく。とはいえ、電車は少し遅れてたみたいだけど。

それにしても、職場まで歩いてても思ったけど、市内でもずいぶん積もってたねぇ。

引越前を含めても、家の周りでこんなに積もったのは初めてかもねぇ。

関東平野でこんなに積もるのは本当に珍しいですからね。その割には朝の影響は少なかったのでは?


昨日は朝から雪が降り始め、昼頃にはある程度積もっていた。

そんな状況ですから、今後、交通機関への影響も懸念されるという状況だった。

そんなわけで昼休み明けには午後半休にすると言って帰った人とか、

フレックスタイムで退勤時間を15時過ぎに変更すると申告する人も出ていた。

そんな中で部長から「交通機関への影響が懸念されるのでできるだけ15時過ぎで退勤としてください。残業はなしにしてください。」と連絡が来た。


この指示に従って15時過ぎで退勤とした場合の勤怠上の扱いは昨日時点では明らかではなかった。

コアタイムが終わった直後なので、フレックスタイムで対応できる範囲ではある。

なので、通常は フレックスタイム -2時間 で処理することになるのだが、

雪という事情や部長の指示であるということを考えると、定時まで勤務したものとして取り扱うのが妥当という話もあった。

とはいえ、課長もどちらになるのかは昨日時点では分からないと言っていた。


勤怠上の扱いがどうであれ、安全に家に帰ることがなにより大切なのは言うまでもない。

そんな中で、こういう指示が出たので、公共交通を使っている人などは15時過ぎにはみんな帰っていった。

部長からのメッセージが出たことで、打ち合わせとかも全部延期になりましたからね。

おかげで踏ん切りがついたという人も多かっただろうと思う。

とはいえ、雪の影響はさほどではない人もいて、そういう人にとってはなかなか悩ましいことだ。

部長の指示だから救済措置もあるだろうから帰った方がよいという話もあったし、特に問題がないと判断すれば定時までは仕事をするという話もあった。


それで今日、人事から昨日の雪についてこういう指示が出た。

  • 昨日、雪の影響で半日休暇・時間単位休暇・早退(コアタイム内)・フレックス退社した場合は、通常通り勤務したものとして入力してください
  • 在宅勤務の場合は、実際の勤務通りに入力してください
  • 休暇などが雪の影響かどうかは各職場で判断してください
  • 今朝、雪の影響で出勤が遅れた場合も通常通り勤務したものとして入力してください

なので、午後半休で帰るよって言った人も、指示通り15時すぎ退勤にした場合も、いずれも通常通りの勤務として扱うようだ。


今朝、部長は人事からの指示とは別に「15時過ぎでの退勤は業務命令なので入力不要です」と連絡を出していたが、

その後に発表された、人事からの指示では、さらに広範囲に雪の影響を救済するものになっていた。

いずれも後追いでの指示ではあったが、自分で判断して早く帰った場合も、上司の指示で早く帰った場合も、同様に救済されるのはよかったと思う。

「雪だから、午後から在宅勤務にします」とかは救済対象外だけど、これは帰宅すれば正しく勤務できるから問題なしという理屈は成り立つから。


帰宅を早めるという選択をした人は多かったわけだけど、

これにより、いつもより帰宅ラッシュが早まってしまい、想定外の混雑が発生したようだ。

もともと本数の少ないローカル線では、高校生のテスト期間に昼間の列車が混むとか、場合によっては臨時列車を出すこともあると聞いている。

こういう現象が関東圏の通勤路線で大規模に突発的に発生したってことだよね。そりゃ大変だ。

うちの職場の人でものすごいひどい目にあったという話は聞いてないけど。

そもそも出勤したのがミスだったって話ですかね。朝時点で在宅勤務にするとか決断してもよかったのかもね。

逆に昨日時点で、今日を在宅勤務にすると決断した人もいたわけだけど、雪対策としてはさほど効果なかったのかも。

こちらは事前に決めて、在宅勤務で問題ないように業務を調整した上で行っているので問題ないんですけどね。

急行停車駅を増やすんだって

今日は雪ということで部長から早く帰れという指示が出て、けっこうな人が早く帰っていった。

それはそれで気になるところはあるんだけど、その話はまた明日にでも。

僕は通勤距離も高々知れてるし、公共交通も使わないから、雪が降ろうとさほど影響はないんだけど。


どうも今年3月の近鉄のダイヤ変更について発表されていたらしい。

2018年のダイヤ変更について (pdf) (近鉄)

変更点はいろいろあるんだけど、大きいのが大阪線と名古屋線の急行停車駅の変更。

大阪線は大和朝倉・長谷寺が急行停車駅に追加され、昼間を中心に区間準急などが朝倉折り返し(従来は榛原折り返し)になるとのこと。

名古屋線は南が丘・桃園が急行停車駅に追加され、ほぼ終日、名古屋方面からの普通は津新町、松阪方面からの普通は中川折り返しになるとのこと。

けっこう驚きの変更だな。


とはいえ、大阪線について言えば、そんなに影響はないのかもと思った。

というのも、長谷寺はぼたん・紅葉の時期の昼間に急行が臨時停車する駅なので、

臨時停車対象の急行は長谷寺停車分の時間をもともと確保してある。実はそうなんですね。

だから、昼間の急行にとってみれば、実質的には朝倉停車分の時間が増えるだけなのでさほど影響なしと。

それで朝倉~榛原間の区間準急などの運行区間が削れるので効率化に役立つと。

長谷寺を訪れる観光客にとっても急行が通年停車になるのはメリットがあるだろうし、そんなに悪い話ではない。

ぼたん・紅葉の時期以外で長谷寺を訪れる人がそこまで多いかはわからないけど。


ただし、2年前から深夜帯の快速急行が急行に変更されるなど、急行の運行時間帯は以前に比べると広がっている。

そこも含めて全て朝倉・長谷寺停車になるってことなんだよね。

もともと臨時停車対象ではないので長谷寺停車分の時間は確保していないので、2駅停車増はそのまま影響する。

そこまで朝倉・長谷寺停車にする意味あるの? と思ったんだけど、おそらく深夜帯にも朝倉折り返しを活用するのかなと。

その代わりということか、始発列車の繰り上げ、最終列車の繰り下げが行われるようだ。

もともと近鉄はJRに比べると始発が遅く、最終が早いと言われてきた。そこに多少の改善をするよということらしい。

運行の効率化のために停車駅増・区間短縮を行う部分はあるけど、その分は利用者にも少し還元しますよということなのかもしれない。


一方の名古屋線の急行の停車駅変更はもっと驚いた。

大阪線の場合、もともと臨時停車をやってた駅だから、臨時停車対象の列車にとっての影響は小で、

なおかつ、ラッシュアワーは急行ではなく快速急行が走るので、そこにはこの停車駅増は影響しない。

これに対して、名古屋線の急行は終日運転される種別なので、全てにおいて影響を受けるし、停車増はそのまま影響する。

あと、調べて知ったんだけど、南が丘・桃園の2駅はもともと普通しか停車しないので、ホームが短かったらしい。

なので、この2駅のホームを6両の伸ばす工事をしているらしい。そこまでして急行停車駅にするの?


この2駅を急行停車駅に追加すると、津新町~中川の停車駅が 南が丘・久居・桃園 となり、各駅停車になる。

なので、津新町~中川の4駅間については普通電車の運転を削ると言っている。

でも、ホーム伸ばして、停車駅を増やして得られるのが、たった4駅間の普通列車カットってどうなの?

しかも、普通電車がカットできるのはこの区間だけで、名古屋~津新町、中川~賢島(山田線・鳥羽線・志摩線)の普通電車はどちらも必要だ。

なんかあんまり見合っていないような気がするが、なんか深い意味でもあるのだろうか?


確かにこの4駅間だけ普通電車の運転が不要になるだけなら、あまりメリットはなさそうなのだが、

現状、中川~賢島の普通電車の大半はワンマンカーで運転されている。

一方、名古屋~中川は概ね車掌が乗務している。(昼間の一部にワンマンカーがあるけど)

というわけで、もともと中川で両側からの普通電車の多くが折り返していたのを、名古屋方面からは津新町、松阪方面からは中川と分けるよということなのだろう。

それなら、この4駅間の普通電車を削れるメリットがありそうだ。


一方で、新しく急行停車駅となる2駅の利用実態だが、

南が丘駅は乗降客数が1日3000人程度と、周辺の他の急行停車駅に比べれば少ないものの、

急行通過駅の中では多い部類で、乗降客数は増加傾向にあるようだ。

一方で現状は普通のみ停車で、名古屋方面から津新町で折り返す電車もあり、利用者数に対して電車の本数は少なめではある。

というわけで、南が丘駅を急行停車駅にするのは、なかなかよい選択肢ということが見えてくる。

一方、桃園駅は乗降客数が400人を切るほどなのでずいぶん利用者の少ない駅だ。

そんな駅を急行停車駅にするの? とも思うのだが、南が丘に急行を停めると、この1駅のためだけに津新町~中川の普通が必要になる。

そういう場合、近鉄は優等列車を全て停車させる傾向にあるから、そう考えると妥当なのかなと。

大阪線の急行が三本松(2015年の調査で乗降客数158人、以下同)、伊賀上津(99人)、西青山(1人)、東青山(26人)に停車するのもそういう理由なわけだし。

(もっとも上津・西青山・東青山については、現状は終日にわたり普通電車が走る区間なので、急行通過でも全く使えなくなるわけではないが)


実際の影響の程度はなかなか見えにくいんですけどね。

というのも近鉄の一般列車は特急などの通過待ちの影響が列車によってずいぶん違う場合がある。

平均的には停車駅増の影響が出そうなものだが、個別の列車を見るとなんとも言えない。

近鉄もこの停車駅変更により、どれぐらいの所要時間になりますとは言わないんだよね。

他社だと明確に書いてくれてたりするんだけどね。

実際どんなもんなんでしょうね。さすがに名古屋線の急行は所要時間増が見えそうだけど。2~3分程度ですかね。