投稿

7月, 2015の投稿を表示しています

Inkscapeのコードを読む 使用library一覧

イメージ
現在、Inkscapeのコードを読もうと格闘中です。
今回は、ざっくりとInkscapeで使用しているライブラリの概要と一覧を作ったので、貼っておきます。



まず間違いなく使用ライブラリを網羅していないので、これがすべてではありませんが。
とりあえずInkscapeのソース中に直接取り込まれていて、目に付いたものを記載しています。
幾何学関連で実績のあるオープンソース・ライブラリの良い一覧くらいにはなるかと。

Inkscapeソースコードの取得 まずはInkscapeのコードを取得しましょう。
公式WikiのUsing a centralized (SVN-like) workflowを読みましょう。
http://wiki.inkscape.org/wiki/index.php/Working_with_Bazaar#SVN-style_checkout
ざっくり解説すると、Inkscapeはリポジトリにbazzer(bzr)を使っていて、ソースコードは以下のコマンドで取得できます。
bzr checkout lp:inkscape
bzr update


## libavoid License:GPL
object-avoiding connector routing for use in interactive diagram editors.
http://www.adaptagrams.org/documentation/libavoid.html

## libcola License:MIT
constraint graph layout(制約グラフ)
http://marvl.infotech.monash.edu/webcola/
を見るとjs版のサンプル画像が見れる。
https://github.com/mjwybrow/adaptagrams
によると、libavoidなどと同じチーム(?)の制作。

## libcroco License:LGPL
Libcroco is a standalone css2 parsing and manipulation library.
https://github.com/GNOME/libcroco
http://lfsbookja.osdn.jp/BLFS/svn.ja/general/libcroco.html

## lib…

libvorbisで.ogg音声ファイルをデコードする(memo)

イメージ
vorbis形式の音声ファイルを再生するコードを書こうと思った際のメモです。
勿体なかったので公開。
書いたのは、vorbisをPCMデータに変換するまでです。
音を出していないので、正しさを確認していない&中途半端です。

PCM形式でメモリに置くまで試して、PCMデータのサウンド出力は実際に試さずに放置していました。

さらに、同じ内容で微妙に違う2記事を適当に統合したので、重複や間違いがあると思われます。


Gstreamer
libvorbisで、(ogg) vorbisファイルをデコードしてメモリ上にPCMデータを作るサンプル
Gstreamerで 、メモリ上のPCMデータを出力するサンプル
を組み合わせて、
Ogg VorbisファイルをPCMデータにしてからGStreamerに投げることを目指す

こんなことをしなくても、
GStreamerにファイルを渡せばOggVorbisのデコードまでしてくれるが。

わざわざこんなことをする理由は、
・Ogg Vorbisファイルがデコードできていることを確認したい。
・ネットワーク音声転送するにあたって、GStreamerにメモリ上の音声データを直接渡す方法を知っておきたい。

ネットワークを通すということは、ストリームでありバイナリデータ。
GStreamerにも音声伝送用のサーバ・クライアントはあるが、暗号化をかけるのが面倒そう&画像と音声以外を送るためにできていない。





PCM形式が使われるらしい。
(libvorbisもデコード時にPCM変換を行っている)

メモリ上にPCMデータを用意する
Gstreamerにメモリを読ませる。
Gstreamer内部形式に変換させる
出力まではGstreamr

なお、GStreamerの出力デバイス自動指定(autoplay)を使うので、これを指定して音が出ることが前提です。





libvorbis(libogg)とサンプルのコンパイル ソースを入手するには、公式サイト http://www.xiph.org/downloads/ から圧縮ファイルかリポジトリを探します。
今回はGitリポジトリを使用しました。
公式サイトには、さらにサンプルコードとその解説が用意されています。

どなたかが日本語訳してくださったFAQによると、libvorbisを使用するには、libo…

オープンソース・ソフトウェアプロジェクトの寄付先リスト(2013年版)

イメージ
2013年あたりに作ったメモ。
捨てるのも勿体なかったので公開。
今では歴史的価値すら無いかもしれませんが。

もっと高額を寄付している人はいくらでもいますし。
あくまで少額寄付のススメとして。
もろもろの葛藤は「やらない善よりやる偽善」ということで。
とりあえず最大合計1万円を目安に、割り振っていきました。

選考基準 このソフトウェアに値段を付けるとこれくらい、という意味ではありません。日頃の利用率とも比例していません。

とはいえ。これが2015年現在であったなら、FontForgeに寄付しないではいなかったはずです。(とても使っているので)

