2015年03月08日

IT技術系の無料電子書籍と、日本語へ翻訳された海外のテクノロジー系ニュース

IT技術系の無料電子書籍を一覧にまとめている記事がありました。
無料でダウンロードできるIT技術系電子書籍(EPUB/PDF)一覧
本の種類もいろいろありますが、フォーマットも、PDF, EPUB, MOBI, DAISY, Kindle用といろいろあります。

PDF,EPUB、Kindle用は分かりますが、MOBI、DAISYは全く知りませんでしたの調べてみました。
第182回 電子書籍の国際標準規格 〜DAISYを知る〜
電子書籍フォーマット(CyberLibrarian)
MOBIはフランスのMobipocketが開発したもので、Amazon.comが買収したKindleのもとになったもののようで、Kindleで読めるようです。さらにKindle用のフォーマットはAZWというフォーマットのようで、MOBIがベースになっているそうです。

その他、海外のITニュースを翻訳しているサイトを新しく見つけましたので、メモ
POSTD|海外の最新テクノロジー系ニュースを日本語で

これはよく見るサイトにあった、以下の記事へのリンクから見つけました。ここは、いろいろなIT系?の翻訳があるだけでなく、「翻訳リクエスト募集中」のボタンがあり、翻訳してほしい記事のリクエストを受け付けているようです。
【翻訳】開発者がビッグデータ分析にPythonを使う時によくやる間違い
posted by jun1 at 22:28| Comment(0) | TrackBack(0) | その他

2015年03月01日

Xalanを使ってHTML5のdoctypeを出力

Xalanを使ってHTML5のdoctypeを出力する方法を調べました。

最初に、XSLTでHTML5のdoctypeを出力する方法を調べてみました。すると以下が見つかりました。
Valid HTML5 doctype with XSLT
これによると、XSLTは公式にはHTML5をサポートしていないそうです。ただ、このページには完全ではないですが、似たような出力を出す方法がいくつかありました。そのため、このページをもとに試してみました。

