カテゴリー別アーカイブ: コラム

第148回 スマホ利用のスキャナ保存 事例(3)

作成者:アンテナハウス株式会社 益田康夫
資 格:上級 文書情報管理士、簿記3級、行政書士
本ブログの記載内容は、公開日時点での法令等に基づいています。
その後の法令改定により要件が変わる可能性がありますので、最新の法令などをご確認下さい。

 ★お客様のニーズが
・営業管理業務の承認業務の電子決済
・上記承認後の経理業務の効率化
であり。
改善の可能性があるなら体験版を利用して、本当にスマホを利用した運用が可能かの第二次テストに入っていきました。

1.第二次テストでは、本社メンバー様数名と拠点マネジャー様数名の合計10名程度でご利用頂き、使い勝手のご意見をお聞きしました。

2.その後、ご意見を聞いた数件を機能改善し、第三次テストで20数名の方々を対象に評価テストを高めて行きました。

3.お客様の評価が高く、拠点のマネージャーが現在紙で経費精算している
・会議費
・交際接待費
・備品経費
・交通費
などなど「月当たり2,000件以上の処理が楽になりそう!」だと本音がお聞きできるようになってきました。非常に順調に見えた商談経過でしたが、ご注文を頂く前に、もう一波乱がありました。次回は、そのお話も含めてご案内させていただきます。

――【広告】――
・アンテナハウスは、中小企業皆様のペーパレス経理への挑戦をサポートします!
・「ScanSave(スキャンセーブ)」は、証憑書類のスキャナ保存の要件確保用の
安心、低価格、短期導入可能なパソコン用スタンドアロンソフトです!

2017年7月よりScanSaveネットワーク接続版-V3をリリースししました。中堅・大企業様の様々なニーズにお応えおります。

・詳しくは、 https://www.antenna.co.jp/scansave/ をご覧ください。
・問合わせは、 sis@antenna.co.jp まで


第147回 スマホ利用のスキャナ保存 事例(2)

作成者:アンテナハウス株式会社 益田康夫
資 格:上級 文書情報管理士、簿記3級、行政書士
本ブログの記載内容は、公開日時点での法令等に基づいています。
その後の法令改定により要件が変わる可能性がありますので、最新の法令などをご確認下さい。

 今回は、これらの拒否理由を乗り越えて
1.各拠点から紙証憑を郵送などで集めるのが大変
2.集めてから営業管理や経理がスキャンするのが大変
3.ポータブルスキャナを全拠点に配布するのは、コスト負担もあり、且つ、拠点担当が使いこなせるかが心配

次の提案をどうもって行ったのかをお伝えします。

提案のポイントは
1)拠点による証憑の分散スキャン
2)分散スキャンのデバイスはスマホ利用
3)営業管理や経理の業務効率がアップする電子決済機能と会計システムへの自動転記

を打ち出しました。

お客様の反応は、どうして当初からスマホ利用で提案できなかったのか?
(平成28年9月30日受付開始のスマホ緩和の要件内容が明確でなかったが、やっと明確になったため)

iPhoneを利用しているが、起案+添付+申請承認/却下など使いやすく出来るのか?
(iPhone利用可能でワークフロー機能がある)

使っている会計システムとの連携実績はあるのか?
(CSVの仕様を頂き、直ぐにテスト実施)

スマホを利用した体験テストは可能か?
(2016年10月の段階で試作開発が完了していたので、体験テストを提供)

★上記の通り、お客様のニーズがここで明確になり、本社業務の効率化!
・営業管理業務の承認業務の電子決済
・上記承認後の経理業務の効率化
の改善の可能性があるなら体験版を利用して、本当にスマホを利用した運用が可能かの第二次テストに入っていきました。

――【広告】――
・アンテナハウスは、中小企業皆様のペーパレス経理への挑戦をサポートします!
・「ScanSave(スキャンセーブ)」は、証憑書類のスキャナ保存の要件確保用の
安心、低価格、短期導入可能なパソコン用スタンドアロンソフトです!

2017年7月よりScanSaveネットワーク接続版-V3をリリースししました。中堅・大企業様の様々なニーズにお応えおります。

・詳しくは、 https://www.antenna.co.jp/scansave/ をご覧ください。
・問合わせは、 sis@antenna.co.jp まで


