2015年3月24日火曜日

Lumia Denimにアップデートした

先月の末頃、手持ちのLumia 920にようやくLumia Denimの更新が降ってきました。
元々Denimは去年の9月頃から新しめのLumia端末から順に更新が始まっていたので、半年経ってようやく順番が回ってきたことに。いや長かった。

今回はDenim更新で気づいた変更点をメモがてら書いておきます。

ちなみにLumiaシリーズの端末はWindows10への更新も予定に入っているそうで、こちらも楽しみです。

ライブタイルのフォルダ分け

見た目に関する変更点として一番大きいのがこれ。動画アプリやゲーム等のアイコンを以下のように一つのタイルにまとめて整理できます。Webページのピン止めをまとめればブックマークとしても利用できそう。

Lumia Denimのスタート画面

ブラウザ

Lumia Cyanの頃からIEのバージョンは11だったので今回はマイナーアップデート。見た目と操作感はそのままですが、UserAgentが変わったおかげでAndroidやiPhone同様にスマホサイトが閲覧できるようになりました。

  • Before (Lumia Cyan)
    Mozilla/5.0 (Windows Phone 8.1; ARM; Trident/7.0; Touch; rv:11.0; IEMobile/11.0; NOKIA; Lumia 920) like Gecko
  • After (Lumia Denim)
    Mozilla/5.0 (Mobile; Windows Phone 8.1; Android 4.0; ARM; Trident/7.0; Touch; rv:11.0; IEMobile/11.0; NOKIA; Lumia 920) like iPhone OS 7_0_3 Mac OS X AppleWebKit/537 (KHTML, like Gecko) Mobile Safari/537

ブラウザはIEなのにAndroid 4.0iPhoneMobile Safariの文字列が混ざっていていい感じにカオスになってます。個人的には他のスマホと同様にWebページが見れるようになったことは大変ありがたいです。

今回の更新は利便性を優先した形でしょうか。利用者から見ればUAの変更なんて気にすることのない箇所ですし、開発者側もブラウザ判定にUA文字列を使うテクニック自体が古くなったこともあり、特に拘る必要がなくなったのかなと。まあ将来的にはBeforeの頃くらいのシンプルなUAに戻っていると思います。というか戻っていてほしい。

その他

  • カメラアプリが性能向上したらしいがよく分かってない
  • 日本地域ではCortanaは相変わらず利用不可能

2015年2月28日土曜日

init.el読書会

http://emacs-jp.github.io/reading-init.el/

たまに参加しています。確か2chスレ内でイベントやるよーという書き込みがあるのを見かけたのが読書会の存在を知るきっかけだったはず。

読書会では、毎週土曜夜にLingrのEmacs部屋に集まって他の人が公開している.emacsのコードを見てあれやこれやとコメントする感じです。思った以上にorgモードやhelmユーザが多い印象ですね。私が面倒くさがりで利用を避けているだけなのかも。

この読書会に習って、自分が公開してる.emacsも見なおしてみることにしました。実に4年半ぶりの更新。
https://github.com/kosh04/emacs-lisp

以前の.emacsはひとつのファイルに詰め込んであって非常に見づらかったため、カテゴリごとに分割してみました。Emacs24のパッケージ機能とuse-packageのおかげで大分見やすくなったかと思います。

次回のinit.el読書会は02/28(土)午後10時からです。つまり今夜ですね。

2014年10月7日火曜日

Windows Phoneで記事をPocketに保存する方法あれこれ

Windows Phone (以下WP) の Pocket 用アプリ Owl Reader の中に、記事を保存するための方法がいくつか載っていたので掻い摘んで紹介します。

元の記述はアプリ内の "saving tips" を参照してください。

  • アプリ経由で保存する
  • ブラウザ経由で保存する
  • メール経由で保存する

アプリ経由で保存する

Owl Reader の共有用プラグインをインストールします。

インストールすることで、アプリの共有メニューから Pocket に直接記事を保存することができるようになります。

ブラウザ経由で保存する

