バグ?仕様?

C# + EPPlusLink でグラフ付きExcelファイルを生成するということをやってます。出力にはここLink にあるようなデータ数量の変化にも自動で追従する度数分布(Frequency/Histogramとも言う)グラフが含まれています。

が、できたファイルをExcel 2013で開く時は問題ないのに、よく分からないタイミングでグラフ上の線が突如消えたり、「このワークシートの数式に、1つまたは複数の無効な参照が含まれています。」で始まるエラーメッセージが(英語版なのでWe found a problem with one or more formula references in this worksheet)。最初EPPlusで作ったせいかと思ったのですが、一度はExcelで開いたのだから原因はそこじゃないだろうと。

通常はセルの移動や削除で#REFが出てしまったのが原因で、エラーメッセージで検索すれば対処Link がいろいろ見つかるのですが、今回の場合は#REFなどない。

次に調べるところとしては、グラフ。参照範囲(X/Y軸、タイトルなど)に数式で指定していると数式がエラーを出しているので発見が難しくなるらしい。表示の崩れたグラフを右クリック、データ範囲をしらみつぶしに調べたところ、ある名前付き範囲に設定した数式が

開いた直後  =OFFSET('Data'!GC12,2,4,COUNT('Data'!GG14:GG63),1)
エラー後  =OFFSET('Data'!GM24,2,4,COUNT('Data'!GQ26:GQ75),1)

…なぜセルのアドレスが変わってるかな?

エラー後が示しているGM24やGQ26は#NA!で埋まっており、こんなのをFREQUENCY関数の引数に与えたらそりゃエラーだろうな。

セルの指定を$GC$12というように固定形式にするとこのような変化は抑制できるようです。そういえばここLink も固定形式で指定してるな。これって公然の仕様なのでしょうか?

[参考]

— posted by mu at 02:06 pm   commentComment [0]  pingTrackBack [0]

SVNのTree conflictで悩む

書くネタ無いのでお馬鹿な失敗談を。

プログラムのコードをSVNで管理していて、ローカルではこんなファイル構成に。
~/project
  +- .svn
  +- File1
  +- File2
  +- ...
予想外に規模が大きくなってきたので「サーバ上で」trunk/branchsとフォルダを切り、File1, File2,...などをtrunkに移動。ローカルではFile1, File2, ...を削除、
~/project
  +- .svn
そのフォルダにtrunkサブフォルダを作り、(この時点で分かっている人からは「馬鹿たれ」と言われるはず)
~/project
  +- .svn
  +- trunk
改めてtrunkに対し、サーバからCheck out。
~/project
  +- .svn
  +- trunk
    +- .svn
    +- File1
    +- File2
    +- ...
サーバ上でtrunkからbranchs/branch1に複製。
[サーバ上]
project
  +- .svn
  +- trunk
    +- .svn
    +- File1
    +- File2
    +- ...
  +- branchs
    +- branch1
      +- .svn
      +- File1
      +- File2
      +- ...
ローカルではprojectフォルダの下にbranch1を作成、先ほどのbranchs/branch1をCheck out。
~/project
  +- .svn
  +- trunk
    +- .svn
    +- File1
    +- File2
    +- ...
  +- branch1
    +- .svn
    +- File1
    +- File2
    +- ...
blog20150304-SvnTreeConflict

branch1で変更を加えてcommitというのを繰り返して、いざbranch1をtrunkにマージしようとすると画像のようにTree conflict。逆にtrunkからbranch1にマージでもTree conflict。気を取り直してtrunkからbranch2を複製するも、branch2をちょっと変更してcommitしただけでマージ時にTree conflict。

何がいけないのかというと、~/project直下の.svnを削除してなかったこと。焦っていると気づかないもので。

— posted by mu at 08:09 pm   commentComment [0]  pingTrackBack [0]

atrunがキューを実行しない

FreeBSDLink をベースとしたFreeNASLink を運用していますが、故(FoltiaLink とかFoltiaとかFoltiaなど)あってat系のコマンドを多用しています。(2015/1/21 追記:正確にはFreeNASで作成したjail内でのFreeBSDがatを多用)

が、どうもキューの登録に失敗するとか、登録したキューが実行されないとかいった問題が不定期で発生。syslogを見るとこんなものが。

Jan 16 01:40:01 foltia atrun[34960]: cannot open input file 'c2729a01697728': No such file or directory
Jan 17 02:05:00 foltia atrun[34946]: cannot create output file: File exists
Jan 17 02:35:00 foltia atrun[41622]: cannot create output file: File exists
Jan 17 02:40:01 foltia atrun[41800]: cannot stat in /var/at/jobs/: No such file or directory
Jan 17 10:00:00 foltia atrun[38582]: cannot stat in /var/at/jobs/: No such file or directory
Jan 17 22:30:00 foltia atrun[59238]: cannot stat in /var/at/jobs/: No such file or directory
Jan 18 00:00:00 foltia atrun[72840]: cannot stat in /var/at/jobs/: No such file or directory
Jan 18 00:30:01 foltia atrun[76644]: cannot stat in /var/at/jobs/: No such file or directory
Jan 18 10:00:00 foltia atrun[24497]: cannot stat in /var/at/jobs/: No such file or directory
Jan 18 10:30:00 foltia atrun[26414]: cannot stat in /var/at/jobs/: No such file or directory
Jan 19 01:00:01 foltia atrun[78312]: cannot open input file: No such file or directory
Jan 19 16:55:03 foltia atrun[38395]: cannot open input file 'c28cf201698b9b': No such file or directory
Jan 19 18:30:01 foltia atrun[44437]: cannot stat in /var/at/jobs/: No such file or directory

