コグノスケ


link 未来から過去へ表示(*)  link 過去から未来へ表示

link もっと前
2014年9月11日 >>> 2014年8月29日
link もっと後

2014年9月11日

日記システムにシンタックス・ハイライト導入

目次: 自宅サーバー

今まで、コードのキーワードやコメントの文字色の変更を、手作業でやっていましたが、いつも間違えるし、何より面倒くさくてやってられません。

巷のハイライトライブラリを使って自動化だ!ということで、highlight.js(公式サイトは背景の小豆色が目に厳しい)を導入しました。

導入

公式サイトのUsageリンクの先に説明があります。まずはダウンロードページから、highlight.jsとスタイルシート達をダウンロードします。

ダウンロードの際は、ハイライトしたい言語をチェックする必要があります。メジャーな言語には最初からチェックがついていますが、さらにハイライト対象にしたい言語があれば、追加でチェックを入れてください。

ダウンロードしたzipファイルを展開したら、自身のページに配置します。
以降の説明ではstyles内の *.cssをcss/highlightに置き、*.jsをscripts/highlightに配置した、と思って読んでください。

自身のページに、下記の三行を追加します。

highlight.jsの利用

<link rel="stylesheet" type="text/css" href="/css/highlight/vs.css">

<script type="text/javascript" src="/scripts/highlight/highlight.pack.js"></script>

<script type="text/javascript">hljs.initHighlightingOnLoad();</script>

CSSについては1つのテーマごとに1つのCSSファイルが作られていますから、お好きなテーマというかCSSを選んでください。

もちろんdefalut.cssを使っても、例に挙げたvs.css(VisualStudio風の色遣い)のままでも構わないです。この辺りは好き好きでどうぞ。

使用した感想

嬉しかったことは、特に言語を指定しなくても、それなりに推測して色を付けてくれることです。コードが短いと推測を間違うようですが、例え違う言語のハイライトだったとしても読み見やすさは格段にアップします。こりゃ便利です。

残念だったことは、行数表示がないことです。これは開発のポリシーによるもので、あえて実装していないし、するつもりもない(highlight.jsのドキュメントより)らしいので、そういうものだ、と思って諦めます。

編集者:すずき(2024/01/13 17:16)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2014年9月10日

スマートフォンで日記を見るとエラーになる?

目次: 自宅サーバー

以前から調子が悪いなとは思っていたのですが、スマホから3G/LTE回線を使って、このブログにアクセスすると、タイムアウトして一切表示できないことがわかりました。

正確に言うと、トップページだけは表示できますが、過去の日記を表示させようとするとブラウザがダンマリを決め込んで、しまいに「サーバーが応答しない」と言われてエラーになります。

原因探し

Apacheのアクセスログを見ると「サーバーが応答しない」と言われるときは、そもそもサーバーにリクエストが来ません。これはサーバに来るより前のどこかで止められていると思われます。

まず、スマートフォン側のブラウザ設定、セキュリティソフト、コンテンツフィルタなどを疑いましたが、どのブラウザを使っても、要らないセキュリティソフトを全部アンインストールしても、フィルタの契約を全部解除しても、やはり同じ症状が発生します。

じゃあ違いはURLくらいだろう、ということで、HTTP GETリクエストを飛ばせるアプリ(Ping&DNSを使いました)でリクエストを切り詰めて調べてみると、GETリクエストに ?action=cmdを入れたとき、どのサイトへのアクセスであろうと、問答無用でHTTP通信が遮断される、ということがわかりました。

例えば、
http://www.yahoo.co.jp/?action=cm
というURLにアクセスした場合はヤフーのトップページが表示されますが、

ここでcmをcmdに変えて、
http://www.yahoo.co.jp/?action=cmd
というURLにアクセスすると、するとヤフーのトップページが表示されず1分位経った頃に、ブラウザがタイムアウトの画面を出すはずです。

