年別アーカイブ: 2017年

プログラミング小噺三題その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ではファンクターで合ってるんだろうか。五十嵐淳さんの入門書に「一部だけ異なる似たようなモジュールを何度も書く面倒をなくし」とあるから多分合ってるんだろう。


「Antenna House AHPDFXML 変換ライブラリ V2.0」の利用例

「Antenna House AHPDFXML 変換ライブラリ V2.0」は、PDFファイルの内部データを、XML(Extensible Markup Language:拡張可能なマークアップ言語)形式に変換するプログラムです。このライブラリが出力するXML形式を「AHPDFXML形式」と呼びます。PDF解析技術により文書構造を生成して、再利用に適したXMLデータを出力します。

「AHPDFXML形式」で表現された様々な情報から、必用な情報を読み取ることでPDFのデータを簡単に再利用できます。

  • 文字や画像の位置情報を利用することで、任意の範囲に含まれるデータを取り出せます。
    例えば、アンケートに使用したPDFの回答欄の文字列だけ取り出すことができます。
    例えば、特定の文字列や画像を含むPDFを探すことができます。
  • 表構造をデータベースに取り込むことにより、データのグループ化がおこなえます。
    PDFには表と言う概念はありませんが「AHPDFXML形式」は、表構造(行列及びセル)を生成します。
    これにより、文字としてでは無く、表としてデータを再利用できます。
    例えば、表構造をCSVに落とすことにより、表計算ソフトに取り出込めます。

XMLで表現することによって、データの扱いが容易になります。
XMLのメリットを最大限に活かしてPDFデータを活用できます。
弊社ウエブサイトより評価版の申し込みが可能です。是非ご評価ください。

製品に関するご質問は
sis@antenna.co.jp(SYSTEM担当)
または
oem@antenna.co.jp(OEM担当)
まで、お気軽にお問い合わせください。

評価版のお申込
評価版のお申込ページ

Webページ
https://www.antenna.co.jp/pdfxml/


「Antenna House AHPDFXML 変換ライブラリ V2.0」の概要

「Antenna House AHPDFXML 変換ライブラリ V2.0」は、PDFファイルの内部データを、XML(Extensible Markup Language:拡張可能なマークアップ言語)形式に変換するプログラムです。このライブラリが出力するXML形式を「AHPDFXML形式」と呼びます。PDF解析技術により文書構造を生成して、再利用に適したXMLデータを出力します。

PDFのデータは、文字、線、画像などが配置されているだけで、文字は見た目順に格納されているとは限らず、段落や表と言う概念もありません。本ライブラリでは、PDFのデータを単にXML化するだけで無く、文書構造を生成して、再利用に適したXMLデータを出力します。「AHPDFXML形式」として出力される主な情報は次の通りです。

  • 段落、行、パラグラフなどの文書情報を生成。
  • 線画情報から、水平/垂直の線分を抜き出して、表構造(行列及びセル)を生成。
  • 文字を見た目順に再配置してから出力。
  • 文字情報は、位置、フォント情報などを出力。
  • 画像情報は、位置、種別などを出力。
  • 画像本体は外部ファイルとして出力。

XMLで表現することによって、データの扱いが容易になります。
XMLのメリットを最大限に活かしてPDFデータを活用できます。
弊社ウエブサイトより評価版の申し込みが可能です。是非ご評価ください。

製品に関するご質問は
sis@antenna.co.jp(SYSTEM担当)
または
oem@antenna.co.jp(OEM担当)
まで、お気軽にお問い合わせください。

評価版のお申込
評価版のお申込ページ

Webページ
https://www.antenna.co.jp/pdfxml/


CAS電子出版新刊ご紹介『投資信託による資産運用のイロハ』(初版)

本書は副題に「毎月分配型を中心に」と付けているとおり、毎月分配型の投資信託による資産運用の方法についての基本原則を整理したものです。

書誌情報
・書名:「投資信託による資産運用のイロハ」初版
・出版社: アンテナハウスCAS電子出版
・発売日:2017年7月
・著者:小林 徳滋
・発行形式:プリントオンデマンド版 なし
・発行形式:電子版アマゾンKDP(アマゾンへ)
・価格(税込):250円
・ISBN:978-4-900552-51-7

毎月分配型投資信託は分配金を毎月計算して支払うというタイプの投信です。その対極は分配金の支払いのない投信です。

弊社の資産運用の中核はこの毎月分配型投資信託になります。もちろん、それ以外の投信などもミックスしていますが、毎月分配型投資は資産運用の方法としては低リスクであると同時に、場合によっては利益を出すことができる、という点で優れた方式になり得ると考えています。本書のなかでは具体的なことはあまり触れずに、原理原則を整理してみました。

本書は実践の中で考えたものをまとめたものであり、評論ではなく真剣勝負の話です。これを電子書籍として公開しましたのは、毎月分配型投資信託の良さをもう少し見直してもらう必要があると考えたからです。

Webの記事では、毎月分配型投資信託に対する非常に強い批判がよく見られます。
例えば、「毎月分配型投信「第4世代」のひどすぎる手口