第146回 スマホ利用のスキャナ保存 事例(1)

作成者:アンテナハウス株式会社 益田康夫
資 格:上級 文書情報管理士、簿記3級、行政書士
本ブログの記載内容は、公開日時点での法令等に基づいています。
その後の法令改定により要件が変わる可能性がありますので、最新の法令などをご確認下さい。

 今回より 4回シリーズで スマホ利用のスキャナ保存の事例をご説明します。

今回は1回目なのでプロローグになります。
2016年(平成28年)6月に某複合機ベンダー様のセミナーで筆者が講師をさせていただきました。
その際のご来場の某サービス業の中堅企業の方々がいらっしゃいました。
セミナー終了後、直ぐにお声がかかり、訪問して詳細説明しました。

体験版を利用したいということになり、体験版を使うための、ハンズオンセミナーを受講頂きまして、持ち帰って複合機と携帯型のスキャナを用いて、スキャナ保存体験版を1ヶ月後利用いただきました。

結果は、どうだったでしょうか?
この時、対象にした証憑は従業員立替払いの「領収書」でした。
そして、結果は、残念ながら「不採用」でした。

理由は
1.各拠点から紙証憑を郵送などで集めるのが大変
2.集めてから営業管理や経理がスキャンするのが大変
3.ポータブルスキャナを全拠点に配布するのは、コスト負担もあり、且つ、拠点担当が使いこなせるかが心配

次回は、これらの拒否理由を乗り越えて、次の提案をどうもって行ったのかをお伝えします。ご期待ください。

――【広告】――
・アンテナハウスは、中小企業皆様のペーパレス経理への挑戦をサポートします!
・「ScanSave(スキャンセーブ)」は、証憑書類のスキャナ保存の要件確保用の
安心、低価格、短期導入可能なパソコン用スタンドアロンソフトです!

2017年7月よりScanSaveネットワーク接続版-V3をリリースししました。中堅・大企業様の様々なニーズにお応えおります。

・詳しくは、 https://www.antenna.co.jp/scansave/ をご覧ください。
・問合わせは、 sis@antenna.co.jp まで


第145回 国税庁 新QA(一問一答)のポイント解説(4)

作成者:アンテナハウス株式会社 益田康夫
資 格:上級 文書情報管理士、簿記3級、行政書士
本ブログの記載内容は、公開日時点での法令等に基づいています。
その後の法令改定により要件が変わる可能性がありますので、最新の法令などをご確認下さい。

 第145回 国税庁 新QA(一問一答)のポイント解説(4)

★本問48は受領者視点で何をどこまでやれば、その後の照合やタイムスタンプはどうすれば良いのか?が明確になったものです。本問の発表以前では、受領者から経理に回付して経理A(スキャン担当)さんと経理Bさん(照合とタイムスタンプ)が相互牽制が必要とされていた過剰な解釈が不要となった画期的なものとなります。★タイムスタンプの先打ちも認める規定がありますので、自信を持った各社の運用規程を作成してください。

問48 妻と2人で事業を営んでいる個人事業者ですが、「各事務について、それぞれ別の者が行う体制」とは、具体的にどのように体制を整備すればよいのでしょうか。

 

【回答】

「各事務について、それぞれ別の者が行う体制」は、紙段階で行われる改ざん等を防止することができるよう、相互けんせいが機能する事務処理の体制とする必要があります。
具体的な体制については事務処理体制や事業規模等を踏まえ、個々に検討していく必要がありますが、2人でけんせいを機能させる体制としては、次のような体制が考えられます。
① 「受領等する事務」と「紙段階で改ざんが行われていないか確認し入力する事務」を別々の者が行う体制
② 受領者等がスキャニングを行い、受領者等以外の者が全件について同等確認(電磁的記録の記録事項と書面の記載事項とを比較し、同等であることを確認(紙段階及び電磁的記録上で改ざんが行われていないか確認)することをいいます。以下同じです。)した上でタイムスタンプを付す体制
③ 受領者等が署名の上スキャニングしタイムスタンプを付した後、受領者等以外の者が電磁的記録の記録事項の確認(必要に応じて同等確認し紙段階及び電磁的記録上で改ざんが行われていないか確認)を行う体制

