タグ

gaucheに関するsirocco634のブックマーク (26)

  • Redirect

    This page's content was permanently moved to: https://www.ic.unicamp.br/~meidanis/courses/problemas-lisp/L-99_Ninety-Nine_Lisp_Problems.html

    sirocco634
    sirocco634 2010/08/03
    Lisp関係の問題が99個あるよ
  • Karetta|[Gauche] SXPathを使ってRSSから要素を取り出す

    昨日の続き。 (rss->xsml "http://oss.timedia.co.jp/kahua-web/rss.xml") などとすると、 (*TOP* (*PI* xml version="1.0" encoding="euc-jp" ) (rss (@ (version 2.0)) (channel (title "Kahua-web") (link "http://oss.timedia.co.jp/show") (description "Kahua-web TEST Site") (lastBuildDate "Tue, 24 Oct 2006 08:09:40 +0900") (item (title "今日の一行") (link "http://oss.timedia.co.jp/show/column/%ba%a3%c6%fc%a4%ce%b0%ec%b9%d4") (

    sirocco634
    sirocco634 2010/06/05
    SXPathでRSSから要素を取り出すよ
  • Karetta|[Gauche] RSSを読み込んでSXMLに変換する

    他サイトのRSSを読み込んで加工し、自分のサイトに表示してみたい。 (use rfc.uri) (use rfc.http) (use sxml.ssax) (define (rss->sxml uri) (receive (schema user-info hostname port path query fragment) (uri-parse uri) (receive (status header body) (http-get hostname path) (call-with-input-string body (lambda (in) (let ((sxml-data (ssax:xml->sxml in '()))) (values status header sxml-data))))))) とりあえずこれでSXMLは得られたが、 さて必要な要素だけを取り出して加工するに

    sirocco634
    sirocco634 2010/06/05
    RSSを読み込み、SXMLに変換するよ
  • Gauche で OAuth - 主題のない日記

    Twitter が OAuth という認証手続きを採用したそうだ。 現在の Basic 認証は近く廃止予定だそうで、 Twitter 関連ソフトは OAuth 対応を余儀なくされている。 OAuth についてとりあげているブログ記事もちらほらと見掛ける。 流行に乗ろうというわけでもないが、 Gauche で OAuth 認証 (コンシューマ側) のコードを書いてみた。 oauth_token とかを取得するあたりまでだけだが、署名の部分だけ使いまわせばあとは特に面倒なこともないだろう。 コンシューマキーやコンシューマ秘密鍵は (当然だが) 各自で取得して欲しい。 (use rfc.http) (use rfc.sha) (use rfc.hmac) (use rfc.base64) (use www.cgi) (use math.mt-random) (use gauche.uvector

    Gauche で OAuth - 主題のない日記
    sirocco634
    sirocco634 2010/05/08
    GaucheでOAiuth認証を実施する方法
  • GaucheでOAuthを使ってTwitterに投稿する - 自称スーパーハッカーの適当なプログラミング雑記等

    自分がGaucheでOAuthを使うために試行錯誤していたら、 id:SaitoAtsushiさんがGaucheでOAuthを使うコードを書いてくれていたようなので(http://d.hatena.ne.jp/SaitoAtsushi/20100429/1272545442)、 そのコードを元に、Twitterでつぶやくコードを作ってみました。 ;APIのURLをapi.twitter.comにしてみた ;uri-encode-stringを日語に対応させてみた (use rfc.http) (use rfc.sha) (use rfc.hmac) (use rfc.base64) (use www.cgi) (use math.mt-random) (use gauche.uvector) (define consumer-key "Consumer Key") (define con

    GaucheでOAuthを使ってTwitterに投稿する - 自称スーパーハッカーの適当なプログラミング雑記等
    sirocco634
    sirocco634 2010/05/08
    GaucheでOAuthを使ってTwitterに投稿するよ
  • Scheme:使いたい人のための継続入門

    使いたい人のための継続入門継続渡し形式call/ccは普通の関数call-with系関数call-with-procedurecall-with-continuation-procedurecall-with-current-continuation評価順序と継続call/ccパズルお手元マルチスレッド部分継続reset/pcとcall/pc環境破壊と部分継続部分継続の使用法PRINT-AND-NEXT-REPL議論質問お手元マルチスレッドのサンプルプログラムについて 使いたい人のための継続入門 とりあえず殴り書き。 くどかったり冗長な文章になってたり、重複してたり、間違ってたり、 おおいなる勘違いをしてたり、恥をカいてたりするかもしれないけどご愛敬。 藁をもつかみたい気持ちで継続を使えるようになりたい人は読んでみてください。 ただし所詮は藁です。(w 継続渡し形式 例によって階乗fact

    Scheme:使いたい人のための継続入門
    sirocco634
    sirocco634 2010/04/26
    継続の入門記事だよ
  • sxpathのクエリに正規表現を書けるようにする - 再帰の反復blog

    「sxpathがとてもわかりにくい」の補足。 sxpathのクエリに正規表現を埋め込めるようにしてみた。 クエリの中に正規表現が出てきた場合、「子ノードの中から」テキスト要素でかつ正規表現にマッチするものを取り出す(子ノードから選ぶのは、他のクエリも(「//」を除いて)子ノードについて探索をおこなうから)。 たとえば ((sxpath-rx '(// a @ href #/\.html$/)) node) で、a要素のhref属性の値のうち、「.html」で終わるものだけを取り出す。a要素全体が必要なら ((sxpath-rx '(// (a (@ href #/\.html$/)))) node) と書く。 やっていることは、クエリに出てくる正規表現を関数に置き換えてからsxpathに渡しているだけ。 (use sxml.sxpath) (define (sxpath-rx query)

    sxpathのクエリに正規表現を書けるようにする - 再帰の反復blog
    sirocco634
    sirocco634 2010/04/20
    sxpathのクエリに正規表現をかけるようにする
  • GaucheからSQLiteを使う - うどん駆動開発

    やっぱRDBが使えると何かと便利なので,SQLiteを使ってみる. まずは,Gauche-dbd-sqlite3をインストール.インストール方法はググってね. インストールが終わったので,早速試す.まずはDBをオープンしてみる. (use dbi) (use util.relation) (defin conn (dbi-connect "dbi:sqlite3:/db/file/path.db"))dbiとutil.relationの2つのパッケージをuseして,dbi-connectでDBファイルを指定してやるだけ.DBファイルがなかったら自動的に作ってくれるみたい. 次はテーブルの作成. (let* ((query (dbi-prepare conn "create table hoge (foo integer primary key, bar varchar(256))")))

    GaucheからSQLiteを使う - うどん駆動開発
    sirocco634
    sirocco634 2010/04/19
    GaucheからSQLiteを使うよ
  • Gaucheでクローラを書くことと、そのためのライブラリ - 再帰の反復blog

    リンクをたどっていくつか巡回するだけの簡単なクローラを作ってみたら、戸惑うところが多かったので、まずはそのメモ。 戸惑ったところ http-get オプションで「:no-redirect #t」を指定しないと、自動でリダイレクトする → リダイレクトされると、持ってきたページのURIが想定していたURIと違う場合がある。→ 「http://」から始まらないパス(相対URI)を長いURI(絶対URI)に戻せない。 オプション「:sink out」を指定すると、HTTPの応答のメッセージボディは出力ポートoutに書き出されていく。「:sink out」を指定している状態でリダイレクトが発生すると、リダイレクト前にoutに書き出されたものとリダイレクト後の結果の両方が書き込まれた状態になる。flusherオプションで適切に処理させる? 文字コード関連 http-getは文字コードの指定オプション

    Gaucheでクローラを書くことと、そのためのライブラリ - 再帰の反復blog
    sirocco634
    sirocco634 2010/04/17
    Gaucheでクローラーを書くためのライブラリ
  • yosaka

    略歴 大学時代にC言語をはじめるが、よくわからず挫折。 その後、Rubyを知り簡単なスクリプトを書くようになる。 関数型言語を勉強したくなりHaskellをやったが、よくわからず。 ;Haskellも勉強し直し中 その後、たまたま屋でみょーに口と目が大きい魚の表紙のオライリーを見かける。そのはプログラミングGaucheというらしい。 自宅に帰って、wikiで調べると何か凄いらしいとわかり、後日購入。 その後は、ほとんどGaucheでコードを書くようになる。 コンピュータ関係は当に勉強することが一杯あるなー。 これだけでも一生やっていけそうだ。 perl perl入門してみる。 cpanが楽しみ。 C言語 プログラミング言語Cとプログラミング作法を読み終えた。 Cは良い言語。 そういえば、どっかで読んだけどCのインデントが8なのは、ネストを深くしてはいけないという教訓から来ていると書

    yosaka
    sirocco634
    sirocco634 2010/04/14
    gaucheでスクレイピングしたときの覚書
  • WiLiKiでFlickrマクロ

    sirocco634
    sirocco634 2010/04/13
    WiLiKiでFlickrを用いるマクロ
  • よくわかるcall/cc

    内容に直接関係しないのですが、「スタックのコールバック」。@aharisuさんが言っていたのはたぶん「コールスタックの破棄」的なことだったかと。コールスタックごと吹き飛ばす的な。違ったかな。 継続 - Wikipedia 「ある時点での状態」を変数に束縛して、後からそこへ戻るといったことも可能になる。Schemeの継続は関数の形をとっており、これは「その関数を呼ぶことにより、そこに渡された引数をcall/ccで囲まれている式全体の値として継続に“注入”できる」と定義されている。継続 プログラムの実行順序を制御する概念継続 既に終了したスタックフレームを黄泉の国か ら引きずり出してスタックにぶちこめるわけである。普通の人間が「おっ、ここはCall/CCを使えば カッコ良く実装できるね!」などと思いついたりすることはまずありえないScheme/継続 - Wikibooks 継続を用いれば大域脱

    sirocco634
    sirocco634 2010/04/08
    継続についての記事まとめ
  • Tumblr

    Tumblr is a place to express yourself, discover yourself, and bond over the stuff you love. It's where your interests connect you with your people.

    Tumblr
    sirocco634
    sirocco634 2010/04/07
    マクロの作り方を解説したページ。後できちんと読むぞ!
  • sxpathがとてもわかりにくい - 再帰の反復blog

    sxpathを使ってみようとしたら、とてもわかりにくかったのでメモ。 Gaucheのマニュアルを見ると SXPathは、XML Information set (Infoset)のインスタンスのS式フォームである SXMLのためのクエリ言語です。 とあるけど、ここではクエリ言語に限らずに、sxml構造から特定のノードを取り出すための機能全般を表すことにする。 補足: HTMLをSXMLに変換する。 sxmlツリーを探索する コンバータ sxpath関数に与えるクエリ 条件で子ノードを限定する コンバータの埋め込み 関連:2010-04-12「sxpathのクエリに正規表現を書けるようにする」 補足: HTMLをSXMLに変換する。 とりあえず何か具体的なXMLデータがあった方がよいので、HTMLファイルをSXMLに変換することにした。でもたいていのHTMLファイルはXMLの形式になっていな

    sxpathがとてもわかりにくい - 再帰の反復blog
    sirocco634
    sirocco634 2010/04/05
    Gaucheでsxpathを使用する際のメモだよ
  • Gauche で Unit Test - GaUnitを使う - 【はてな】ガットポンポコ

    参考 GaUnit run-test.el GaUnit::wiki run-test.el::wiki .emacs C-c C-t が scheme-trace-procedure コマンドにキーバインドされていて使えないので、scheme-mode-hookで変更。 (add-hook 'scheme-mode-hook '(lambda () (define-key scheme-mode-map "\C-c\C-t" 'run-test))) (setq load-path (cons "/usr/share/emacs/site-lisp/run-test/" load-path)) (load "run-test-setting") run-test.scm を設置 testしたいファイルのあるディレクトリに test という新規ディレクトリを作成し、中にrun-test.s

    Gauche で Unit Test - GaUnitを使う - 【はてな】ガットポンポコ
    sirocco634
    sirocco634 2010/04/03
    Gaucheでユニットテストを実施する
  • 紫ログ:Emacs上でGaucheのinfoを引く - livedoor Blog(ブログ)

    shiroさんに教わったのでメモっておきます ;;; from shiro (defun gauche-info-index (topic) (interactive (list (read-string (concat "Gauche help topic : ") (current-word)))) (switch-to-buffer-other-window (get-buffer-create "*info*")) (info "/usr/share/info/gauche-refe.info.gz") ;;(info "/usr/local/share/info/gauche-refe.info.gz") ;;うちは/usr/local/ (Info-index topic)) ;;(define-key global-map "\C-xH" 'gauche-info-index

    sirocco634
    sirocco634 2010/02/21
    GaucheのinfoをEmacsから引くよ!
  • scheme-complete.el を auto-complete.el で使う - 【はてな】ガットポンポコ

    Schemeのシンボルを補完入力してくれる、scheme-complete.elを使い始めました。 ソースコードの記述の違いを見て処理系を自動的に判断してくれるみたいです。 scheme-complete.el の用意してくれる補完バッファが、なぜかうまく動作しなかったので、auto-complete.el で使えるようにしました。 scheme-complete.elをインストールsynthcode - scheme-completeから最新のscheme-complete.elをダウンロードします。 解凍して、ロードパスの通ったところに置きます。 gunzip -c scheme-complete-0.8.9.el.gz > scheme-complete.el mv scheme-complete.el /usr/share/emacs/site-lisp/ 設定(scheme-co

    scheme-complete.el を auto-complete.el で使う - 【はてな】ガットポンポコ
    sirocco634
    sirocco634 2010/02/19
    gaucheの補完をauto-completeで実施するよ
  • TwitterのbotをGaucheで書き直してみた - 自称スーパーハッカーの適当なプログラミング雑記等

    「ニコニコ動画にVOCALOIDオリジナル曲の動画が投稿されたのをお知らせする」という、Twitterのbotを去年の12月ごろに作ったので、それをGaucheで書き直してみました。 「こんなbot公開していいのか」と怒られそうなほど欠陥だらけですが・・・ 実は、自分でニコニコ動画のRSSを読んでいるわけではなく、VOCALOIDオリジナル曲の新着動画を表示してくれるサイトの「ぼかにゅー」というところのAtomフィードを読んでいます。 (ぼかにゅーの開発者の方には許可取ってるつもりですが・・・) 一応、ぼかにゅーのURLを書いておきます。 ぼかにゅー: http://vocanew.naniyueni.org/ ぼかにゅー開発ブログ: http://d.hatena.ne.jp/vocanew/ 一応、Twitter ID「@vnewsong」で動いています。 まず、書き直す前の、Ruby

    TwitterのbotをGaucheで書き直してみた - 自称スーパーハッカーの適当なプログラミング雑記等
    sirocco634
    sirocco634 2010/02/18
    Gaucheでtwitter botを作成する
  • GaucheでTwitterに投稿する - 自称スーパーハッカーの適当なプログラミング雑記等

    絶対にすでに誰かやっていると思いますが、Gaucheを使ってTwitterに投稿するプログラムを書いてみました。 PerlRubyPythonのような、スクリプト的な用途はSchemeが便利です。 ; Twitterに投稿する (use rfc.http) (use rfc.base64) (use rfc.uri) (define (twitter-update status username password) (http-post "twitter.com" (string-append "/statuses/update.json?status=" (uri-encode-string status)) "" :Authorization (string-append "Basic " (base64-encode-string (string-append username

    GaucheでTwitterに投稿する - 自称スーパーハッカーの適当なプログラミング雑記等
    sirocco634
    sirocco634 2010/02/08
    Gaucheでtwitterに投稿するスクリプト
  • GaucheでRDBプログラミング

    GaucheのRDBインターフェイス GaucheもRDBインターフェイスライブラリを持っています。このインターフェイスはPerlJavaRDBインターフェイス同様に、RDBソフトに依存しないAPIを提供するDBI(Database Independent Interface)と、DBIと各RDB用ライブラリをつなぐDBD(Database Driver)の2つのレイヤに分かれています。 従って、GaucheでRDBを扱うプログラミングを行うには、各RDBソフトのインストールのほかに、各RDBソフトに対応したDBDをインストールする必要があります。 現在、Gaucheから使えるDBDの一覧は、Gauche PackagesまたはGaucheのWebフレームワーク「Kahua」のDBIページにあります。 SQLite3のインストール この連載では、RDBソフトとして扱いが簡単なSQLit

    GaucheでRDBプログラミング
    sirocco634
    sirocco634 2010/01/06
    GaucheでDBを使う方法