改めて確認したい印刷の用語

Webデザインをメインにやってこられた方は、印刷物に苦手意識を持っている方も多いのではないでしょうか?私自身、紙での仕事は苦手意識が強くあります。

苦手意識の一つとして専門用語を曖昧にしているのも一つの要因かもしれません。
なので、ここで改めて確認しようと思います。

見開き

書籍や雑誌などのページものを開いた時に対になる、左右ページのこと。

タイトル(大見出し)

新聞・雑誌などで、目立つように大きな活字を用いた見出し。
章全体を総括した見出し。

リード文

本文に入るまえのタイトルの下、近くにある、本編へ「誘導する、リードする」ための文章のこと。

本文(ほんぶん・ほんもん)

本編、コンテンツの中心となる文章のこと。
文字の大きさは、大体11Q~13Qくらい。

キャプション

写真・図版に添えられた説明文のこと。
(8Q、9Qなどの小さいQ数)

級(Q)

文字の大きさを示す日本独自の単位のこと。
(1Q = 0.25mm。4Qで1mm)

歯(H)

歯とは、文字と文字の間隔(字送り)や行と行の間隔(行送り)のサイズを表す日本独自の単位のこと。
(1H = 0.25mm。4Hで1mm)

ノンブル

ページ番号のこと。

小見出し

本文を区切るために入れる、短めの文章。新聞・雑誌・書籍などで用いられる記事の先頭に本文とは異なった目立つ体裁で組まれた見出しのこと。

柱(ショルダー)

ページの上下の余白部分に印刷される書籍名、章節などの見出しのこと。
1章、2章、などの章立てや、記事のタイトルを小さめに入れる。

キャッチ(中見出し、たらし)

文字組みにおいて画像や本文の間に入れるアイキャッチ的な文字のこと。
コンテンツの内容をひきたたせる文章のこと。

天、地

「天」は誌面の上側をのこと。
「地」は下側のこと。

ノド

本・雑誌などの折り込まれている、内側のこと。

小口

「ノド」の反対方向、本の外側のこと。

版面(はんずら)

書籍などのページ紙面において、余白を除いた印刷面のこと。

マージン

天地左右の余白。印刷物の版面の周囲の余白のこと。


いかがでしたでしょうか。
以上、参考になれば幸いです。

FizzBuzz のコーディング

こんにちは。開発担当のマットです。

今日の記事で、FizzBuzzという海外の子供の遊びと、プログラミングについて話をしたいと思います。
FizzBuzz とは、とても単純な子供のゲームです。 1 から数字を数え上げるゲームだけです。
1,2,3,4,5,6,7… などなど

ただし、3で割れる数を “Fizz” という
そして、5で割れる数を “Buzz” という
1,2,Fizz,4,Buzz,6,7… の感じで。
なお、3でも、5でも割れる場合、 “FizzBuzz” という
1,2,Fizz,4,Buzz,6,7,8,Fizz,Buzz,11,Fizz,13,14,FizzBuzz,16,17… などなど

基本的に、二人で遊んで、交合に数字をできるだけ早く言うのがルールです。
間違えてしまうと負けになります。

スクリプトを作ってみましょう

FizzBuzz をコードで作るのはとても簡単で、初心者でもできますので、是非一緒にやってみましょう。
僕は Javascript でやりたいと思います。
Javascript は Chrome のコンソールに直接書いてすぐに実行できますので、便利です。

まずは、1 から 99 までの for ループを作りましょう。
そのループの中で、数字をそのまま書き出します。(Fizz や Buzz は後でやります)
コンソールで実行する場合、 console.log を使いますが、プログラミング言語によって、echo や print なども使えます。

これをコンソールで実行する場合、1 から 99 までの数字が全部出力されます。

Fizz と Buzz を入れるには?

3 で割れる場合、”Fizz”
5 で割れる場合、”Buzz”
3 と 5 で割れる場合、”FizzBuzz”
そして、どれにも当てはまらない場合、 数字そのまま

それをコードにそのまま書くと、以下のような感じになります。

結果を見ると・・・

ダメですね…

15 の場合、Fizz も Buzz も FizzBuzz も出てしまった。何というバグ。
なお、コードが整っていないですね。バグを修正しようと思っても、更にわかりにくくなりそう…

考え直しましょう!

まず、「出力値」の変数を作りましょう。その変数に空っぽな文字列も入れてみます。
var output = “”;
のような感じで。
もし、3で割れる場合、その output 変数に “Fizz” を追加しましょう。
もし、5で割れる場合、その output 変数に “Buzz” を追加しましょう。
これで、Fizz も Buzz も FizzBuzz も、対応できますよね。

なお、上記のチェック後、その output の変数の文字列が空っぽであれば、数字を書き出せばいいとなりますよね。

結果を見ると・・・

完璧です!

なお、とてもわかりやすいコードになりましたので、ゲームのルールを変更したバージョンもすぐに作成できますね。

まとめ

何かのプログラムやスクリプトを作る場合、書き方は様々あります。
ただし、プログラマーは日常、わかりやすくて簡潔なコードを書くことはとても大事です。

直感でいくと、バグだらけのわかりにくいコードになる恐れはありますので、何かの挑戦に取り組む前に、進め方を一度考えてから進んだほうがいいでしょうね。

これからも頑張っていきましょう!

[Solr] zeppelin-solrで単語の使われ方を可視化する

zeppelin-solr の事例の1つ “Text Analysis and Term Vectors” では Solr 内のドキュメントをテキスト解析してその特徴を可視化する方法の例が示されています。これを日本語のドキュメントでやってみました。

対象は日本語版Wikipediaとします。
Streaming Expressions の analyze 関数を使うと指定した文字列を形態素解析できます。

analyze("システム構成の概要", text)