症状が発生するのは3G/LTE回線のみ、Wi-Fi接続だと症状は発生しない、かつ、奥さんのiPhone 5sでも全く同じ症状が出ることから、恐らくドコモの通信網のどこかで止められていると推測されます。

タイムアウトにはかなり時間が掛かるのと、一度引っかかるとそのサイトには何をしてもしばらくアクセスできなくなります。試されるときはご注意を!

しかし、一体何のために入れたルールなのだろうね…?

日記のシステム小変更

スマホから見られない原因がわかりましたので、このブログ側での対策を考えます。

調査から、日記を表示するのか、編集するのか、投稿するのか?など、ブログの動作を指示するための引数arg_action=cmd_xxxxがNGに引っかかっていると思われます。よってarg_action=cmd_xxxxを、全てarg_act=cmd_xxxxに置き換えます。

とは言っても、修正は一行でOKな作りにしていたので、楽勝でした。過去の俺は何を考えてこんな凝った作りにしたんだろうなあ?おかげで楽だったから良いけどさ…。

変更の影響範囲

おいおい、いきなり削ったらデグレするだろ?既存のリンクはどうするんだ?というご心配については、ありがとう、でもほぼ問題ありません!が、答えです。

まず、新たに張っていただいたリンクについては、今までより改善します。つまりPCからもスマートフォンからも見ることができます。
またGoogleさんを始めとする既存のリンクについては、今までと同等です。つまりPCなどからは見られますが、スマートフォンからは見られない状態のままです。

何故かというと理由は2つ。1つ目は、既存のリンクのほぼ全てが「日記を表示」するためのリンクであることです。

2つ目は、ブログの動作にデフォルト値が存在することです。変更後のブログに、変更前のarg_action引数を指定すると単に無視されて、ブログの動作としては、デフォルト値である「日記の表示」が使われます。

なので細かい話をすると、コメント投稿とか、日記編集というリンクを張っていたサイトにとっては、今回の改修によりデグレすることになります。

他人のブログを編集するためのリンクを張るサイトは居ないだろう、という判断ですが、もし該当する方が居ましたら、お手数ですがリンク張りなおしていただければ幸いです。

編集者:すずき(2024/03/05 02:24)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2014年9月8日

いきなりバージョンが飛ぶと焦る

SeaMonkeyがいきなり2.26から2.29にバージョンアップしたので、長らくアップデートを忘れていたのか?とちょっと焦った…。

都市伝説

ツルゲーネフ「片恋」二葉亭四迷 訳の「死んでも可いわ…」について。

その一節はあるけれど、I love youの訳語ではないので、都市伝説というか、誤解かな。

リンク先(FLAMA技術Blog - 二葉亭四迷は「I love you.」を「死んでもいいわ」と訳していない。)は原著にまで当たっていて大変参考になりました。

メモ: 技術系の話はFacebookから転記しておくことにした。

編集者:すずき(2015/11/29 06:02)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2014年9月7日

レガシィの2回目の車検

目次:

買ってから2回目となるレガシィの車検です。今回はレガシさんを購入したネクステージ大阪茨木店さんにお願いしました。お値段は大体14万円くらいでした。

そういえばネクステージ大阪茨木店は、スバル専門店だった(少なくともレガシィを買ったときは)のですが、いつのまにかミニバン専門店に様変わりしていました。1社専門だと売れ行きが厳しいのでしょうか?

毎年、夏になるとカーセキュリティが暑さで誤報を発して、近所迷惑極まりないので、車検と同時にカーセキュリティを調整してもらいました。

センサーの位置を変えたそうですが、残念ながらもう暑くないので、調整の成果は来年にならないと確認できません…。

編集者:すずき(2023/09/30 14:52)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2014年9月5日

PukiWikiの代わり - MoinMoinを試す

目次: 自宅サーバー