公式サイトで提供されているブックマークレットを利用します。

手順は以下のとおり。事前に http://getpocket.com/a にログインしておいて下さい。そうしないとブックマークボタンが表示されません。

  1. http://getpocket.com/add にアクセスする
  2. ブックマークレットの項目を探す
  3. ブックマークボタンを長押しして「リンクをコピー」する
  1. ブラウザのメニューを開いて「お気に入りに追加」を選択する
  2. 名前を「!Pocketに保存」にして、Webアドレスに先ほどコピーしたリンクを貼り付ける
    (行頭の記号「!」はブックマーク一覧の先頭に配置させるための小技)
  3. ✔ボタンを押してブックマークを保存する
  4. 適当なページを開いてメニューのお気に入りから「!Pocketに保存」を選択すると記事が保存される

WP7 を所持している場合は上記のブックマークレットが動作しません。代わりに Owl Reader が提供するカスタムブックマークレットを利用します。 ブックマークレットの生成はアプリ内の "saving tips" を、ブックマークの追加は上記のステップ 4-7 を参照してください。

メール経由で保存する

add@getpocket.com 宛に記事のリンクを書いてメールを送ると、その記事を Pocket に保存することができます。 送信用メールアドレスは Pocket アカウントの設定画面で追加できます。

詳細は公式サイトのヘルプを参照してください。

2014年5月15日木曜日

犯罪者書館アレクサンドリアを読んだ



先週末に本屋で見つけて購入、土日で一気に読み終えました。
ほんわさんという絵師さんのイラストに惹かれての、いわゆるジャケ買いです。

本のジャンルはタイトルどおりのミステリーもの。加えて作者が書店員さんらしく、シャーロック・ホームズやフィリップ・マーロウといった名探偵の名前と彼らが登場する小説のタイトルがちらほらと出てきます。ホームズ作品くらいなら読んだことがあったかな。踊る人形とか、内容うろ覚えですけど。

話のテンポは小気味良く、登場人物も多すぎず。舞台は表紙で描かれているアレクサンドリアという書店での会話がほとんどで、読み手としては覚えることが少なくて助かりました。
登場人物もそれぞれ良い意味でクセが強くて親しみやすかったです。

個人的には、犯行の動機(なぜ殺したのか、なぜそれを行ったのか)が主人公である神田六彦の視点を通して推測で語られるため、投げっぱなし…というか消化不良な感じでした。ただまあ、あのシーンで犯人がべらべら語るのも逆に不自然ですし、犯人自身も「(ネタバレ反転)人を殺すのに、本当に動機って必要かな?」と言っているので、この辺は読者の想像にお任せしますなスタイルなんだと思います。

とまあ推理パートには素人視点でツッコミ入れながら読んでましたけど、面白かったです。

それはさておき、結局のところアーミンはどっちなんですかね?

2014年1月13日月曜日

WandboxをEmacsから操作するライブラリを作った

遅めの年始のご挨拶。あけましておめでとうございます。

オンラインコンパイラ Wandbox を Emacs から操作するライブラリを作ってみました。最初のコードを書いたのは11月なのですが、修正するうちにだいぶ使い勝手が良くなってきたので、gist から GitHub に移動しました。
インストールすることで、各種コンパイラをインストールせずに、Emacs 上でコード片を実行することができるようになります。当然ですがネット環境が必要です。

インタラクティブな操作 (M-x) もできますが、*scratch* バッファなどで wandbox-compile 関数を使った方が細かいコンパイル指定ができるのでオススメです。使い方は付属の README を参照してください。