Aさん                     Bさん
----------------------------------------
①受領等                  改ざんチェック(方法は任意)、スキャン、タイムスタンプ
②受領等、スキャン   改ざんチェック(全件について同等確認)、タイムスタンプ
③受領等、署名、        改ざんチェック(必要に応じて同等確認)
スキャン、 タイムスタンプ
---------------------------------------
(注) タイムスタンプを付す時期については、それぞれ次のとおりとなります。
① Bがスキャンし、正しく読み取れたか確認した都度
② Bが同等確認した都度(Aがスキャンした際に付すことでも可)
③ Aが受領等後3日以内

【解説】

規則第3条第5項第4号イの「各事務について、それぞれ別の者が行う体制」とは、具体的には、紙段階で行われる改ざん等を防止することができるよう、各事務に関する職責をそれぞれ別の者にさせるなど、明確な事務分掌の下に相互にけんせいが機能する事務処理の体制がとられていることが必要とされるものです

事業規模の小さな事業者にとっては、1人で全ての事務を行うことが可能な場合もありますが、1人で全ての事務を行うこととなると、紙段階で行われる改ざん等を防止するためのチェック機能が働かないことから、この要件を満たさないこととなります。

具体的な体制については事務処理体制や事業規模等を踏まえ、個々に検討していく必要がありますが、2人でけんせいを機能させるためには、受領者等以外の者が「紙段階で改ざんが行われていないか確認する事務(受領者等がスキャニングする場合は電磁的記録上で改ざんが行われていないか確認する事務を含む。)」を行う体制を整備することが必要です。

――【広告】――
・アンテナハウスは、中小企業皆様のペーパレス経理への挑戦をサポートします!
・「ScanSave(スキャンセーブ)」は、証憑書類のスキャナ保存の要件確保用の
安心、低価格、短期導入可能なパソコン用スタンドアロンソフトです!

2017年7月よりScanSaveネットワーク接続版-V3をリリースししました。中堅・大企業様の様々なニーズにお応えおります。

・詳しくは、 https://www.antenna.co.jp/scansave/ をご覧ください。
・問合わせは、 sis@antenna.co.jp まで


第144回 国税庁 新QA(一問一答)のポイント解説(3)

作成者:アンテナハウス株式会社 益田康夫
資 格:上級 文書情報管理士、簿記3級、行政書士
本ブログの記載内容は、公開日時点での法令等に基づいています。
その後の法令改定により要件が変わる可能性がありますので、最新の法令などをご確認下さい。

 第144回 国税庁 新QA(一問一答)のポイント解説(3)

 ★本問32は、要件解釈がいままで割れていたものが、明確になったものです。

→ 要するに 受領者がスキャンしても別の者に紙を回付して全数照合確認すれば業務サイクル入力方式が出来ることの裏づけです。
★そして、そもそもタイムススタンプがスキャンした当日に必要なのかが明記されている点で重要です。

問32 国税関係書類の受領者等がスキャニングした後、その国税関係書類全てについて、経理担当者が書面と電磁的記録とが同等であることを確認することとしている場合、受領者等が署名の上、3日以内にタイムスタンプを付す必要がありますか。

【回答】

規則第3条第5項第2号ロに規定されている「国税関係書類の受領者等が当該国税関係書類をスキャナで読み取る場合」とは、受領者等がスキャニングからタイムスタンプを付すまでを一人で行うことにより、受領等から入力までの各事務について相互にけんせいが機能する事務処理体制がとられていない場合をいい、受領から入力までの各事務について、相互にけんせいが機能する事務処理体制がとられている場合は、「受領者等が読み取る場合」に含まないこととしています(取扱通達4-23の2)。

したがって、国税関係書類の受領者等がスキャニングした後、その国税関係書類全てについて、経理担当者が書面と電磁的記録とが同等であることを確認することとしている場合は、相互にけんせいが機能するため、受領者等が署名の上、3日以内にタイムスタンプを付す必要はありません。

【解説】

規則第3条第5項第2号ロ括弧書では、国税関係書類の作成又は受領をする者(以下「受領者等」という。)が当該国税関係書類をスキャナで読み取る場合には、特に速やかにタイムスタンプを付すこととされていますが、これは、タイムスタンプを付すまでの間に国税関係書類の受領者等以外の者が当該国税関係書類の書面を確認することによるけんせい効果が失われること、また、けんせい効果が失われた状態で電磁的記録にタイムスタンプを付すまでの期間を長く設定すれば、電磁的記録上の改ざんも容易となってしまうことから、特に速やかにタイムスタンプを付すことによって、これらの問題点に対処することを目的としたものになります。