また、最近、金融庁長官が毎月分配型投資信託を資産形成に不向きと批判したとかで、顧客離れが起きているようです。
「毎月分配型投信、初の資金流出 金融庁批判受け上期」

毎月分配型投資信託の批判の第一は、毎月の分配金の中に元本を取り崩して払っている部分が含まれる場合が多いということです。これは確かにそういう部分もあります。これが行きすぎると基本価格の大幅な下落に繋がりますので良いとは言えません。しかし、考えようによっては儲からないときは毎月元本を返してくれるだけでも良心的です。投資の中には元本も帰ってこないで紙切れになってしまうケースもあり、例えば、上場会社の破産で株式が紙切れになってしまうことも珍しくないのですから。

もう一つの批判は収益を毎月分配してしまっては複利効果が得られない、というものです。長期投資は複利効果を生かして大きくすべきという主張なのですが、だいたいこういう議論では銀行預金で単利と複利を比較します。しかし、銀行預金は元本保証ですが、投資では元本保証がありません。投資信託では元本にあたるのは基準価格ですが、これはかなり大幅に変動します。そして、シミュレーションをしてみれば直ぐに分かりますが、基準価格が一定あるいは上昇する局面では複利が単利より有利、しかし、基準価格が下落する局面では複利は単利より不利なのです。元本自体が大幅に変動する世界に元本保証の世界の話を持ち込む論法には疑問を感じます。

投信に限らず、多くの場合、投資で利益をだすには安く買って高く売ることです。しかし、実際にはこれがほとんど実行できないのです。例えば、次の運用成績図をご覧ください。

この投信は毎月分配型ではありません。従って、この投信によって利益を出すには安いときに買って高く売るしか方法がありません。そして、ご多分にもれず、リーマンショックで投信の基準価格が大幅に下がっているのですが、これがリーマンショックの前の水準に戻るまでに5年近く掛かっています。つまり、もし、リーマンショックの前に購入したら、5年間はただひたすら待つしかないのです。2017年に振り返れば5年待てば利益が得られると分かるのですが、しかし2010年にいたらいつまで待てば良いのか全く分かりません。そうしますと、信じて待った人だけが救われる、ということになってしまいます。こうなりますと、ほとんど宗教と同じではないでしょうか。

毎月分配型であれば、元本が少しずつでも戻ってきます。毎月元本の1%が戻ってくれば百ヶ月=約8年で全部戻ってくると予想できますので、仮に運がなくてマイナスの局面になってしまったとしても待ちやすいといえるでしょう。

運良くプラスの局面になったら、もちろん全部売って利益を出すことができます。


XSLT と XSL-FO の勉強会(XSLSchool)

XML を自動組版するには XSLT の開発と XSL-FO の知識が不可欠です。HTML と CSS で組版しようという動きもあるにはありますが、まだまだ少数派でしょう。

弊社では XSLT と FO の両方を1日で学んでしまおうという、ちょっと贅沢なセミナーを開催しています。今まで25回以上開催し、ご参加者の延べ人数は100名様を超えてます。「XSLT や FO は名前を聞いたことはあるけれど…」という方々からご好評をいただいているセミナーで、6~7時間かけて XSL-FO の基礎を学びながら XSLT をひたすら入力していただく、ちょっとしたスパルタな内容です。

school-text

セミナーで使うテキストの一部