おまけ機能として、引数を Common Lisp (CLISP) の S 式として実行するためのマクロ wandbox-eval-with なんてものも用意しています。wandbox-eval-region と似たような機能ですが、最後の S 式の結果も出力されるようになっています。:stdin などの追加オプションも指定可能です。ただし Elisp にない構文など(文字リテラル #\a とか)は引数に使えません(出力はOK)。

;;; *scratch*
(wandbox-eval-with (:stdin "HELLO\nWorld")
  (do ((c #1=(read-char nil nil :eof) #1#))
      ((eq c :eof))
    (format t "~s " c))
  )

;;; *Wandbox Output*
<<< program_message >>>
#\H #\E #\L #\L #\O #\Newline #\W #\o #\r #\l #\d
NIL

<<< status >>>
0

2013年11月10日日曜日

Nokia Lumia 920 を購入

Lumia 920
去年初めに購入したタブレット (A01SH) のバッテリーがやらてしまったらしく、アダプタをつなぎっ放しでないと10分ともたない半据え置き状態になってしまいました。他にも処理速度が遅いとか色々あって、そろそろ替え時かなということで前から気になっていた Windows Phone 端末である Nokia Lumia 920 を買ってみました。比較的値段の安かった1shopmobileから取り寄せして、休日を含めて4~5日かけて届きました。

上の写真を見てわかるとおり、本体カラー黄色はけっこう目立ちます。今まで重量のあるタブレットを持ち歩いていたせいか、重さ185gはあまり気にならないです。あと、カメラレンズが優秀で暗所での撮影や接写がキレイに撮れます。

「設定>エキストラ+情報」を覗くと製造元の名前が「RM-821_eu_italy_310」とあるので、どうやらイタリア版らしいです。とはいえ設定すれば日本語表示もキーボード入力もそれなりに使えますし、日常用途には問題ないと思います。

Lumia 920はLTE対応のsimフリー端末ということで、試しにIIJmioのデータ通信専用simも追加で購入。 APN設定をしてしばらく待つとちゃんと電波を拾ってくれるようになりました。場所によっては4G表示も現れるんですが、Speedtestの結果が3Gの時と変わらないのでLTEが利用できているかは微妙な感じでした。また、セルスタンバイ問題に引っかかったらしく、自宅付近では通信可能なのにアンテナピクトが圏外表示になる状態に… (参考: てくろぐ: アンテナピクト問題・セルスタンバイ問題とは何か)。それ以前に技適で引っかかるということならばsimをポケットWiFiに差し替えて利用する形になるかも。

Windows Phoneのデザインは個人的にかなり好みで使いやすいと思うんですけど、日本のキャリアでほとんど展開されていないおかげでアプリの数が圧倒的に少なくて、色々かゆい所に手が届かないのがどうも痛いです。標準地図アプリはアレだし、Flashも使えないしね。でもまあ、それらのマイナス面を補えるくらい弄っていて面白い端末だと思います。

2013年7月12日金曜日

newLISP部屋@Lingr

なんとなく作ってみました。

newlisp に関して質問があれば、どなたでも気軽にどうぞ。

はたしてメンバーが増えるのだろうか

2013年4月9日火曜日

newLISP for Windows x64

年明けに言っていた、Win64向けに対応させたnewLISPのソースコードとバイナリを試験的に公開してみます。ライセンスは配布元と同じくGPLv3です。

newLISP for Windows x64

また、最近になって本家の v.10.4.7 からWin64をサポートする動きが見られるため、それが叶ってしまえばこのページはお役御免ということになります(参考)。

2013年2月4日月曜日

英数字を180度回転した文字を表示

twitter→ɹəʇʇɪʍʇのように英数字を180度回転して表示する方法 という記事を見かけたのでxyzzyに移植してみました。ネタ被ってないよね?

やってることはROT13などと同じで、連想リストを利用した単純な文字の相互変換です。 ただし、xyzzyではバッファに出力すると化けてしまう文字が幾つかあるので、その辺は適当に作ってます。

おまけとして、Emacsから移植したzone.lと組み合わせたコードも載せてあります。下の実行例を見てみると、なぜか特定の文字が変換されなかったりするようですが…。まあ書き捨てのコードですので勘弁してください。

newLISP版もあります。こっちはUnicode文字列を直接扱えるので若干コードがさっぱりしてます。

使い方

  • M-x: flippy - ミニバッファに入力した文字がステータスラインに反転して表示される
  • M-x: flippy-region - リージョンに対してFlippyを実行する

2013年1月19日土曜日

あけまして

おめでとうございます。一月がもう三週間経ったとか信じたくないわー…。

去年のことを振り返ってみると、ほとんど外に出て活動しなかったなあと反省する次第ですね。

とりあえず、newLISPのソースコードをおもちゃにして遊んでいるのに区切りをつけて、どこかに纏めて公開したい。というのが当面の目標です。

2012年5月29日火曜日

IPv6セミナー + Hackathon in 新潟にちょこっと参加

してきました。5月26日土曜日。

IPv6セミナー + Hackathon in 新潟(第26回) - 長岡 開発者 勉強会(NDS)

内容としては、午前はIPv6についてのセミナー、午後はIPv4/6のネットワーク環境を利用したハッカソン。 夕方からハッカソンの発表会を兼ねた懇親会というもの。

午後のハッカソンではネットワーク環境として IPv4/IPv6 のデュアルスタックな WiFi ネットワークや仮想専用サーバが提供されていて、参加者各々が自由にプログラミングしてました。(パソコン持ってきてたら使いたかった…)

この勉強会の存在を知ったのが前日の金曜だったので、私は「とりあえず午前のセミナーだけでも参加してみようかな」という感じで行ってきました。所持品はタブレット(GALAPAGOS, Android 3.2)のみ。

午前のセミナーを見たらさっさと帰ってもよかったんですが、結局ハッカソンの様子を見ようという理由をつけて午後の部にも居残りしてました。とりあえず手持ちのタブレットのブラウザでIPv6が利用できるかどうかを試してみることに。

結果は以下:
  • IPv6オンリー WiFi には接続はできるが、ブラウザの表示は出来ない
  • デュアルスタック WiFi には接続できた。
    リモート診断君v6 で確認してみると、どうやら IPv6 での接続が優先されるらしい。
    もちろん IPv4 経由での通信も可能。ホスト名が ***.ginzado.ne.jp だったことから銀座堂さん提供のネットワークだということが判明。
  • 定番(?)であろう踊るひろゆき踊るカメさんを確認。

ついでに IPv6 を利用できる Androidアプリも確認してみる:
アプリ名 IPv6 対応 備考
IPv6 and More IPv6 対応のネットワークツール
SSHDroid × SSHサーバ。IPv6に関する設定は見つからなかった。
ConnectBot SSHクライアント。端末との相性が悪いのか、IPv4 すら利用できなかった。
この辺でタブレットのバッテリーが切れてしまったので会場からログアウト。おとなしく家に帰りました。

ふっと現れてふっと消える幽霊みたいな参加者でしたが、こういう勉強会(+ハッカソン)に参加する機会があまり無かったので、雰囲気を掴むには良い機会だったのかなと思います。参加された皆さんお疲れ様でした。


追伸:昼に食べた長岡のカレーうまかったです。

2012年4月18日水曜日

xyzzyで(」・ω・)」うー!(/・ω・)/にゃー!

kaoriyaさんところのVimに這いよる混沌が楽しそうだったのでパクって参考にしてxyzzyで動作するようにしてみました。
実行させると、下の図のようにカーソルの移動ごとにモードラインが変化します。
(」・ω・)」うー!
(/・ω・)/にゃー!
Let's\(・ω・)/にゃー!

パッケージ化などしていないので、遊び終わったら一番下のS式を評価して片付けてください。


てか、半年ぶりの更新がこれだよ!



追記 (2012/04/20)

youzさんがtimer版を作ってくれました。BPM=145くらいに設定するとイイ感じです。

2011年10月8日土曜日

Win64でnewLISPをコンパイルする

newLISPのソースコードを改造して、Win64環境でコンパイルできるようしてみました。64ビットプログラミングの練習とnewlispの内部動作を調べることを目的とした個人的なビルドなので、とりあえず動く程度の出来なのは勘弁してください。基にしたnewLISPのバージョンはv.10.3.3です。
作成したバイナリはこのエントリの最下に置いておきます。GPLライセンスに則るならソースか差分パッチも公開すべきなんだろうけどどうしよう…。

パッケージに同梱しているマニュアル(doc/INSTALL)によるとnewLISPがコンパイル可能なメモリモデルはILP32とLP64のみらしく、Win64のメモリモデルであるLLP64はサポートされていない様子。 newLISPではlong型を基本として、整数もポインタも同じビット長として扱っているため、その辺も考慮してソースを改造する必要があります。

NOTE, that newLISP can only be compiled for the IPL32 and LP64 memory models.

主要なメモリモデルの違いは以下の通り:

ILP32 intとlongとポインタ型が32ビットのモデル。一般的な32ビット環境。
LP64 longとポインタ型が64ビットのモデル。64ビットLinuxではこの環境になる。
LLP64 intとlong型が32ビットで、long longとポインタ型が64ビットのモデル。別名IL32P64。

公式サイトにてWin32バイナリが配布されているのでWin64バイナリ自体にメリットは特にないんですが、将来的にWin64バイナリのコンパイルがサポートされたら幸せになれるかもしれません(主に私が)。

コンパイル環境

  • Windows7 amd64
  • MinGW-w64 - TDM-GCCをインストールした
  • CygwinまたはMSYS - tarballの解凍など、シェル環境に必要

download (Size:272kB)

2011年7月29日金曜日

newLISP v.10.3.2リリースノート翻訳

安定版となるnewLISP v.10.3.2がリリースされていたのでリリースノートをざっくりと翻訳。
newLISPダウンロードページ

とりあえず、newlisp本体とjson.lspが文字列内部のunicodeエスケープ(\unnnn)を解釈してくれるようになったこと、ココには載ってないけどget-urlのカスタムヘッダーのバグが修正されたことが嬉しい。

原文はこちら。配布ファイルのdoc/CHANGESも参照のこと。

newLISP® v.10.3.2 リリースノート

Addtions (追加機能)

  • 文字列が処理可能なクオート文字にUnicodeエンコードを追加。
    例として"\u03b1\u03b2\u03b3"はギリシャ文字"αβγ"に変換される。 この機能はUTF8版newLISPで利用できる。

Other improvements (その他改良点)

  • 自己参照リストの変更におけるエラーメッセージを改良
  • Implicit indexingのエラーメッセージを改善
  • MS Windowsのパス名に利用されるMBCS(Multi Byte Character Set)を理解するように
  • filter, index, clean, exists, for-all関数のスピードアップ
  • series関数の第2引数に関数が与えられた際の処理速度向上
  • find-all関数の第3引数が与えられた際の処理速度向上
  • map関数のメモリ管理と処理速度を改善
  • json.lspがバックスラッシュを含む文字列を処理可能になった

Bug fixes (バグフィックス)

  • filter, index, clean, exists, for-all関数における空リストの扱いを修正
  • inc,dec,++,--関数が引数チェックをしていなかったのを修正
  • dotree関数にブール引数を渡すとクラッシュする問題を修正
  • multi-lineモードにおけるバッファオーバーフローを修正
  • timer関数を再帰的に利用した際のバグを修正
  • read-line関数のEOF指示子をクリアしていなかったことによるバグを修正
  • xfer-event関数が渡す引数を転送した総バイト数から現在転送中のバイト数に変更

Compatibility (前バージョンとの互換性)

このリリースを実行するためのMac OS Xの最小バージョンはLeopard 10.5です。 このリリースはMac OS X Tiger 10.4では動作しないでしょうが、Mac OS X用の デフォルトMakefile(makefile_darwin_utf8)ではまだコンパイルが可能です。

v.10.3.0からv.10.3.2のバージョン遷移において、ほとんどのスクリプトは修正なしに動作する。
xfer-event関数の仕様が変更されたので、その点のみ注意すること。

2011年6月14日火曜日

[newLISP]cygwinでのコンパイルを通す

cygwinからnewlispをコンパイルしようとすると
nl-sock.c:2010: error: ‘ICMP6_FILTER’ undeclared (first use in this function)
と言われてコンパイルエラーが起こってしまうので、それを解決します。
  1. $CYGWIN/usr/include/netinet/icmp6.h があるかどうか確認する。あれば2.を飛ばして3.へ。
  2. GNU謹製のicmp6.hを拾ってきて1.のパスに追加する。(→icmp6.h GNU - Google 検索
    ※cygwinのインストーラに上記のヘッダがあれば尚良しですが、見つけられなかったので…
  3. 以下のパッチを参考に nl-sock.c を書き換える。
    --- nl-sock.c.orig Tue Jun 14 12:52:46 2011
    +++ nl-sock.c Tue Jun 14 12:51:30 2011
    @@ -60,6 +60,7 @@
     #endif /* end UNIX */
     
     #ifdef CYGWIN
    +#include <netinet/icmp6.h>
     #define ICMP_ECHO 8
     
     struct icmp
    
  4. コンパイルする

2011年6月10日金曜日

端末の表示崩れをなんとかする

ターミナルの表示が崩れたときの対処法 - Clouder::Bloggerより。少し改良

端末上でバイナリファイルの中身をうっかり出力させてしまってウィンドウの表示がえらいことになることが時々あったので、この解決方法はありがたいです。ただしBSD由来のshでは、echoコマンドがエスケープシーケンスを理解するためのオプション(-e)を理解してくれないので注意(ksh,zshなど他のシェルまでは分かりませんが)。

参考リンク

2011年6月8日水曜日

ユニークなURL

URLの短さとサービスのシンプルさが面白いなーと感心したサイト。若干ネタっぽいですが。
ifconfig.me
ifconfigコマンドのようなネットワーク情報(というよりブラウザ情報)を返してくれるサービス。
端末上で curl ifconfig.me と打ち込めば自分のIPアドレスが返ってくるなど、ブラウザだけでなく端末から利用する際にも重宝する。JSON, XML形式にも対応している。
jsonip.com
名前の通り、自分のIPアドレスをJSON形式で返すだけのサービス。
URLにパス名を指定するとコールバック形式のJSONが返ってくる。
http://jsonip.com/getip => getip({"ip":"72.14.203.191"});
httpstat.us
HTTPステータスコードを返すだけのサービス。
例えば httpstat.us/200 と打ちこめば 200 OK が返ってくる。

2011年5月28日土曜日

めんまフォント

アニメ「あの日見た花の名前を僕達はまだ知らない。」の公式ページで配布されている「めんまフォント」が気になったのでインストールしてみた。…が英数字や記号の一部が表示されないおかげでかゆうま(初代バイオハザード:飼育員の日記)に見えてしまう件。
ちなみにxyzzyでは利用できないみたい。同じTrueTypeフォントのARISAKAフォントやうずらフォントは使えるのになぜ?

いろいろ

マシンの新調

デスクトップPC+Windows7買いました。
今までのノートPCが5年以上前のモノのため、さすがにスペック的に見劣りしてたので。 新マシンはHPの100円アップグレードキャンペーンから選択。 OSを64ビット版Windows7にしたり、プロセッサをAMDのPhenom II X6にしたりと色々冒険してみましたが、まあ何とかなるかと思います。メモリ2Gはおそらく買い替えになるんだろうな…。

レンタルサーバー

実験してみたいことがあったのでアイネットディー様のレンタルサーバーの激安プランを借りてみました。URLはlambda.que.jpです。 レンタルサーバーを選ぶにあたって気に入ったのは、OSが今まで触ったことのなかったFreeBSDだったことと、格安プランでもSSHが利用できる点ですね。あまり迷惑がかかることはできませんが、自前でプログラムをコンパイルもできるので実験環境にはもってこいです。
ブログの方はまだこちら(Blogger)を利用することになります。

2011年5月14日土曜日

今日の無題

昨日Bloggerにログインしようとしたらこんなメッセージが表れたので、メンテナンス中かと思ったらどうやら結構深刻な障害だったらしい。現在は復旧している様子。