しかしながら、国税関係書類の受領者等がスキャナ操作を行った場合であっても、その国税関係書類全てについて、受領者等以外の者が当該国税関係書類の書面に記載された事項と当該国税関係書類に係る電磁的記録の記録事項とを比較し、同等であることを確認することとしている場合には、受領者等以外の者がスキャナで読み取る場合と同様の相互けんせいが機能することから、そのような相互にけんせいが機能する事務処理体制がとられている場合には、受領者等の署名や特に速やかにタイムスタンプを付す必要はないこととしています。

なお、タイムスタンプは、電磁的記録上の改ざんに対処する観点から、原則として、スキャニングと同時又は国税関係書類をスキャナで読み取り、折れ曲がりや文字の歪みがないかなど、正しくスキャニングされていることを確認した都度タイムスタンプを付すこととなりますが、上記のように相互にけんせいが機能する事務処理体制がとられている場合は、受領者等以外の者が同等確認した上でタイムスタンプを付すこととして差し支えありません(取扱通達4-23 の3)。

(注) 上記のように規則第3条第5項第2号ロに規定されている「国税関係書類の受領者等が当該国税関係書類をスキャナで読み取る場合」に含まれない場合であっても、受領者

等がスキャニングを行う場合には、A4以下の大きさの国税関係書類に係る大きさに関する情報の保存は不要です(規則3⑤二ハ)。

――【広告】――
・アンテナハウスは、中小企業皆様のペーパレス経理への挑戦をサポートします!
・「ScanSave(スキャンセーブ)」は、証憑書類のスキャナ保存の要件確保用の
安心、低価格、短期導入可能なパソコン用スタンドアロンソフトです!

2017年7月よりScanSaveネットワーク接続版-V3をリリースししました。中堅・大企業様の様々なニーズにお応えおります。

・詳しくは、 https://www.antenna.co.jp/scansave/ をご覧ください。
・問合わせは、 sis@antenna.co.jp まで


第143回 国税庁 新QA(一問一答)のポイント解説(2)

作成者:アンテナハウス株式会社 益田康夫
資 格:上級 文書情報管理士、簿記3級、行政書士
本ブログの記載内容は、公開日時点での法令等に基づいています。
その後の法令改定により要件が変わる可能性がありますので、最新の法令などをご確認下さい。

 第143回 国税庁 新QA(一問一答)のポイント解説(2)

 今回は問9を見てみましょう!

「受領者」読み取りの解釈がその年度ごとに変わっていることを皆さん知っていましたか?
本問9の解説の後段には重要な要件解釈が書かれています。是非とも押さえておきましょう!

問9 受領者等がスキャナで読み取りを行うことは可能でしょうか。

【回答】

承認申請が行われた時期により、それぞれ次のとおりとなります。

<承認申請が行われた時期>     <可否>
----------------------------
平成27年9月30日前           ◎ ※1

平成27年9月30日以降          × ※2

平成28年9月30日以降          ◎
----------------------------
※1 契約書等については、記載された契約金額又は受取金額が3万円未満のものに限ります。
※2 一定条件の下スキャニングのみ可能です。

【解説】

スキャン文書による保存については、平成27年度改正により、規則第3条第5項第4号(適正事務処理要件)に掲げる事項(①相互けんせい、②定期的な検査、③再発防止策)について規程を整備するとともに、これに基づき事務処理を行うことが要件とされています。

①については、同号イにおいて、「各事務について、それぞれ別の者が行う体制」とされており、国税関係書類の受領者等と入力を行う者とは別の者でなければならないことから、平成27年9月30 日以後に行う承認申請については、受領者等が読み取りを行うことは認められません。

ただし、受領者等以外の者が書面と画像を比較し、同等であることを確認した上でタイムスタンプを付す体制がとられている場合は、受領者等がスキャニングを行うことは可能です。