また、Xalanの出力をインデント有りにしたかったので、以下を参考にしました。
Configuring serialization output properties (http://xalan.apache.org)

上記の2つを参考に、以下のXSLTファイルを作成して、Xalanで変換するとエラーになり、出力に失敗します。
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html"
encoding="UTF-8"
indent="yes"
xalan:indent-amount="2"/>
 ・・・
(以下省略)

エラーは以下
D:\test>java org.apache.xalan.xslt.Process -in sc.xml -out sc.html -xsl mydocboo
k.xsl -param dateNow '2015-3-1'
[Fatal Error] mydocbook.xsl:7:40: The prefix "xalan" for attribute "xalan:indent
-amount" associated with an element type "xsl:output" is not bound.
file:///D:/test/mydocbook.xsl; 行 #7; 桁 #40; org.xml.sax.SAXParseException; sys
temId: file:///D:/test/mydocbook.xsl; lineNumber: 7; columnNumber: 40; The prefi
x "xalan" for attribute "xalan:indent-amount" associated with an element type "x
sl:output" is not bound.

java.lang.NullPointerException
at org.apache.xalan.transformer.TransformerImpl.setParameter(Transformer
Impl.java:1547)
at org.apache.xalan.transformer.TransformerImpl.setParameter(Transformer
Impl.java:1595)
at org.apache.xalan.xslt.Process.main(Process.java:842)
Exception in thread "main" java.lang.RuntimeException
at org.apache.xalan.xslt.Process.doExit(Process.java:1155)
at org.apache.xalan.xslt.Process.main(Process.java:1128)


エラーメッセージを見ると、 "xalan:indent-amount" の部分に何か問題があるようです。
そのため、その部分を中心にいろいろと試してみました。するとXalan?のインデント指定では、以下の部分の、xmlns:xalan=・・・が無いとエラーになることがわかりました。
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xalan="http://xml.apache.org/xalan">


そのため、XSLTを以下のように修正したらエラーが起こらなくなりました。
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xalan="http://xml.apache.org/xalan">>
<xsl:output method="html"
encoding="UTF-8"
indent="yes"
xalan:indent-amount="2"/>
 ・・・
(以下省略)


出力は以下のようになります。xmlns:xalan・・・ と余分なものがありますがブラウザの表示には影響なく、
HTML5として認識されている?はずです。
<!DOCTYPE html><html xmlns:xalan="http://xml.apache.org/xalan" lang="ja">
<head>
・・・


posted by jun1 at 16:43| Comment(0) | TrackBack(0) | XML

2015年02月22日

githubでpushすると403エラーになる場合

githubで作成したレポジトリを以下のようにcloneしてきてました。
$ git clone https://github.com/ajisaba/DeviceDetect.git
Initialized empty Git repository in /home/username/github/DeviceDetect/.git/
remote: Counting objects: 3, done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.


ファイルの追加などをコミットしてPUSHすると、以下のような403エラーになります。
$ git push -u origin master
error: The requested URL returned error: 403 Forbidden while accessing https://g
ithub.com/ajisaba/DeviceDetect.git/info/refs


原因が分からなかったのでネットで調べると、以下が見つかりました。
git push origin masterしたら403エラー出た時の対処
githubでいつもと違うPCからHTTPSの認証を使ってgit pushする場合の手順
(Stackoverfllow) Pushing to Git returning Error Code 403 fatal: HTTP request failed

これらを参考にして、.git/configの中身を確認。
$ cat .git/config
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = https://github.com/ajisaba/DeviceDetect.git
[branch "master"]
remote = origin
merge = refs/heads/master


参考ページより、https接続の場合は、urlにgithubのユーザー名が必要ということです。
url = https://[ユーザー名]@github.com/[ユーザー名]/[レポジトリ]


例えばユーザー名がajisabaの場合、以下のようになります。ただし、この指定方法ではpushするたびにパスワードを求められます。
url = https://ajisaba@github.com/ajisaba/DeviceDetect.gi


他に、ssh接続を使う方法もあります。sshの場合、urlはssh://URLになります。SCPコマンドのような省略形を使うこともできます。
url = ssh://git@github.com/ajisaba/DeviceDetect.git
url = git@github.com:ajisaba/DeviceDetect.git  (省略形)


参考、
4.1 Git サーバー - プロトコル

毎回のパスワード入力は手間なので、今回はsshの省略形でurlを指定することにしました。
そのため .git/config を以下のように修正してpushをすると、エラーが無くなりpushに成功しました。
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[remote "origin"]
url = git@github.com:ajisaba/DeviceDetect.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master


posted by jun1 at 19:44| Comment(0) | TrackBack(0) | ソフト

2015年02月15日

AndroidやiOSなどでファイルアップロードが可能なものを判別する

スマホでファイルのアップロードをしようとしたら、古いものは対応していないことが分かりました。とりあえずAndroidとiPhoneだけ使えれば良いので、対応しているバージョンを調べると以下のようになっていました。
iOS バージョン 6 以上
Android バージョン 2 or 3以上?


Androidは、以下の記事によると、2.2以上で対応。ただし、OSのバージョンの違いや,機種によって動かないものもあるということだそうです。
スマホでブラウザ経由でファイルのアップロードは,対応状況がバージョン依存。iOS6以降,Android2.2以降

そのため、Androidはバージョン3以上なら対応と見なすようにしました。

これらの判別はユーザーエージェントをチェックするしかないので、PHPの公開されているものはないかと探してみると、以下が見つかりました。
mobiledetect

これでも良かったのですが、簡単なガラケーの判別も必要だったのでちょっと自作することにしました。また、最近仕事でgithubを使うことが無く、使い方を忘れかけていたので、とりあえずgithubに登録してみました。
https://github.com/ajisaba/DeviceDetect

現状ではAndroid、iOS、ドコモ、Au、Softbankの判別は大丈夫のようですが、PCやその他のモバイル端末などは問題がありそうです。


posted by jun1 at 20:25| Comment(0) | TrackBack(0) | Web

2015年02月08日

DocBook関係の情報

自分のホームページのソースは、DocBook形式のXMLで書いています。

最近、新しい項目を追加しようと思いましたが、どのタグを使用すれば良いか分からなかったので、ちょっと調べてみました。また、以前調べたときの情報がまとまっていなかったので、それらも合わせて簡単にまとめてみました。

DocBookの入門情報
DocBookの概要(IBM develperWorks)
Eclipse で DocBook XML を構築するIBM develperWorks)


タグの定義は docbook.orgにあります。
DocBook Publishers: The Definitive Guide (DocBook V5.1b3)
DocBook Publishers: The Definitive Guide (DocBook V5.0)

追記. 上記だと、screenやfilenameタグがありませんでした。そこで、調べてみると以下が見つかりました。これには載っています
DocBook 5.1: The Definitive Guide


DocBookは大量のタグが定義されていて、どれを使用したら良いか分かりづらいところがあります。
そこで、ちょっと古いですが、タグの選択で参考にしたページが以下になります。
Which are the most used DocBook tags actually used by you in Fedora Guides?

上記にFedoraやGNOMEのドキュメントに使われているとありますが、今も使われているなら、それらを調べてみるのも良いかも。

また、以前調べたとき、以下の最終行近くにある「(ソースはこちらです)」のリンク先も参考にさせてもらいました。
DocBook文書を日本語で書く


あと、DocBookは、HTMLだけでなくepubの原稿としても使われています。
オライリー・ジャパンのePUBフォーマットを支える制作システム
EPUB で電子書籍を作成する
DocBook入門: DocBookで各種文書を作成する。


個人的によく使用しているタグは以下になります。
表題など  article、articleinfo
章など  sect1、sect2、sect3、title
段落  para
リンク  ulink
画像  mediaobject、imageobject、imagedata
番号なしリスト  itemizedlist、listitem
番号ありリスト  orderedlist、listitem
テキスト関係  literallayout
画面出力  screen
プログラム文  programlist
テーブル  table、thead、tbody、row、entry
posted by jun1 at 19:10| Comment(0) | TrackBack(0) | XML