この手のメッセージで検索すると古くはFreeBSD 6の頃から同じような症状を訴える人が少なくないのですが、どれも解決には至っていない模様。これがOSのバグだとしても、こんな基本機能の不具合が長期間放置されるとも考えづらいし…

ただ調べていくとどうもこの症状を訴える人はrootのcrontabに以下の設定をしている模様。

* * * * * /usr/libexec/atrun

/usr/libexec/atrunというのは時間が来たキューをまとめて実行するコマンド。OSの初期設定は5分毎にこれを実行しますが、上の設定だと毎分実行して時間が来たキューはなるべく早く処理するということになります。

私もこの設定にしてたので、ダメ元で3分毎に実行と頻度を落として様子を見ることに。さて、どうなるやら。

[2015/1/21 追記] 3分毎の実行は7:30にエラーを出しあえなく失敗(-_-;) ログの時刻を見るとエラーは5の倍数の分の時のみに発生している。5の倍数の分を外すようにcrontabを設定、様子見を開始。

— posted by mu at 12:48 am   commentComment [0]  pingTrackBack [0]

夜11時に吉野家行ったら

閉店時刻だと言われた( ゚Д゚) ぎりぎり持ち帰りだけは注文受けてもらえて助かったのですが。私の2分後に来た客は手ぶらで帰宅となりました。

数か月前にすき家が夜間働く人が確保できないという理由で深夜営業中止を発表してたけど、吉野家もということでしょう。日本人には牛丼屋・コンビニは24時間365日、大手スーパーも深夜や元日から営業が半ば当たり前の感覚になってましたが、これからはそうではなくなっていくのでしょう。

こういう日本の感覚でアメリカシリコンバレー辺りに行くと痛い目にあったりします。

  • スーパーやレストランは夜8時くらいで閉店。セブンイレブンは朝7時から夜11時までやっているというのが元々の意味で、それが売り文句になるわけです。
  • 夏時間になり夏至近辺になると日没が午後8時以降になります。つまり陽が沈んだらスーパー・レストランはすでに閉店。こうなると開いているのはマクドナルドとバーガーキングくらい(それでも11時には閉まる)。
  • Thanks giving dayやIndependence dayなど大きな祝日はレストランが軒並み閉店、食事どうしようかと途方にくれました。まぁそんな風習とは無縁のインド人とか中国人の店は開いてたりしますが。
  • Thanks giving dayの前日、スタバでコーヒー買ってくるように奥さんに頼まれた会社のアメリカ人が早めに帰宅しました。午後5時に閉店するんだそうです。おそらくクリスマスイブもそうなんでしょう。

冷静に考えたらアメリカの方が正しいと思う。店員だって人だもの。

— posted by mu at 11:18 pm   commentComment [0]  pingTrackBack [0]

自分で立てたSVNサーバがAuthorization failed

新しいシステムを作ることになったので、バージョン管理システムLink のサーバを立てようかと。個人だと最近はgitを使うことが多いのですが、会社ではSubversionが優勢。レポジトリをクラウドストレージと同期させればバックアップも取れるかなということで、WindowsサービスとしてSVNサーバを立てることに。

方法は検索すればごろごろ出てきますが、今回はここLink を参考に。svnのコマンド類はTortoiseSVNのbinディレクトリの物を使用。

サービスも無事立ち上がりTortoiseSVNから接続もできるのですが、なぜか書き込みをしようとするとAuthorization failedを連発。ログを見てもE170001: Authorization failedとしか書かれていない。

原因は非常に馬鹿らしいミス。svnserve.confには以下の3行を追加する必要があります。
anon-access = none
auth-access = write
password-db = passwd

一方svnadmin createで作成されるデフォルトのsvnserve.confは以下のようになってます。

# こめんと~

[general]
#
# たくさんのこめんと~
#
[sasl]
# またまたこめんと~
#

重要なのは[general]、[sasl]の順でブロックが記述されていること。何も考えず先ほどの3行をファイルの最後に書き足したので、これらは[sasl]ブロックに属すると解釈されます。ところがこれらは[general]ブロックに書かないといけない。つまり私の設定は無効。

3行を[general]ブロックに移すことでSVNサーバは期待通りの動作をするようになりました。2日潰してしまった…

[参考]

— posted by mu at 08:42 pm   commentComment [0]  pingTrackBack [0]

T: Y: ALL: Online:
ThemeSwitch
  • Basic
Created in 0.0154 sec.
prev
2024.4
next
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30