なお、平成28年度税制改正により、国税関係書類を受領者等が読み取る場合の要件が定められましたので、平成28年9月30日以後に行う承認申請について、受領等後、受領者等が署名の上、3日以内にタイムスタンプを付す場合には、受領者等が読み取りを行うことが可能ですが、この場合、受領者等以外の者が電磁的記録の記録事項の確認(必要に応じて原本確認)を行う体制がとられていることが必要です。

また、平成28年9月30日以後に行う承認申請についても、受領者等以外の者が書面と画像を比較し、同等であることを確認した上でタイムスタンプを付す体制がとられている場合は、受領者等がスキャニングのみを行うことも可能です。なお、この場合は、受領者等がスキャニングを行うことになるため、国税関係書類がA4以下の大きさであれば大きさに関する情報を保存する必要はありません(規則3⑤二ハ)。一方、規則第3条第5項第2号ロ括弧書に規定する「国税関係書類の作成又は受領をする者が当該国税関係書類をスキャナで読み取る場合」には含まれないこととなり、受領者等の署名及び3日以内にタイムスタンプを付す必要はありません(取扱通達4-23の2)。

――【広告】――
・アンテナハウスは、中小企業皆様のペーパレス経理への挑戦をサポートします!
・「ScanSave(スキャンセーブ)」は、証憑書類のスキャナ保存の要件確保用の
安心、低価格、短期導入可能なパソコン用スタンドアロンソフトです!

2017年7月よりScanSaveネットワーク接続版-V3をリリースししました。中堅・大企業様の様々なニーズにお応えおります。

・詳しくは、 https://www.antenna.co.jp/scansave/ をご覧ください。
・問合わせは、 sis@antenna.co.jp まで


第142回 国税庁 新QA(一問一答)のポイント解説(1)

作成者:アンテナハウス株式会社 益田康夫
資 格:上級 文書情報管理士、簿記3級、行政書士
本ブログの記載内容は、公開日時点での法令等に基づいています。
その後の法令改定により要件が変わる可能性がありますので、最新の法令などをご確認下さい。

 第142回 国税庁 新QA(一問一答)のポイント解説(1)

 下記の問8がスマホをスキャナとして利用する際の重要なものとなります。

平成28年9月30日以降申請についてはスマホをスキャナとして利用できます。
但し、スマホには機能的に不足している点があるので十分注意が必要です。
筆者としては、スマホを受領者以外の方が運用されるのをお勧めしません。
皆様はいかがでしょうか?以下をご確認ください。

問8 受領者等以外の者がスマートフォンやデジタルカメラ等を使用して読み取りを行うことは可能でしょうか。

【回答】

可能です。
なお、平成28年9月30日に行われた承認申請については、スキャナが原稿台と一体となったものに限られます。

【解説】

この場合、国税関係書類の受領者等が読み取る場合に該当しないため、当該国税関係書類がA4以下の大きさであったとして、大きさに関する情報の保存が必要になります。

なお、一般的には、スマートフォンやデジタルカメラ等においては、読み取りの際に、大きさに関する情報の取得等が困難となっています。このため、受領者等以外の者がスマートフォンやデジタルカメラ等を使用して読み取る場合には、大きさに関する情報を保存するために、国税関係書類の横にメジャーなどを置いて合わせて撮影する、画像ファイル作成後に大きさに関する情報を手入力するなどの対応が必要となります。

――【広告】――
・アンテナハウスは、中小企業皆様のペーパレス経理への挑戦をサポートします!
・「ScanSave(スキャンセーブ)」は、証憑書類のスキャナ保存の要件確保用の
安心、低価格、短期導入可能なパソコン用スタンドアロンソフトです!

2017年7月よりScanSaveネットワーク接続版-V3をリリースししました。中堅・大企業様の様々なニーズにお応えおります。

・詳しくは、 https://www.antenna.co.jp/scansave/ をご覧ください。
・問合わせは、 sis@antenna.co.jp まで


DLLを作るときの注意事項

WindowsでDLLを作るときには注意事項がいろいろあります。
どの言語で開発するかを問わず必ず問題になるのは、

  • 呼び出し規約
  • DLLヘル
  • メモリの確保と解放
  • 構造体のパディング
  • 例外
  • スタックサイズ
  • FPU制御レジスタ、MXCSRレジスタ

くらいでしょうか。

C++の場合は更に、

  • STLの公開と非互換性
  • クラスの公開
  • オーバーロード

などが追加されます。