長いこと開発が停滞しているPukiWikiに鞭打って使ってきました(※)が、そろそろ置き換えようかと思います。置き換え候補としてはWikipediaでお馴染みMediaWiki、TWiki、MoinMoin辺りが割と活発なプロジェクトのようです。

(※)と思ってたら、開発が再開して7月に1.5.0がリリースされました。6年ぶり?くらい?

MoinMoin

MediaWikiはPukiWikiと同じくPHPで書かれているのは良いのですが、データベースを使うらしく面倒だったので、Python以外に何も要らないMoinMoinを試してみました。環境はApache 2.2 + WSGI + Python 2.7.3です。

MoinMoinのセットアップは初見殺しが多くてわかりづらいです。私は下記の手順で設定しました。とりあえず動きましたが、合ってるのかなあ、これ。

tar xzvf moin-1.9.7.tar.gz
tarballの展開です。でも展開しただけではダメで、インストールが必要です。
setup.py install --prefix=/home/username/public_html/wiki
インストールです。せっかくスクリプト言語なのに、コンパイルだのインストールだの面倒です…。
mv /home/username/public_html/wiki/share/moin/* /home/username/public_html/wiki/
MoinMoin本体ファイル、その他の依存ファイルを全て移動します。
ここでファイルを移動させるかWebサーバ側でshare/moinに向けてAliasを設定しないと、WikiのURLにshare/moinが入ってしまいダサいです。
mv /home/username/public_html/wiki/share/lib /home/username/public_html/
ライブラリのディレクトリを移動させます。移動させなくても動くと思いますが、後で設定ファイル書く際にパスが無意味に長くなってしまいダサいです。
cp /home/username/public_html/wiki/server/moin.wsgi /home/username/public_html/
MoinMoinのWSGIスクリプトであるmoin.wsgiのひな形をコピーします。
もし必要なら .htaccessにてDirectoryIndex moin.wsgiとすると、WikiのURLからmoin.wsgiを省略できます。
vi moin.wsgi
WSGIスクリプトはそのままでは何一つ動きません。書き足すべきは2つです。
(その1) MoinMoinのライブラリパス
sys.path.insert(0, '/home/username/public_html/wiki/lib/python2.7/site-packages')
(その2) コンフィグ(wikiconfig.py)のパス
sys.path.insert(0, '/home/username/public_html/wiki')
ln -s lib/python2.7/site-packages/MoinMoin/web/static/htdocs moin_static197
CSSとかJavaScriptの入ったディレクトリへのリンクを張ります。これを忘れるとCSSも画像も全く参照できなくなってページのデザインが崩壊し、白地に文字だけが出る悲しい有様になります。
ディレクトリ名はmoin_staticXYZという名前で、XYZにはバージョンが入ります。今回使ったのは1.9.7なのでXYZ = 197となっています。今日一番の「そんなの知らないよ…」ポイントでした。
cp /home/username/public_html/wiki/config/wikiconfig.py ./
設定ファイルのひな形をコピーしてきます。
vi wikiconfig.py
設定ファイルもデフォルトの設定ファイルのままでは動きません。書き足すべきは2つです。
(その1) CSSやJavaScriptの位置(url_prefix_staticにはmoin_static197が最初から入っています)
url_prefix_static = '/~username/wiki' + url_prefix_static
(その2) スタートページ
page_front_page = u"MyStartingPage"

とりあえず使ってみた感想としては、閲覧は速いですが、編集は異様に遅いです。遅すぎてイライラする。これを常用するのは厳しいぞ…。

蛇足

Pythonで書かれたCGIはライブラリの位置(site-modules)を設定ファイルに書く必要があって面倒です。私の場合、メインのSakuraのサーバと、サブの自宅サーバとで、パスを書き換えねばならず面倒くさいです。

今使っているMercurialのWebフロントエンド(hgwebdir.cgi)もPythonで書かれていて、ライブラリの位置を設定ファイルに書く必要があります。CGIをバージョンアップする度に、設定を上書きして潰してしまいInternal Server Errorに遭遇して、そういえば設定が要るんだった、と思い出します。

Python自体は簡潔で良い言語だと思いますが、CGIになると面倒くさくてイマイチというか…、単に私の管理方法が悪いだけなのか…。とにかく、あまり好きになれません。

編集者:すずき(2024/01/13 17:12)

コメント一覧

  • IKeJIさん(2014/09/10 01:31)
    Mediawiki + SQLite という選択肢があった気がします。使った事はないですが。
  • すずきさん(2014/09/10 02:01)
    >IKeJI さん
    ありがとうございます。
    今度の休みにトライしてみます。
open/close この記事にコメントする



2014年9月1日

Linux 3.14.16動作on自作ARMエミュ

目次: Linux

自作ARMエミュレータ上でLinux 3.14.16も起動しました。

実行速度が遅いのは相変わらずですが、ちょっとしたキャッシュを入れたおかげで、従来比2倍くらいになりました。下記はCore2 Quad Q9550での実行結果です。

Linux 3.14.16起動ログon自作ARMエミュレータ
Connected to the target VM, address: '127.0.0.1:59905', transport: 'socket'

Exception: Reset by 'Init.'.
loadFile: Z:\arm_cross\linux-3.14.16\arch\arm\boot\Image
loadFile: 'Z:\arm_cross\linux-3.14.16\arch\arm\boot\Image' done, 3912512bytes.
loadFile: Z:\arm_cross\work\initramfs.gz
loadFile: 'Z:\arm_cross\work\initramfs.gz' done, 1113122bytes.
UARTFBRD: 0x00000004
UARTIBRD: 0x00000027
UARTLCR_H: 0x00000070
[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 3.14.16+ (katsuhiro@falcon) (gcc version 4.9.1 20140710 (prerelease) (crosstool-NG linaro-1.13.1-4.9-2014.07 - Linaro GCC 4.9-2014.07) ) #7 Tue Sep 2 00:29:04 JST 2014
[    0.000000] CPU: ARM926EJ-S [41069260] revision 0 (ARMv5TEJ), cr=00003137
[    0.000000] CPU: VIVT data cache, VIVT instruction cache
[    0.000000] Machine: ARM-Versatile PB
[    0.000000] Ignoring unrecognised tag 0x00000000
[    0.000000] Memory policy: Data cache writeback
[    0.000000] On node 0 totalpages: 16384
[    0.000000] free_area_init_node: node 0, pgdat c03c2c18, node_mem_map c3f7a000
[    0.000000]   Normal zone: 128 pages used for memmap
[    0.000000]   Normal zone: 0 pages reserved
[    0.000000]   Normal zone: 16384 pages, LIFO batch:3
[    0.001122] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 178956969942ns
[    0.007939] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
[    0.009354] pcpu-alloc: [0] 0 
[    0.016694] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 16256
[    0.017822] Kernel command line: console=ttyAMA0 mem=64M lpj=0 root=/dev/ram init=/bin/sh debug printk.time=1
[    0.034226] PID hash table entries: 256 (order: -2, 1024 bytes)
[    0.037649] Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
[    0.051346] Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
[    0.171196] Memory: 59872K/65536K available (2809K kernel code, 156K rwdata, 732K rodata, 115K init, 116K bss, 5664K reserved)
[    0.176299] Virtual kernel memory layout:
[    0.176299]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
[    0.176299]     fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)
[    0.176299]     vmalloc : 0xc4800000 - 0xff000000   ( 936 MB)
[    0.176299]     lowmem  : 0xc0000000 - 0xc4000000   (  64 MB)
[    0.176299]     modules : 0xbf000000 - 0xc0000000   (  16 MB)
[    0.176299]       .text : 0xc0008000 - 0xc037d840   (3543 kB)
[    0.176299]       .init : 0xc037e000 - 0xc039ac8c   ( 116 kB)
[    0.176299]       .data : 0xc039c000 - 0xc03c3340   ( 157 kB)
[    0.176299]        .bss : 0xc03c3340 - 0xc03e0694   ( 117 kB)
[    0.194996] NR_IRQS:224
[    0.311103] VIC @f1140000: id 0x00041190, vendor 0x41
[    0.334340] FPGA IRQ chip 0 "SIC" @ f1003000, 13 irqs, parent IRQ: 63
[    0.421699] Console: colour dummy device 80x30
[    0.426511] Calibrating delay loop... 15.18 BogoMIPS (lpj=75904)
[    1.453855] pid_max: default: 32768 minimum: 301
[    1.470559] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    1.471997] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    1.549273] CPU: Testing write buffer coherency: ok
[    1.567848] Setting up static identity map for 0x802ac900 - 0x802ac958
[    1.792641] VFP support v0.3: no double precision support
[    1.826380] NET: Registered protocol family 16
[    1.913054] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    2.222332] Serial: AMBA PL011 UART driver
[    2.232115] dev:f1: ttyAMA0 at MMIO 0x101f1000 (irq = 44, base_baud = 0) is a PL011 rev1
[    2.471302] console [ttyAMA0] enabled
[    2.506242] dev:f2: ttyAMA1 at MMIO 0x101f2000 (irq = 45, base_baud = 0) is a PL011 rev1
[    2.542220] dev:f3: ttyAMA2 at MMIO 0x101f3000 (irq = 46, base_baud = 0) is a PL011 rev1
[    2.580195] fpga:09: ttyAMA3 at MMIO 0x10009000 (irq = 70, base_baud = 0) is a PL011 rev1
[    3.207538] bio: create slab <bio-0> at 0
[    3.444611] Switched to clocksource timer3
[    4.365563] NET: Registered protocol family 2
[    4.453045] TCP established hash table entries: 1024 (order: 0, 4096 bytes)
[    4.465491] TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
[    4.474190] TCP: Hash tables configured (established 1024 bind 1024)
[    4.482792] TCP: reno registered
[    4.485464] UDP hash table entries: 256 (order: 0, 4096 bytes)
[    4.493590] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[    4.522323] NET: Registered protocol family 1
[    4.552290] RPC: Registered named UNIX socket transport module.
[    4.555861] RPC: Registered udp transport module.
[    4.559377] RPC: Registered tcp transport module.
[    4.562420] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    4.599499] Trying to unpack rootfs image as initramfs...
[   41.046708] Freeing initrd memory: 1084K (c0800000 - c090f000)
[   41.069328] NetWinder Floating Point Emulator V0.97 (double precision)
[   41.141637] futex hash table entries: 256 (order: -1, 3072 bytes)
[   41.206487] Installing knfsd (copyright (C) 1996 okir@monad.swb.de).
[   41.221841] jffs2: version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
[   41.248434] ROMFS MTD (C) 2007 Red Hat, Inc.
[   41.252843] msgmni has been set to 119
[   41.288910] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 254)
[   41.292702] io scheduler noop registered
[   41.294993] io scheduler deadline registered
[   41.299488] io scheduler cfq registered (default)
[   42.651584] brd: module loaded
[   42.698604] physmap platform flash device: 04000000 at 34000000
[   42.799677] physmap-flash physmap-flash.0: map_probe failed
[   42.938847] smc91x: not found (-19).
[   42.980983] mousedev: PS/2 mouse device common for all mice
[   43.023922] ledtrig-cpu: registered to indicate activity on CPUs
[   43.175215] TCP: cubic registered
[   43.177334] NET: Registered protocol family 17
UARTIFLS: 0x00000012
UARTFBRD: 0x00000000
UARTIBRD: 0x00000001
UARTLCR_H: 0x00000000
UARTFBRD: 0x00000000
UARTIBRD: 0x00000000
UARTLCR_H: 0x00000070
UARTFBRD: 0x00000004
UARTIBRD: 0x00000027
UARTLCR_H: 0x00000070
[   43.361101] Freeing unused kernel memory: 112K (c037e000 - c039a000)
hello, world!!
/bin/sh: can't access tty; job control turned off
UARTFBRD: 0x00000004
UARTIBRD: 0x00000027
UARTLCR_H: 0x00000070
/ # 

実行速度が速いと時間当たりの試行回数を増やせて、デバッグ効率が良くなるので、実行速度って結構、大事だったりします。

ハングしていたところ

以前、ハングしていた箇所はPL110 Color LCDドライバでした。今のところカーネルコンフィグを変え、PL110ドライバをコンパイル対象から外すことで、ハングを回避しています。

それだけで1週間掛かっちゃう?って思った方はスルドイです…。本当のところを言うと「ハングはイケてないぜ、直すぜー!」と思ってPL110のLinuxドライバのコードを見ていましたが、どう直したもんかわからず、諦めたのです…。

なぜかPL110のドライバはPL110とPL111(次世代コア)のレジスタアドレスが両方書いてあって、どちらのコア用の制御なのかがわかりませんでした。一応、どちらの仕様書も持っていますから、最悪、両方作って試せば良いのですけど、さすがに面倒すぎる…。

おそらく私が何か勘違いしているだけの可能性大なのと、LCDのエミュレーションはまだやるつもりがないので、この件は頭の隅で細々と考えることにします。

編集者:すずき(2024/03/05 02:28)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



link もっと前
2014年9月11日 >>> 2014年8月29日
link もっと後

管理用メニュー

link 記事を新規作成

<2014>
<<<09>>>
-123456
78910111213
14151617181920
21222324252627
282930----

最近のコメント5件

  • link 21年9月20日
    すずきさん (11/19 01:04)
    「It was my pleasure.」
  • link 21年9月20日
    whtさん (11/17 23:41)
    「This blog solves my ...」
  • link 24年10月1日
    すずきさん (10/06 03:41)
    「xrdpで十分動作しているので、Wayl...」
  • link 24年10月1日
    hdkさん (10/03 19:05)
    「GNOMEをお使いでしたら今はWayla...」
  • link 24年10月1日
    すずきさん (10/03 10:12)
    「私は逆にVNCサーバーに繋ぐ使い方をした...」

最近の記事3件

  • link 23年4月10日
    すずき (11/15 23:48)
    「[Linux - まとめリンク] 目次: Linux関係の深いまとめリンク。目次: RISC-V目次: ROCK64/ROCK...」
  • link 24年11月6日
    すずき (11/15 23:47)
    「[Ubuntu 24.04 LTS on ThinkPad X1 Carbon Gen 12] 目次: Linux会社ではTh...」
  • link 24年11月11日
    すずき (11/15 23:26)
    「[Pythonのテストフレームワーク] 目次: Python最近Pythonを触ることが増えたのでテストについて調べようと思い...」
link もっとみる

こんてんつ

open/close wiki
open/close Linux JM
open/close Java API

過去の日記

open/close 2002年
open/close 2003年
open/close 2004年
open/close 2005年
open/close 2006年
open/close 2007年
open/close 2008年
open/close 2009年
open/close 2010年
open/close 2011年
open/close 2012年
open/close 2013年
open/close 2014年
open/close 2015年
open/close 2016年
open/close 2017年
open/close 2018年
open/close 2019年
open/close 2020年
open/close 2021年
open/close 2022年
open/close 2023年
open/close 2024年
open/close 過去日記について

その他の情報

open/close アクセス統計
open/close サーバ一覧
open/close サイトの情報

合計:  counter total
本日:  counter today

link About www.katsuster.net
RDFファイル RSS 1.0

最終更新: 11/19 01:04