wkhtmltopdfを使って「Perlテキスト処理プログラミング入門」の紙のテキスト製作を始めます。

木本システムは、wkhtmltopdfを使って「Perlテキスト処理プログラミング入門」のテキスト製作を始めます。

wkhtmltopdf.org

書籍はプロに作ってもらわないと作れないので

木本システムとしては

まずマンツーマンレッスンで使えるような「Perlテキスト処理プログラミング入門」の紙のテキスト製作をします。

今日から、どんどん書いていきます。

ひとつのテキストでA5サイズ 約120p。1ヶ月に一冊書いていけたらと思います。

» Unicodeの右二重矢印・右二重三角

「»」この記号を使いたいのだけど、検索してもいつもたどりつけないので、Unicodeの右二重矢印・右二重三角という名前でここに記す。

»

これは、リンクだよということを表すために、リンクテキストの右につけたりするものです。

HTML数値文字参照変換

HTMLの中で、数値文字参照変換によって「»」を表示

»

CSSのcontentの中で使う場合

content: "\bb";

数値計算のためのSPVMの基礎機能の実装 - 実数、複素数、クォータニオンの高速な四則演算と集合演算

SPVMの数値計算のための基礎機能の実装。SPVMの1.0のリリースに向けて、試験をしていますが、基本機能として足りないものが、わかってきたので、それを実装する。

プログラミング言語の基礎機能として、実数、複素数、クォータニオンの高速な四則演算と集合演算ができる必要がある。

実数は、1次元世界、複素数は、2次元世界、クォータニオンは3次元世界に対応

実数は、1次元世界、複素数は、2次元世界、クォータニオンは3次元世界に対応(4次元だが3次元世界のために使う)。

この世界の中で、拡大・縮小と回転をするためには、実数、複素数、クォータニオンの高速な四則演算と集合演算を実装する必要がある。

まず、足し算、引き算、掛け算。そして、定数倍。定数倍は、拡大・縮小を表現。掛け算は、回転を表現。

割り算は、定義できない場合があるが、共役をとれば、割り算は、共役と掛け算に分解することが可能。

集合演算としての、配列と行列

集合演算として、配列と行列の四則演算を定義する。要素として、実数、複素数、クォータニオンを持つことができる。これに加えて、N次元配列も実装したいが、実装が複雑すぎるので、外部ライブラリとして実装する選択にする。また、3次元以上のN次元配列が本当に必要になる場面は、科学技術計算の分野を除いて、限定されるだろうと感じもある。

行列の場合は、割り算を定義できないが。逆行列を求めることで、割り算を、掛け算と逆行列に分解することができる。ベクトルを特定の方向に対してに分解するために、行列式も求められた方がよいだろう。

CUDAで行列を演算するためにはcubrasを使うことが分かったが、bras系のライブラリは、列優先の行列を必要とする。このために、SPVMの行列データ構造は、列優先とする。

DirectXは、行優先の行列を必要とするが、転置行列を求める機能を用意して、転置行列変換と行と列を入れ替えるだけで、DirectXのような行優先のライブラリの入力を作れるようにする。

そして何より、集合演算だけでなく、要素の演算もC言語に近いパフォーマンスを出せることが必要だ。

このようなわけで、この機能を実装して、試験をして、ドキュメントを書くためには、少なくとも3ヵ月はかかりそうだ。

MariaDB 10以降へのアップグレードはお勧め。utf8mb4とdefault current_timestamp on update current_timestamp

MariaDB 10以降へのアップグレードはお勧め。utf8mb4(これは少し前の新しいバージョンから使える)とdatetime型を現在時刻でアップデートできるdefault current_timestamp on update current_timestampが使える。

create table book (
  id int primary key auto_increment,
  `created_at` datetime not null default current_timestamp,
  `updated_at` datetime not null default current_timestamp on update current_timestamp
) ENGINE=InnoDB CHARSET=utf8mb4;

この二つの機能は、頻繁に使う機能なので、アップグレードできるタイミングでアップグレードできると便利ですね。

この二つが使えれば、困るなぁということは、ほとんどない感じです。

「そのキーとなる技術が今年に入って全く現れていません」は、小さな存在にとってはチャンス。

www.orangeitems.com

何かよくわからない新技術が数年後に市場を席巻する、なんてことを十年ほどIT業界は続けています。しかし、そのキーとなる技術が今年に入って全く現れていません。

でもこれは、ビッグテックが提示できていないというだけよね。

これは、目立つことができなかった、小さな存在にとってはチャンスかも。

僕も、小さな存在ながら、新しいプログラミング言語SPVMにチャレンジしています。

jp.spvm.info

これを使えばCUDAだって、Perlから、簡単に呼べちゃうんだから。

日本のITには新しいものが何もないと、言われる中で、チャレンジしている人もいるんだぞと。

ノーコードが注目される時代に、なぜ僕はフルサーバー構築のサイトを作ったのか

ノーコードが注目される時代に、なぜ僕はフルサーバー構築のサイトを作ったのか。

ノーコードが注目されています。

www.nikkei.com

今僕は、Ubuntuサーバー管理入門という、フルサーバー構築のサイトを作りました。

ubuntu.perlzemi.com

フルサーバー構築の利点

フルサーバー構築の利点。

よく知られたオーソドックスな手法

Unix/Linuxサーバー管理者によく知られたオーソドックスな手法が使えます。シェル、find, grep, Perlなどなど。

サービスへの依存を避けられる

サービスへの依存を必要最小限にできます。どのパブリッククラウドでも、VPSでも、国内のオンプレミス事業者でも、一度サーバー構築すれば、ベンダーロックインされずに、サービス品質やコストを調節できます。

慣れてくれば手順化でき1日で完成

フルサーバー構築は、手順化して、自動化することも可能です。つまり、一度手順を作成すれば、その手順を実行して、1~3日の間で、アプリケーションに必要なサーバー構築ができます。

手動で行ったとしても、手順にさえ慣れれば、手際のよいエンジニアであれば、1日で構築が可能でしょう。

サーバー構築に1ヶ月かかると考えておられるのかもしれませんが、さらに、構築処理自体を自動化することやイメージを作っておくこともできます。

テキスト処理による自動化

CUIによるテキストコマンド実行で、処理を自動化できます。これはGUIにはない、CUIの優れた利点です。

やっぱエンジニアの作るプロダクトは品質がいいね

やっぱりプログラムが書ける、エンジニアの作るプロダクトは品質が良い!

基本的なことが学べる

ソウトウェアに関する基本的なことが理解できると、作れるものの幅が広がりますし、基礎からビルドアップで製品を作ることも可能です。

オープンソースのJava Webフレームワーク「Wicket 9」がリリースされたけど、ところでPerlには、どんなWebフレームワークがあるの?

オープンソースのJava Webフレームワーク「Wicket 9」がリリースされたけど、ところでPerlには、どんなWebフレームワークがあるの?

codezine.jp

Perlには以下のようなWebフレームワークがあります。

  • Amon2
  • Catalyst
  • Dancers
  • Plack/PSGI
  • Mojolicious

Perlはテキスト処理が得意なプログラミング言語で、Webはテキスト処理が多いので、相性がとてもよいです。

Perlは、シェル/Linuxと親和性が高く、Webシステム開発環境の構築が簡単。ノンブロッキングI/Oによるスケーリング、リアルタイムチャットなどのリアルタイムWebに、比較的簡単に対応できるサーバーを構築できるのも魅力ですね。