ネット上でこれらの問題と解決法(諦めることも含めて)を見つけることはできますが、「FPU制御レジスタ、MXCSR」についてはDLLと絡めた情報は見つかりません。

FPU制御レジスタ、MXCSRレジスタの設定値はコンパイラによって変わります。
FPU制御レジスタの初期値はVCでは0x027f、VB6は0x137f、Delphiは0x1372で全て値が違います。実行中に変えることもできます。
DLLは自分の呼び出し元がどれで作られているかは関知しないので、制御レジスタがどんな値でも対応できなければなりません。

基本的には公開関数の最初で制御レジスタを都合のいい値に変更し、最後で呼び出されたときの値に戻せばOKです。
関数からEXE側にコールバックする等、モジュールを越える場合は都度対応が必要です。

この問題はわかりにくい形で発生します。
以前弊社で利用したOCRライブラリではDelphiからの呼び出しで認識精度がガタ落ちしました。
また弊社PDFDriverに対して16bitのVBアプリからの印刷で例外が出ることがありました。
いずれもFPU制御レジスタの設定で解消できましたが、OCR問題の時はこれを知らなかったのでかなり解決に時間がかかりました。

EXE制作で外部のDLLを利用する場合に、サンプルコード通りなのに結果がおかしい、VCからならOKなのにVC以外からだと同じ入力でも結果が違う、という問題がおきたらFPU制御レジスタを変えると期待通りの動作になるかもしれません。

VCではFPU制御レジスタの初期値は0x027f、MXCSRレジスタの初期値は0x1f80です。


Microsoft Edge で PDF ファイルを扱いにくい

以前、「Windows 10 では Microsoft Edge の一機能として PDF 表示が行えるようになっています。」と紹介しました。
Windows 10 の PDF 表示機能

Microsoft Edge には、実際に Edge アプリを起動したあとでは PDF ファイルを開こうとしてもできない、という奇妙な制約があります。

PDF ファイルを Edge のウィンドウにドラッグ&ドロップしても受け付けられず、 ローカルファイルの一覧を表示して開くファイルを選択できるようなインターフェースもありません。

Edge で PDF を開くためには、PDF ファイルの関連付けアプリを「Microsoft Edge」に変えてからエクスプローラー上でファイルを開く操作をするか、
kanrenduke
エクスプローラーの右クリックメニューで「Microsoft Edge」を選ぶという操作が必要になります。
explorer-menu

 

ドラッグ&ドロップでファイルを開けないのは、今まで Windows を使ってきた経験上、かなり不便に感じます。
何か理由があってドラッグ&ドロップ操作は禁止されているのかもしれませんが、筆者の使っている他の PDF 閲覧アプリ(下記)ではそのような制限はありません。そのため筆者の普段使いのリストからは Edge は外れています。
—-
Addobe Acrobat Reader DC
PDF-XChange Editor
Google Chrome
—-

IE11 で PDF のドラッグ&ドロップでの表示が可能か試してみると、それは可能でした。
ただ、筆者の環境では Acrobat Reader のアドオンが使用されていて、Edge のコンポーネントが使用されるわけではありませんでした。
これでは、Acrobat Reader DC を単体で利用するのとあまり変わりません。
ie11-pdf


プログラミング小噺三題その2

Objective-Cに嵌る

Objective-CはCの系列なのでクラスを宣言するヘッダファイル(.h)とクラスを実装するソースファイル(.m、.mm)がある。同期通信を非同期通信に置き換える改造(元は私のコードではない)で、色々書き換えてるうちにどうにも全く動かなくなった。以下、クラスの宣言はヘッダファイルでする必然性はないが、機能のモジュール化等の現実のプログラミングの流儀を前提とした話なので、クラスの宣言=ヘッダファイル、ということで了承願いたい。

詳細に調べて判明したのは、ヘッダファイルにメソッドの宣言があって、ソースファイルに実装がなくてもXcodeではビルド・サクセスとなり、リンクエラーにはならないということだ。C++はオブジェクト指向言語としては偽物なので、存在しないのに呼ばれてるメソッドはリンクエラーになるのだが、Objective-Cはメソッド呼び出しがきちんとダイナミックになってるので実行時に解決することになる。で、解決できないとどうにも全く動けない。

