技術欲男

いろんなことに興味のある普通の学生です。

2012-05-11

HTTPS接続のためのstunnelインストール

Gaucheのhttp-getでHTTPS接続するためにはstunnelをインストールしないといけないようなのでインストールした。

Currently Gauche relies on an external program `stunnel' (either
version 3 or 4) to handle secure connections. So when you request a
secure connection, Gauche looks for `stunnel' program in `PATH'. On
some systems a newer version of it is called `stunnel4', and Gauche
looks for it, too. If you want to add certificates, for example, you
have to adjust `stunnel' settings.

A plan is to provide the means of secure connections as long as
`stunnel', including native SSL support, and the higher-level library
automatically choose whatever is available and best.

Use the following procedure to check if you can use secure
connections:

-- Function: http-secure-connection-available?
Returns `#t' if running Gauche can use secure connection, `#f'
otherwise.

brewでインストールする場合

% brew install stunnel

Finkでインストールする場合

% fink install stunnel

gosh> (use rfc.http)
#
gosh> (http-secure-connection-available?)
#t

(http-secure-connection-available?)で聞いて#tを返せばhttps接続が可能になります。

2012-05-10

Gauche-0.9.3がリリースされましたね

いろいろと変更・改善があったようでぱっと見「お!?」と思った変更だけ引用します。

$マクロ

関数呼び出しをチェインする$マクロを正式にサポートしました。 モジュールgauche.experimental.appで長らく実験されてたものです。 このマクロを使うと(f a b (g c d (h i j)))を ($ f a b $ g c d $ h i j)と書くことができます。文字数的には 後者の方が長いのですが、特に関数のネストが深くなった時に、 後者の方がインデントしやすいことが多いです。 マニュアルに詳しい説明があります。

add-load-path

add-load-pathマクロに、「現在ロード中のファイルからの相対パス」 でロードパスを追加できるオプションがつきました。 この機能は、ライブラリを伴ったスクリプトを配布するのに便利です。例えば スクリプトファイル内で(add-load-path "." :relative) とすれば、それ以降、そのスクリプトのあるディレクトリからライブラリが 探されます。ユーザはディレクトリごと好きな場所にコピーして、 どこからでも起動することができます。

open-input-file

open-input-fileの:encoding引数に #tを渡すことで、コーディング認識ポートを使ってファイルを 読ませることができるようになりました。コーディング認識ポートは ファイルの最初の方にあるcoding: ...という文字コード指定を 認識します。ソースファイルを処理する場合などに便利です。

srfi-1のコア化

null-list?, cons*, last, member (extended one), take, drop, take-right, drop-right, take!, drop-right!, delete, delete!, delete-duplicates, delete-duplicates!, assoc (extended one), alist-copy, alist-delete, alist-delete!, any, every, filter, filter!, remove, remove!, filter-map, fold, fold-right, find, find-tail, split-at, split-at!, iota.

詳しくはGauche-0.9.3

2012-05-03

#残パン会に行ってきた

#残パン会

レベル高すぎワロタwwwwwwwwww

まあ知ってましたが。

あんちべさんがイケメンだった!
残念!!!

残念言語としてみなさんが使っていたのは、WhitespaceやらLazyKやらC#やらPythonやらHSPやらHSPやらHSPやらHSPやらHSPやらHSPやらHSPやらHSPやらHSPやらHSPやらHSPやらHSPやらHSPやらHSPやら

まあぼくはGauche-glでOpenGLが使えるらしいのでそれでゲームを作ろう、としました。

時間が迫ってきてゲーム作りを断念してSchemeで爆撃スクリプトを書きましたねはい。

言い訳としてはGauche-glを知ったのが一昨日…

あ、それとはじめてLTしました。

しかし、まあ…Gaucheのバージョンの関係でデモもできずに…本当に…残念です…

技術的にもクソで残念というかクソで本当にすいませんでした。
いつの日かリベンジしたいです。




ぐらさんが犬じゃなかった。
ゆっくりさんと話してない
かずーさんがイケメンだった

2012-04-06

Scheme「オブジェクト指向使うのに戸惑っていたけど」

Schemeを書いてて100行越えてくるとオブジェクト指向のことを思ったけど「Schemeでっていうと....」って戸惑っていたが

Scheme オブジェクト指向表現でshiroさんが

私も、50行以内の書き捨てプログラムならともかく、 まとまったプログラムをオブジェクト指向メカニズムのサポート無しで書くのは しんどいです。

と言っていたのでこれからは使っていこうと思います><

2012-04-01

SchemeでTwitterアカウントの監視スクリプト

監視っていっても

  • ツイート数の変化
  • フォロー数の変化
  • フォトワー数の変化
  • 誰をフォローした又はリムったか
  • 誰にフォローされた又はリムられたか
  • ふぁぼ数

ふぁぼられ数もやりたかった!!!

書いた

omegatakuma/TwitterMonitoring

% ./t.scm                   
user > omegatakuma
TwitterID: omegatakuma
ツイート数: 53751
  変化は2
フォロー数: 422
  変化は0
  特になし
フォロワー数: 549
  変化は-1
  @0megatakumaにフォローされた又はリムられた
ふぁぼ数: 42511
  変化は0
Twitter始めた日: 2010/11/09 17:48:07

使い方

ユーザー名を指定するだけ

あとはフォローしたのかリムったのか、フォローされたのかリムられたのかはわからないので自分で判断しましょう!
ただアカウントが表示されます。
まあ変化がマイナスならリムられたんじゃね・・・。

2012-03-30

Schemeでファイルを読んで文字数の出現回数をカウントするスクリプト書いた

書いた

どうソートしようか悩んでしまったんですが結局ハッシュテーブルを使いました。

例えばこのコードの文字数を数えるのなら

% ./count.scm "./count.scm"

すると

( . 93)
(e . 77)
(( . 67)
() . 67)
(a . 47)
( . 47)
(l . 43)
(s . 42)
(t . 36)
(n . 34)
(r . 32)
(i . 29)
(- . 26)
(u . 25)
(o . 23)
(h . 20)
(d . 17)
(f . 16)
(v . 14)
(c . 14)
(b . 12)
(g . 10)
(p . 8)
(x . 8)
(k . 7)
(m . 7)
(y . 6)
(_ . 5)
(w . 4)
(/ . 4)
(1 . 3)
(! . 3)
(q . 3)
(? . 3)
(> . 2)
(" . 2)
(# . 1)
(j . 1)
(* . 1)
(3 . 1)
(. . 1)

と結果が返る。

括弧が上位に上がっているので流石括弧の多い言語だなと...。

あと、ファイルを読む時にはじめはreadを使っていたのですがいろいろ問題が発生してread-lineを使いました。

最近はくだならいスクリプトばかり書いてます。。。