「システム構成の概要」が対象の文字列、text は text フィールドで定義されている Tokenizer でトークナイズするという意味です。 Wikipedia 用のコレクションを作るときの設定で text フィールドは Kuromoji を使った形態素解析をすると定義されています。

上の analyze の実行結果は以下の通りです。

[システム, 構成, 概要]

では解析結果を使って図示してみましょう。
“Text Analysis and Term Vectors” では、英語のドキュメントの bi-gram をカウントして多いものトップ10をグラフにしていました。ここでは、「漫画」を含む Wikipedia の記事のタイトルを形態素解析して単語をカウントし、多いものトップ20をグラフにしました。

結果は以下の通りです。
ultimate-pie-chart を使っています。
円グラフの内訳が降順になっていないのが気になるところですが、こういう仕様のようです。

[Solr] 外部パッケージ化された Data Import Handler (DIH) を使う

はじめに

Solr 8.6 以降 Data Import Handler (DIH)が deprecated となり、外部パッケージ化されました。

https://cwiki.apache.org/confluence/display/SOLR/Deprecations
https://github.com/rohitbemax/dataimporthandler

以前やったように Wikipedia の記事をインポートする作業を通じて、外部パッケージ化された DHI を利用する方法を確認しました。

Wikipedia のデータダウンロード

https://dumps.wikimedia.org/jawiki/
の latest から jawiki-latest-pages-articles.xml.bz2 をダウンロードして展開しておきます。

DIHをSolrにインストールする

パッケージ機能を有効にして Solr を起動

$ bin/solr -c -Denable.packages=true

data-import-handler パッケージのリポジトリを追加

$ bin/solr package add-repo data-import-handler "https://raw.githubusercontent.com/rohitbemax/dataimporthandler/master/repo/"

data-import-handler パッケージインストール

$ bin/solr package install data-import-handler

Wikipedia インポート用のコレクション設定

$ cd solr-8.10.0/server/solr/configsets
$ cp -r _default wikipedia
$ vi wikipedia/conf/data-config.xml

DIH 用の設定ファイル data-config.xml を作成します。

<dataConfig>
  <dataSource type="FileDataSource" encoding="UTF-8" />
  <document>
    <entity name="page"
                processor="XPathEntityProcessor"
                stream="true"
                forEach="/mediawiki/page/"
                url="data/jawiki-latest-pages-articles.xml"
                transformer="RegexTransformer,DateFormatTransformer">
      <field column="id"        xpath="/mediawiki/page/id" />
      <field column="title"     xpath="/mediawiki/page/title" />
      <field column="revision"  xpath="/mediawiki/page/revision/id" />
      <field column="user"      xpath="/mediawiki/page/revision/contributor/username" />
      <field column="userId"    xpath="/mediawiki/page/revision/contributor/id" />
      <field column="text"      xpath="/mediawiki/page/revision/text" />
      <field column="timestamp" xpath="/mediawiki/page/revision/timestamp" dateTimeFormat="yyyy-MM-dd'T'hh:mm:ss'Z'" />
      <field column="$skipDoc"  regex="^#REDIRECT .*" replaceWith="true" sourceColName="text"/>
    </entity>
  </document>
</dataConfig>

読み込み対象を data/jawiki-latest-pages-articles.xml と指定しているので、記事ファイルを ${SOLR}/server/data/jawiki-latest-pages-articles.xml としてコピーしておきます。

設定ファイルのセットを ZooKeeper 上にアップロードします。

(cd conf && zip -r - *) |curl -X POST --header "Content-Type:application/octet-stream" --data-binary @- "http://localhost:8983/solr/admin/configs?action=UPLOAD&name=wikipedia"

コレクション wikipedia を作成して DIH を有効にする

先程アップロードした設定ファイルを指定して、コレクション wikipedia を作成します。

$ curl "http://localhost:8983/solr/admin/collections?action=CREATE&name=wikipedia&numShards=1&collection.configName=wikipedia"

コレクション wikipedia に data-import-handler をデプロイします。

$ bin/solr package deploy data-import-handler -y -collections wikipedia

Wikipedia の記事をインポートする

full-import をスタート。

$ curl "http://localhost:8983/solr/wikipedia/dataimport?command=full-import"

電動空気入れが意外と便利

普段の街中の移動はクロスバイクです。運動不足解消を兼ねて1時間以内の距離ならなるべく自転車で行くようにしています。自転車で1時間だと大阪市内のかなりの範囲をカバーできてしまいます。

タイヤの空気の管理は気をつけるようにはしていますが、マンションの駐輪場に停めている関係上、こまめに空気を入れるのは意外と面倒です。家から空気入れを持って駐輪場に行き、空気を入れてから空気入れを家まで戻してもう一回駐輪場に行って出発する、という手順が必要になるからです。空気入れを駐輪場に置いて出発すれば良いのですが、共有の場所なのでそれも気が引けます。

そんな訳で、小型の電動空気入れを買ってみました。スマホで有名な Xiaomi 製。セールのタイミングで5000円くらいでした。普通の空気入れと比べるとずいぶん高い印象ですが、これがなかなか優れものでした。

まず小さいので、遠出するのでもなければ空気を入れた後そのままカバンに入れて出かけられます。重さは500gくらいでペットボトル1本分。

タイヤのバルブに繋いでスタートボタンを押したら、予め設定しておいた空気圧まで自動的に空気を入れてくれます。自転車のタイヤの空気圧が下がったのを補う程度なら、10秒から20秒ってところです。コンプレッサーなのでそれなりに音はしますが、マンションの自転車置き場とか道端とかで使って問題になるような大きな音ではありません。

これを使うようになってから、前にも増してタイヤがぺちゃんこの状態で走っている余所の自転車が気になるようになってしまいました。