問題のソースファイルをコンパイルするとちゃんとWarningが出ていた。ヘッダファイルに書いてあるメソッドが見つからないぞと。綴りが間違ってた。Objective-Cはヘッダファイルに宣言のないメソッドはクラス内でのみ使える、C++でいうところのプライベート扱いになる。それが仇になった。綴りを間違えたメソッドは正当にプライベートメソッドになっていた。C++だとプライベート(クラス内でのみ呼べる)だろうとパブリック(どこからでも呼べる)だろうとヘッダファイルに書かないといけないので、綴りの間違いはそもそもコンパイルエラーになる。Objective-Cはヘッダファイルに記述することなく自由にプライベートメソッドを書ける、すなわち再コンパイルが発生しにくいという、マシンパワーが貧弱(最初のNeXTはMC68030)な時代の要請が言語仕様に反映されており、コードの改造には微妙に不便だと再認識した。わざとコンパイルエラーを発生させてそこの記述を書き換えるというのが昔ながらの常套手段だからだ(なので、LLで書かれたプログラムの改造は勘弁して欲しい)。そういえば以前も同じように綴り間違いで慌てたことがあるのを思い出した。

AppleのAPIリファレンスに憤る

AppleのAPIリファレンスのページでNSURLSessionを調べる。downloadTaskWithURLメソッドをブラウザのページ内検索で探す。見つからない。目で探すとある。まさかとdownloadTaskWithURLを選択してコピー、テキストエディタにペーストするとdownload Task With URLとなる。アチャァ。しかも単なる空白が埋められてるのでなくU+200Bだ。ゼロ幅スペースだよこれ。これ決めた人はプログラマに恨みでもあるんですか? 頭おかしいザマス。Appleの製品向けにプログラムなんて作るなってことかいな。
Firefoxでは見つからないがSafariでは見つかる。Edgeでは見つからないがChromeでは見つかる。WebKit系の方が優秀ですよとでも言いたいのか。downloadTaskWithURLとdownload Task With URLは違うだろ、メソッド名は分解して良い何かではない。

OCamlnetに落胆する

「OCamlnet Http_client」でWeb検索すると、Http_client.Convenienceを使ってみた系の頭の悪い話ばかりでウンザリする。Cookieをセットしたりとか細かく制御したいからプログラムを書くんであって、Http_client.Convenienceでは仕様が大雑把過ぎて使えない。まだしもwgetの方が色々できる。
Http_clientの使い方はHttp_client.pipelineが関係してることまでは突き止めた。つうかマニュアルのHttp_client.pipelineのところにExampleが書いてある。ダウンロードのプログレスを出したいんだが、どうもよく分からん。プログレスが出せないならHttp_client.Convenienceでも同じ。

OCamlnetを調べて判ったのは、ダウンロードするときにどのくらい済んだのかの経過を表示したい、という私の目的はちょっとやそっとでは達成できないらしいこと。OCamlnetはなるほど壮大なフレームワークのようで、色々取り揃えているようだ。だが、ガイドの説明にて「The Netchannels tutorial – strongly recommended read!」なんて書いてあるから読んでみたが、単に独自のI/Oデスクリプタの説明だった。Http_clientを調べてる私には一切無関係。
単にhttps接続されたWeb上のファイルをダウンロードしたいだけだってのにpipelineやらcontextやらtransportやらequeueやらengineやらあまりにも普通名詞過ぎて意味不明な独自概念が目白押し。あぁ、なんだ、世界系だったのか。こういうのチマチマ構築するのって楽しいんだろうなぁ。結局経過表示をする方法は発見できなかったわけで、縁があったらまた会いましょう、さようなら。せめてPythonのurllib2とか.NETのWebClientくらいに扱いやすければ文句もないんだが。

結局自分でUnix.socketを使って書いたHTTP GETをするコードを元に、Socket通信をOCamlの外部ライブラリのSslに置き換えることで実現。さらにはファンクターにして、httpとhttpsでコードを共有した。C++なら仮想関数で実現するようなことはOCamlではファンクターで合ってるんだろうか。五十嵐淳さんの入門書に「一部だけ異なる似たようなモジュールを何度も書く面倒をなくし」とあるから多分合ってるんだろう。


Pages: Prev 1 2 3 4 5 6 7 8 9 10 ... 102 103 104 Next