サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
買ってよかったもの
d.hatena.ne.jp/smeghead
clclcl, clojure, ubuntu, windowsWindowsでは、一般的なクリップボード履歴ツール*1ですが、Linux用のソフトウェアは、あまり聞いたことが無かったので、作ってみました。Windowsでは、CLCLというソフトウェアを便利に使わせてもらっているので、CLCLのクローンをClojureで作ってみることにしました。(JavaVMで動作するので、Windowsでも使えます) 名前は、CLCLのCLojureのCLoneなので、いろいろとCLが重なってることから、CLCLCLとしました。https://sourceforge.net/projects/clclcl/あと、sourceforge.net で公開することにしました。環境条件Java 1.6以上インストールダウンロードしたclclcl-0.0.1-alpha.zipを解凍すると、以下のファイルが展開さ
linuxThinkPad X200sのOSを、Ubuntu9.10からUbuntu10.4にのりかえました。こんごのために、いんすとーるしたものをきろくしてみます。いんすとーるさいしょのIMは、IBus-anthyかな。なぜか、かんじへんかんができない。でも、どうせuim-skkにするので、いまはそのまま。Chromeいまは、Firefoxからかいてる。このごじせい、まずは、ぶらうざから。いんすとーるしたら、まず、ぶっくまーくのどうきをおこなった。げんごさぽーとだいあろぐがでたので、それにしたがってげんごさぽーとをいんすとーるする。げんごをにほんごだけにして、apply System-Wideをくりっくした。SKKにほんごがまともにうてないので、SKKを $ sudo apt-get install uim uim-skk skksearch $ sudo update-alternat
lisp今年は、Common Lispとか、Luaとかやりたいことを進められるようにしたいです。ということで、Common Lispで書き初めしました。 ubuntuで、apt-get install cl-gd でcl-gdをインストールし、http://weitz.de/cl-gd/ を参考に書いてみました。フォントは、http://musashi.or.tv/aoyagireisho.htm を使わせてもらいました。 (asdf:oos 'asdf:load-op :cl-gd) (defpackage kakizome (:use common-lisp cl-gd)) (in-package :kakizome) (defparameter *signature-font-name* "/usr/share/fonts/truetype/v
linuxKaoriya版vimのパッチ欲しさに、Windows版のGvim7.2Kaoriya版をダウンロードしたところ、7z形式の自動解凍形式のexeファイルだった。これを解凍するために、7zipをインストールしてみた。 $ sudo apt-get install p7zip zshなので、rehashした後、補完でコマンド確認したら、7zrというファイルが使えるようになっていた。 $ 7zr --help を見たら、xオプションで解凍できるようなので、 $ 7zr x vim72-20090321-kaoriya-w32j.exe で無事解凍できました。
perl管理とか運用しているWebSiteが落ちていたりすると、良くないので、自動で生存確認するモジュールを作った。このDeadOrAlive.pmを使うスクリプトをcronで回して結果をメールするように書いておけば、もしサーバが落ちてたときにも早く対処ができるようになる。 こうゆうことは、大勢の人がやっていることだと思ったので作る前にgoogleで調べてみたけど、Webサイトの生存確認に特化したモジュールというの見付からなかった。WWW::Mechanizedを使えば簡単にできそうだったけど、機能がちょっとtoo muchに感じたのと、自由にモジュールインストールできないサーバもあるので、最小限のチェックに特化したモジュールを作成してみた。このモジュールを使うための最小のコードは以下です。http_test.pl #!/usr/bin/perl use strict; use warni
c++, starbug1すばらしい。書いたといっても結構前からあったのですが、いらん所を削ぎ落として軽量Webサーバとして仕立て上げました。軽量とは言えど、CGIを使って結構色々動きます。Big Sky :: C++で軽量Webサーバ書いた。mattnさんがC++で書いた軽量Webサーバを公開されていました。これは、Starbug1の動作確認を自由に行なう環境を簡易的に作成できるようになるかもしれないと思い、動かそうとしてみました。(丁度、Cのcgiにも公開後に対応されていたようですので)CのCGIで、PATH_INFOを含むパスが404扱いになるpath_infoを扱うCのCGIだった場合に、404と判定されてしまっているようです。res_isexeでpath_infoを含んだパスを実行ファイルかどうか判定しているようです。res_isexeでは、path_infoを考慮した実行ファイ
freeWikipediaのウィキの説明の代表的なウィキの種類のところのリンクを辿って一通り見てみましたが、バランスが良くて、特にデザインが良いのはDokuWikiでした。 Wikiの物色。DokuWikiをさくらインターネットにインストール - 週記くらい(BTS開発記)という経緯でDokuWikiを選択したのですが、導入したプラグインをメモしておきます。Indexmenu pluginhttp://www.dokuwiki.org/plugin:indexmenu綺麗なWindowsのエクスプローラ風のレイアウトでnamespaceとpageを階層表示してくれる。Add New Page Pluginhttp://www.dokuwiki.org/plugin:addnewpageWikiは、新規ページを作成する方法が、あんまりユーザフレンドリーではないので、新規ページ作成をサポートす
php, sakuraなかなか正しい運用が難しいと言われる社内Wikiに適したWikiを探しました。社内Wikiに使うWikiに求めるものは、軽くて、見た目が良くて、編集しやすいこと。あまりデザインに気にしない方ですが、社内Wikiとなれば話は別です。自分の作ったページを見てゲンナリするか、ニヤッとするかは社内Wikiの存続に関わる大問題です。そのためには、あまりデザインまで意識しなくても文書構造だけ気にしたら、綺麗なページを作れるというのが理想です。Wikipediaのウィキの説明の代表的なウィキの種類のところのリンクを辿って一通り見てみましたが、バランスが良くて、特にデザインが良いのはDokuWikiでした。代表的なウィキの種類ウィキ - WikipediaDokuWiki は各種標準規格に準拠した、 使いやすいウィキです。 主にあらゆるドキュメントの作成に適しています。DokuWik
sakura以前から、Subversionのクライアントをインストールする方法を調べてました。Tracを使う前提でSubversionサーバをインストールする説明エントリはよく見かけたけど、なんだかインストールする物が多くて、インストールに尻込みしていた。本家に限らずunix系で使えるクライアントが簡単にできるものがないか探していた(逃げていた?)けど、今日いい情報を見つけました。Subversionクライアントだけ使うなら、2つのファイルで済むみたい。さくらインターネットに(簡単に)Subversionを入れてみる - kayakaya日記(2009-03-23)本家もクライアントだけを使うなら簡単なんだ。ということで、上のサイトとの違いは、ダウンロードするファイルが今のバージョンに変わってるくらいだけど、ログを貼っておきます。 $ wget http://subversion.tigr
lua, C言語http://d.hatena.ne.jp/smeghead/20080816/sl で、SLを書いたときにLuaにsleep関数が存在していないらしいことに驚きました。Cと親和性が高いLuaなので、丁度いい練習になると思い、Luaから呼び出せるsleep関数を作ってみました。lsleepモジュールlsleepモジュールとして作成しました。ソースは下の一個だけ。とりあえず、Luaでrequireして、requireしたモジュールの関数を呼び出すことのための最小限だけを書いています。細かい話は、たいぶ省略していると思います。 sleep.c #include #include #include #include #include /* Luaからsleepとして参照する関数 */ static int lsleep(lua_State* L) { int secon
vim, cygwin, Windowsvimから:grepで検索したときに、cygwinのgrepを使って検索するように以下を設定した。 set grepprg=grep\ -nH これで、vimから正規表現含みでgrepできるようになった。 と思っていたら、findstr(windows付属のコマンド)でも正規表現できたみたいでした。 C:\> findstr /? (略) 正規表現クイック リファレンス: . ワイルドカード: 任意の文字 * 繰り返し: ゼロ個以上の直前の文字またはクラス ^ 行位置: 行頭 $ 行位置: 行末 [class] 文字クラス: セットの任意の 1 文字 [^class] 逆クラス: セット以外の任意の 1 文字 [x-y] 範囲: 指定した範囲の任意の文字 \x エスケープ: メタ文字 x のリテラル使用 \ 単語位置: 単語の終わり FINDSTR
C言語, gcc, cygwin, starbug1C 言語 マクロ講座 # ## 編に触発されて、もうすこし悪戯を。(例によってcygwin+gcc)htmlでは、" (ダブルクォート)が多用されているので、cgiプログラムでは、文字列として定義するときにエスケープする必要があり面倒です。hello は、"hello" として定義しなければなりません。このおかげで、Starbug1のソースは大変なことになってます。普通ならテンプレートエンジン書け!ってことになるんでしょうが、Starbug1の性質上余分なことはしたくないので、現在htmlをエスケープしながら直書きしてます。プリプロセッサで処理する方式で、エスケープせずにhtmlを記述できるようになると非常に嬉しいので、# を使ってヒアドキュメント風なものを試してみました。最初試したのは、↓のような感じ。普通に動きました。 #includ
free製造業をルーツに持つ身としては、製品は使う時に最適化されているべきだと考えています。しかし、最近のWebアプリ用のフレームワークは、開発時に最適化されているように見えます。これは言語にかかわらず、同じ傾向があるようです。 自分が製品を買う場合だったら、開発時に最適化されているためにその製品を使うときに代償を払わなければならないなんて、有り得ない話です。 勿論、この話は、結局どこでバランスを取るかだけの話です。デスマーチにならないようにはすべきと思いますが、開発時に最適化しすぎてしまうと、長い目で見たときには、ユーザも開発者も損をするんじゃないかな?
zshid:utadaq:20070321:1174481679特定のディレクトリ以下のファイルを全部読み込む **が再帰的に展開される機能は、zshだけじゃなかったかな?と思って、bashで試したら、bashでも機能した。 zshのワイルドカードでは、更に*(/) とか *(.) *(*) とかも指定可能です。 $ echo tmp/**/*(.) これで通常ファイルのみを展開するとか。 $ echo tmp/**/*(*) これで実行可能ファイルのみを展開するとか。覚えきれない程あるみたいです。使える指定には以下のようなのがあります * /:ディレクトリ * @:シムリンク * .:通常ファイル * ^:否定追補:以下の指定もできるらしいですが、私は使ったことがありません。 * *:ディレクトリでない実行権のあるファイル * r:読み込み権のあるファイル * w:書き込み権のあるファイ
emacsemacsを使ってた同僚が困ってたこと。ターミナル越しでemacsを使ってるときに、メニューバーが表示されてるけどアクセスできないという話。やり方があったのは覚えてるんですが、思い出せませんでした。emacsのチュートリアルには、F10とか書いてあるんですが、puttyだとF10が食われてしまうみたいです。(puttyのせいではないかも) Esc ` ↑でメニューにはアクセスできました。(alt + ` ではなく、Escの次に`です)
freehttp://d.hatena.ne.jp/smeghead/20071216/closure の続きというか今回はもうすこし真面目にあえて、コードレスで、自分の理解しているところのクロージャを説明してみるテストです。まず、誤解を恐れずに書いてしまうと、言語によってクロージャという機能が提供されている訳ではない。クロージャというのは、ある機能の副作用を用いたテクニックの名前である。クロージャと呼ばれているテクニックを使える言語は、以下の機能を提供しています。言い換えると、以下の機能の副作用によってクロージャというテクニックを使用できるようになります。 レキシカルスコープ(静的スコープ)関数がファーストクラスオブジェクト(第一級オブジェクト)であることレキシカルスコープオブジェクト(主に関数)が定義された時に、その場所から参照できる範囲を、オブジェクト(主に関数)の実行時にも参照でき
php以前のエントリ id:smeghead:20070525:phpexcel で、PHPからエクセルを読み込むのを諦めて、sylk形式のファイル読み込みにすることで逃げてたんですが、実は簡単でした。http://green0.rdap.jp/index.htmlid:f-ikesan さんに Spreadsheet_Excel_Reader というものを教えてもらって、Spreadsheet_Excel_Readerを試してみたら、何の問題なくExcelに記述された内容を取得できました。(今のところ)IDjobjackdoctoranapoliceEND_OF_DATAというエクセルがあった場合、 Array ( [0] => Array ( [ID] => jack [job] => doctor ) [1] => Array ( [ID] => ana [job] => polic
vimちょっとちたトラブルのときに、vimのオプションが、どのファイルで設定されているかを調べたいことがあります。これも時々しか必要にならないので必要なときに忘れてしまうからメモ。 :verb set shiftwidth? そーいえば、「:verb set enc? fenc?」とかは、匿名掲示板で、vimの文字化けトラブルの話になったときの KoRoNさんの口癖だったりしますね。
mysql, phposCommerceを動かしてみたときに、既に動作していたmysqlのcharsetがutf-8だった(osCommerceは、euc-jpが前提)ために、DBから取得してくる文字が表示されなかった。なんだか妙に嵌ってしまった。mysqlの文字コードの違いからくる問題について、今頃MySQL4.1系と格闘 にまとまっていました。 以下、やったこと。データベースを作る。 $ mysql -u root mysql> create database dbname; osCommerceの初期データsqlファイルを、EUC-JPからUTF-8に変換してデータベースへ登録する。 $ lv -Ou8 oscommerce.sql > mysql -u root dbname mysql_connectした直後に、mysql_query("SET NAMES ujis");を追加し
lisp自分の脳味噌のふがい無さに、unit test toolの導入を決心しました。common lisp用のunit test toolはいろいろあるようでした。CLUnit http://www.ancar.org/CLUnit/docs/CLUnit.htmlLisp Unit http://www.cs.northwestern.edu/academics/courses/325/readings/lisp-unit.htmlHEUTE http://www.rdrop.com/~jimka/lisp/heute/heute.htmlぱっと見、CLUnitは良くも悪くも簡単そうでした。テストを実行する関数を指定してテストを行なうので、使うのは簡単だと思います。しかし、JUnitに慣れてる身としては、テスト失敗したときに、期待値と実測値の差違を見れないと満足できません。その点、Li
vimvimの拡張子によるfiletypeの自動判定を追加する場合、今までは適当な場所にaoutcommandを定義していたけど、ちゃんと用意されている正しい方法を調べてみました。filetype on が実行されると、$VIMRUNTIME/filetype.vim が読み込まれる。(:h filetype)filetype.vimでは、ユーザのために以下を実行している。 runtime! ftdetect/*.vim そのため、filetypeを設定する正しいと思われる方法は、以下のようでした。filetypeの設定方法windowsの場合は、$HOME/vimfiles/ftdetect/ft.vim。unixの場合は、$HOME/.vim/ftdetect/ft.vim を用意する。拡張子が、vmならファイル名は何でもいい。ft.vimにfiletypeの決定のためのautocom
perl小さいWebアプリのデータストレージとしてはSQLiteも簡単な選択肢としてはいいですが、扱うデータを編集する必要があるので管理ツールを作成する必要があります。小さいアプリ程、管理ツールを作るのって面倒です。最近は「そこでrailsですよ」という流れになるんでしょうが、エクセルをデータベースとして扱うようにしてみます。データの編集方法は、エクセルで編集して一括アップロードのみにしてしまいますw エクセルを読みこむperlのライブラリはいくつかあるようでした。Spreadsheet::ParseExcelSpreadsheet::ReadSpreadsheet::BasicReadSpreadsheet::BasicReadNamedColどれがいいんでしょうか。比較してくれてるひといないかな? Spreadsheet::ParseExcelを試してみたら、予想より簡単だった。以下、
このページを最初にブックマークしてみませんか?
『d.hatena.ne.jp』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く