今月は12日と13日に二日連続で開催しました。二日連続というのは今までになかったかもしれません。講師はへとへとです(^^; が、皆さんに満足していただき、うれしい限りです。

詳しくは 「XSLSchoolのご案内」 をご参照ください。


DITA で WebHelp を作る

マニュアルを制作するにあたり「PDFよりもHTMLを優先したい」という声が最近増えて来ました。自動組版エンジン AHFormatter を開発している弊社としては、あまり面白くない話なのですが(笑)時代の流れには逆らえません。

タブレット端末やスマホがここまで浸透した今、固定レイアウトの PDF や紙マニュアルよりもリフロー型の HTML の方がニーズにマッチしているのでしょう。弊社でもレスポンシブな HTML の作成方法についてすでに研究を開始していますし、弊社の WEB サイトのレスポンシブ化もほぼ完了しています。

とは言え「紙マニュアルは絶対に必要。停電したときでも読めなければいけない。紙は最後の砦」このような、とあるプラントメーカー様の声もあります。

さて、そんな昨今ですが、DITA コンソーシアムジャパンの中に「DITA for WebHelp 研究部会」というものが立ち上がり、7月5日に最初のミーティングが行われました。

  • DITA から作成した WebHelp の実態を調査し、課題を明確にする
  • DITA から使い易い WebHelp を作るためのガイドラインを作成する
  • DITA から WebHelp 変換のプロトタイプを開発する

このような目的を掲げています。どのような研究成果が得られるか楽しみです。

CIDM(コンテンツマネジメントと情報開発のベストプラクティスに焦点を当てた会員組織)の調査によると、今年ついに HTML パブリッシングの方が PDF パブリッシングよりもわずかに多くなったようです。
この流れは確実に大きくなりますね。


Office Server Document Converter V6.1、Web Interface for OSDC 海外販売計画推進中

海外営業担当2です。

先日、国内向けのOffice Server Document Converter V6.1リリース情報が ブログ にアップされましたが、海外営業グループでも英語版リリースの準備を進めています。
国内に比べて、苦戦している欧米の市場ですが、この新製品リリースを契機に販売攻勢をかけるべく、アメリカ事務所のメンバーと共に日々格闘しています。(もちろん日本チームの強力なサポートあってのことですが)

9月にはテキサス州、オースチンでの展示会(SDxE: The Software-Defined Enterprise Conference & Expo  9/25~27開催 )に出向き、製品アピールと共に、市場ニーズの調査を行う計画です。
もしお知り合いで出店、来場される方がおられれば、ぜひお声がけをお願いします。

日本国内のユーザー様にももっと良い製品をお届けできるヒントを得られれば、と少し欲張った事も考えていますので、アメリカ出張の成果を後日報告出来るよう、頑張って参ります。

製品紹介サイト(英語)
http://rainbowpdf.com/about-us/
https://www.antennahouse.com/antenna1/


MathML数式組版入門書の英語版を作成中です

海外営業担当です。

MathML数式組版入門書 は初版V1.0が昨年6月に出版され、今回改訂版V1.1の出版を間近に控えています。

本書は数式記述言語 MathML を使って数式組版を行うための入門書です。MathML を使って数式を組むためには、MathML に対応した組版ソフトが必要です。本書では弊社が独自開発した「AH Formatter MathML 描画エンジン」を用います。本書の内容の大半は特定のアプリケーションソフトに依存しないものですが、『AH Formatter』を使って MathML 組版を行ううえで有用な知識を随所に盛り込みました。本書で取り扱う MathML 仕様はバージョン 3.0(Mathematical Markup Language (MathML) Version 3.0 2nd Edition)を念頭に置いてあります。これから MathML を学習する方も、Web 上のサンプルをコピー&ペーストしてなんとなく使っていた方も、この一冊で MathML の基本がよく分かる構成になっています。

なお、本書は HTML と CSS で記述され、『AH Formatter』で組版(CSS 組版)されています。数式部分はもちろん MathML です

2014年2月リリースの『AH Formatter V6.2』では、MathML 描画エンジンが完全に書き換えられ、数式の組版がより一層強化されました。このとき、MathML の対応バージョンも『AH Formatter V6.1』までの MathML 2.0 から 3.0 へ更新しました。

海外でもこの時新しくなった MathML 描画機能を評価をしていただいた企業より、数式の組版精度が格段に良くなったとお褒めの言葉を頂いたのを覚えております。さて本書の改訂版の出版を機に、英語版を作って海外の皆さんにも幅広く利用していただこうと、現在翻訳に着手しております。翻訳をしながら、内容を理解していきますと、これなら初心者の方も試してみよう、数式をこの本書にあるサンプルのとおりコーディングして描画してみようという気になるのではという感想を持ちました。

是非読んでいただきたい書籍です。購入方法はこちらをご覧ください。

https://www.antenna.co.jp/AHF/ahf_publication/index.html#MathML

アンテナハウス海外サイト
http://www.antennahouse.com/
http://rainbowpdf.com/


Office Server Document Converter のご利用目的

「Office Server Document Converter」は、Microsoft Office を使用せずに PDF や、画像に変換することができます。
以下のような問題を抱えているユーザ様に幅広くご利用頂いております。

  • Microsoft Office のライセンスの問題
    Microsoft Office を使用しないため、Microsoft Office のライセンスが不要。
  • セキュリティ対策
    Microsoft Office を起動しないため、マクロ実行を防ぎセキュリティ上安全に PDF 変換できます。
  • Windows 以外のプラットフォームでも動作
    Linux 環境でも PDF や画像に変換できます。

変換精度に関しては日々改善を行っております。最新の評価版で変換精度を是非ご評価ください。

評価版のお申込
評価版のお申込ページ

Webページ
https://www.antenna.co.jp/sbc/


Office Server Document Converter V6.1 R1 リリース

この度、「Server Based Converter」から

『 Office Server Document Converter 』

に名称変更致しました。
これに伴い、Flash 出力版を廃止させて頂きます。

その他の変更点は以下の通りとなります。

  • 一部モジュールの名称変更
    弊社別製品とのモジュールの衝突回避の為、一部モジュールの名称を変更しました。
  • 製品カテゴリの追加
    入力形式を Word/Excel/PowerPoint のいずれかの形式のみ選択可能とし、より導入しやすい価格設定としました。
  • Web Interface の追加(別料金)
    プログラム開発不要で、インターネットを経由して簡単に変換することができるプログラムを用意致しました。

今後とも弊社製品を宜しくお願い致します。


Pages: Prev 1 2 3 4 5 6 7 8 9 10 ... 18 19 20 Next