注意 リンク先URLは参考程度に。いつURLが変わるとも限りませんし、リンク先が本物だと保証もできないからです。
「寄付のページがあるんだな」と確認するにとどめて、公式ページから寄付先を探してください。

2013/07/10にGoogleで見たら、1USD100.5円でした。
なので、1ドル100円換算とします。


Linux 500円
「カードorPayPal」で可能。
linuxfoundation.orgのDonateページ

まずはLinux。one time(一回きり)の方。割合としても少額ですが。
カーネルに重点を置いて寄付したいのですが、LinuxFoundationに入れておけばよいのかちょっと悩みます。
この寄付ページは検索で簡単に見つかります。

PayPalアカウントが使えなかったので、
「Don't have a PayPal account?
Use your credit card or bank account (where available). Continue
の方へ。いろいろ入力しました。

GIMP 2000円くらい
PayPal、Bitcoinほかで可能。
Donateページ

2.8になって手ブレ補正がつき、イラストが描きやすくなりました。
Linuxデスクトップを使っていて画像編集したい場合に、オールインワンかつ必須のソフトウェアだと思います。

GNOME Foundationへの寄付になるようなので、コメントに(下手な英語で)「可能ならGIMP、またはGNOMEのソフトウェアプロジェクトへお願いします」と書いておきました。あくまで、他のプロジェクトへ回ってもOKという気持…

RSSフィードをPHPで書かせた際のメモ

書きかけの汚いメモです。捨てるのも、もったいなかったので。

firefoxでダウンロードされる不具合。
.rdfではなく.xmlにするとダウンロードされない。

.rdfをxmlとしてApacheに設定すればよい(ダウンロードされない?)のだけれど、基本設定は変えられるとは限らないので、できるだけいじらない方針。(レンタルサーバへUpしたことがないので予防検疫的にコーディング。)

PHPでheader()を吐けば良いらしいけれど、RSSのURLが呼び出されるたびにPHPでRSSを生成させたり、生成済みファイルにheader()を付与するためだけのPHPファイルを追加したくなかった。

RSS自体の書き方。
RSS2.0で画像・リンク有り概要を実現する「<content:encoded>」を使う
そのまま使うとRSSリーダ(Liferea)がエラー。リンクからRSSを開くとFirefoxもエラーを吐く。
検索で上手く見つからず、考えた結果、自己解決。
RSS拡張するだけではダメ。(<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/">の追記だけではダメということ。)
結論:CDATAセクションで囲む。
<description>もこれで囲んであった。

以上。

ルーン文字フリーフォント集 手書き風の新フォントを追加

イメージ
ルーン文字フリーフォント集のRuneAMN_SeriesFonts に、新書体として KnifeAフォント および KnifeArフォント を追加しました。
楔文字(くさび文字)を起点にして、手書き文字をイメージした字形になっています。



RuneAMN_Series_Fontsは、デザイン・イラスト向けのルーン文字フォント集です。
複数のルーン文字フォントを収録した、daisy bellのフリーなフォント製品です。



RuneAMN_KnifeA(r)のねらい
これまでRuneAMN_Freeに収録されていたフォントは、正確な直線を基本として成る、ベーシックなセリフ・サンセリフ書体としてデザインされました。
その字形は、端正で美しいものです。反面、産業革命以降の印刷物に使われた金属活字・写植技術の流れを汲む、どこか人工的な文字の形でもあります。
ルーン文字が役立つ場面の多くは、魔法をコアとする、古代〜中世ヨーロッパ的なイラストです。

もちろん、セリフ・サンセリフ書体が魔法世界と反発するということはありません。むしろセリフ書体は時計の時刻を示すローマ数字を連想させて、魔法と非常に相性が良い字形です。実際に私が100個のルーン魔法陣をデザインした際には、サンセリフ書体と共に大活躍しました。
一方で、産業革命以前の、手書きあるいはナイフで木版や石版に描いたようなルーン文字フォントを作れば、RuneAMNユーザが描けるデザインの幅が広がるのではないかと考えました。

そこでデザインされたのが、RuneAMN_KnifeA~Dフォントです。
2015/07現在、全7種類が存在します。4個より多いのは、"r"(Reverse/反転)と"Bold"(太字)を含むからです。
これらを総称して、 RuneAMN_Kinfe's あるいは、
プログラマの慣習に従って RuneAMN_Knife*フォント と呼称します。

今回は、この中からRuneAMN_KnifeAおよびKnifeArを、フリーフォントとしてリリースしました。
KnifeA(r)があれば、ルーン文字による自然物への手書きデザインが簡単になります。

## RuneAMN Free Series Fonts アップデートについて
今回のRuneAMN Free Series …