自作ソフト

Webアンテナサイトを作ってみた

Posted on Updated on

anana-

よくある、ウェブアンテナサイトをつくってみました。

あんてななー

http://natto.usamimi.info/cgi-bin/tiffania/

 

機能とか

  • 複数フィードの読み込み
  • クリック数の集計
  • 人気記事の集計を行い、それらのみの記事も作ります(アクセス対策)

とかそんなものです。欲しい人にはあげます?

Tex環境の入ったサーバーに、Dropbox経由でオンデマンドな変換をする仕組みを作った。

Posted on Updated on

dnotifyとDropbox、あとTex環境を導入しているサーバーで、これを実行すると自動的にtexを変換してくれます。なお、エラーはすべてすっ飛ばして出力されますので、詳細はログを見てください。

変更のタイミングはCM(ファイル作成時、ファイル変更時)です。変更が終わったファイルはすべてComplete_Sourceに移されます。

 

#!/usr/bin/perl
#

my $dir=”/home/user/dropbox/Latex”;

open(IN,”dnotify /home/user/dropbox/Latex/Source -CM -e ls -1p {} | “);

while(<IN>) {
if(/\.tex$/) {
chomp($file=$_);
system(“platex -output-directory=$dir/Output -kanji=jis -interaction=nonstopmode $dir/Source/$file”);
system(“mv $dir/Source/$file $dir/Complete_Source”);
}
}

close(IN);

exit;

これを適当な名前で保存して、(例えばontex等、)その後このファイルのパーミッションを755にした後、

./ontex &

という風に、最後に&をつけて実行してあげます。

Dropbox内のファイルに、Latexというフォルダを作り、更にその中にSource,Output,Complete_Sourceというフォルダを作ってください。

すると、どこから入っても自動更新が行われます。

Windowsのurlファイルを開くやつ。

Posted on

ubuntuとかgnomeの環境でWindowsで作られるurlファイルを開いてくれるの作ったよ。あんまり変わらんけどね。備忘録程度に。

#!/usr/bin/perl

if(!($ARGV[0] =~ /\.url/)) {
print “Usage:$0 .url File”;
exit;
}

if(!(open(IN,”$ARGV[0]”)) ) {
print “Usage:$0 .url File”;
exit;
}
my @tmp=;
close(IN);
my url=””;

if($tmp[0] =~ /InternetShortcut/) {
chomp($url=$tmp[1]);
} else {
print “ERROR”;
exit;
}

友達に作れと言われたので夢小説用のCGIプログラムを作った。

Posted on Updated on

「名前を入れてください:」って出てきて自分の名前が登場人物として出てくる、夢小説、ドリーム小説というものがあるらしいが、仕組みをとりあえず作ってみた。

夢小説のためのCGIプログラム:Dream Selector ←ダウンロードはこちら

ソフトウェア種別 フリーソフトウェア
条件等 無保証、サポート無し、商用利用可
言語 Perl
再配布の可否 再配布、改変後の再配布を許可

 

一部、というかかなり、KENTさんのサブルーチンを利用ささてもらっています。あわせて、kentさんのCGIスクリプト利用規定の遵守をお願いします。

また、フリーソフトですので完全に自己責任となっています。どのような損害を利用者(あなた)や、観覧者(あなたのサイトを見る人)が負ったとしても、プログラムの作者みすりるは責任を全く負いません。要は自己責任です。設置に関すること以外に質問がある場合はコメント欄をご利用ください。

追記:2012年2月13日

夢小説を作るには、大きく分けて2つの方法があると思います。見ているコンピューターに処理させる方法と、データを送信するサーバーが処理する方法です。主に前者はJavaScript等が使われますし、後者はCGI等で実現できます。前者の良い所ではどんなサーバーでも動かせるということです。しかし、携帯電話等一部の環境では動作しない場合があります。

それで、後者の方法が使われます。今回提供するプログラムは、この、サーバーで処理する方法を利用しています。後者のものは設置がやや面倒くさかったりするかもしれませんが、携帯電話でも見ることができますし、リンクを保存しておけばいつまでもその結果を見ることが出来るという良い点があります。

(追記終了)

zipの内部:

  • dream.cgi 本体。 パーミッション755にしてください。
  • readme.html いろいろ書いてます。読んでください。
  • data/test.txt テスト用ファイルです。

ちなみに、小説ファイルはエンコードがutf-8のテキストファイルで保存してください。!you!と打った部分が名前に置き換わります。

夢小説を実際に見る場合

dream.cgi?look=ファイル名(.txtは不要)&title=タイトル

で見ることが出来るようになります。

サンプル

動作サンプルはこちらです。この時、data/test.txtを参照しています。

dream.cgi?look=test&title=動作サンプル

「Winキー+R→tweet 内容」でツイートできるPerlスクリプト群

Posted on Updated on

qfolrovr

今回は、TweetするPerlスクリプトをちょっと改良して、ツイートしてくれるだけのしょっぱい機能をつくってみた。

 

かなりこちらのページのものを参考にしました。

Perl製Twitter BotにOAuth認証で投稿させる/楽:技林ブログ

導入

こちらのページのようにNet:Twitter:Liteを導入する。Windows環境の場合は

ppm install Net::Twitter::Lite

こちらのほうが簡単みたい。

次に、先ほどのページのポイント2と同様にhttp://dev.twitter.com/こちらのページにアクセスし、Consumer_key, Consumer_secret, ACCESS_TOKEN, ACCESS_TOKEN_SECRETを取得。このとき、ACCESS TOKENの設定においてRead and writeの権限をきちんと選択しておくこと。

以下Perlファイル(.pl)(参考:Perl製Twitter BotにOAuth認証で投稿させる

#!/usr/bin/perl

use strict;
use warnings;
use utf8;
use Encode;

use Net::Twitter::Lite;

my $defa;

 

if(!defined($ARGV[0])) {
    print "No Status Message\n";
    exit 1;
}

foreach(@ARGV) {
    if(!defined($defa)) {$defa=$_;}
    else {$defa.=" $_";}
}

# http://dev.twitter.com/apps/XXXXXX で取得できるやつ

my %CONSUMER_TOKENS = (
    consumer_key    => ‘—consumer_key—‘,
    consumer_secret => ‘—consumer_secret—‘,
);

# http://dev.twitter.com/apps/XXXXXX/my_token で取得できるやつ
my $ACCESS_TOKEN        = ‘—access_token—‘;
my $ACCESS_TOKEN_SECRET = ‘—access_token_secret—‘;

# constructs a "Net::Twitter::Lite" object
my $t = Net::Twitter::Lite->new(%CONSUMER_TOKENS);

# トークンをセットする
$t->access_token($ACCESS_TOKEN);
$t->access_token_secret($ACCESS_TOKEN_SECRET);

#$encoder->decode($defa);
#$encoder->encode($defa);

# 投稿
$t->update({ status => decode ‘sjis’, $defa });

また、実際にこれを実行する場合にはActive PerlCygwinのパッケージなどに同梱されてあるPerl.exeと、このスクリプト自体のパスが通っていなければなりません。

パスの設定を汚くするのは個人的に好きではなかったので、別途バッチファイルを作ってパスを手動で通した後に上記スクリプトを実行するようにしました。以下はその一例です。

以下Batchファイル(.cmd)

ただし、
Perl.exeのあるフォルダがC:\Perl64\bin,
上記PerlファイルがC:\Software\upd_tweet.pl

@echo off

set path=%path%;C:\Perl64\bin

perl C:\Software\upd_tweet.pl %*

これをWindowsフォルダ等にtweet.cmdなどのファイル名で置くとこの機能が利用できるようになります。

 

使用例:

tweet ハラショーテスト

結果→ハラショーテスト

注意:tweetの次には半角スペースにしてください。

Perlで作っている自作RPGとかの続報

Posted on

こんにちは。

 

現在のAdvQuestの段階はこんなところ。さぼってた((

  • 完了:アイテムの生成
  • 完了:アイテムのリサイクル機能
  • 着手:アイテム表示を改良
  • 予定:アイテムの内部的選択処理
  • 予定:エンカウント
  • 予定:敵地の機能

 

予定としては、アイテムの表示を次に頑張りたいと思う。アイテムの表示は、もうちょっといくつでも表示できるような仕組みをつくりたい。

また、現状アイテムの選択処理が不確実(他の人に書き換えられたら、別のものを選択してしまう仕様)であるので、もうちょっと改良の余地があるかなぁと。

その次に予定されているのがエンカウントとか、フィールドとしての当たり前の機能なので、まあ、がんばろうw

意味不明な文章を作ってくれるサービス「一言サラダ」

Posted on Updated on

mnkev2m1

最近、意味不明な文章を作ってくれるWebの小物を作ってみた。最初、自分で文章を作るための5要素を自分で考えて貰うことになる。

その後、入力したあとに、それらを含めたうちの、今までの投稿におけるどれかがそれぞれの要素として出現して、面白そうな文章が出来る、というものである。

例えば

「9分前、日本で、大統領が島根県に引っ越したら、誰もが花火を買うようになった。」

「灯火が消えたとき、銀座の近くにあるフランスで、ヨシズミが引っ込んだら、静かになった。」

たまに吹き出しそうになるものも、出てくるかと思う。入力する要素は、できるだけ長いほうがいいかもしれない。

実際にする場合はこちら

この文章は完全なでたらめであり(完全に、rand関数を使い、ランダムで出力しているため。)、どのような文章が出てきても、もちろん、現実とはなんの関係もないことに注意してほしい。

二重振り子のシミュレータを作ってみた。

Posted on

00wmx1in

二重振り子のシミュレータをCで作ってみた。夏休みだから何か、作ってみる絶好のチャンスだと思ったから作ってみた。これを作るのに、大きく分けて描写の部分、微分方程式を解く部分が必要だったが、後者が少し大変だった。

前者の描写の部分はありあわせの(私には利用はできるが、配布する権利のないようなライブラリの)ものを使ったので、色々整備されており、別になんということはなかった。

後者は、運動方程式を使って、加速度、速度を求めつつ位置を設定させるような数値解析的な方法を使った。運動方程式の解法はかなり大変だったので、こちらを参考にした。

二重振り子のシミュレータ

 

Wikipediaによると、こんな感じの、カオスになるようなものは、初期値敏感性を持っててちょっとでも初期値を変えると全く動きが変わってしまいうるということから、厳密なシミュレータではないので(動画の場合は1秒あたり32分割しています)もちろん現実と同様な動作ではない。らしい。

ねおクエローカルインストーラー(笑)Ver2.0

Posted on Updated on

というか、ダウンロードできなくなっていたのでダウンロードできるようにした上で、更にちょっと変えてみました。(今ならCで作るのに…)

ダウンロ-ドは、こちらから。

※基本全部そうですが、このファイルを利用して追った損害や、不利益には、全ての責任を作者は負いません。ダウンロードしたときは、これに同意したとみなします。

 

変更点は次のとおりです

ねおクエローカルインストーラー ver2.0

[削除]wgetの検出機能を削除。

[変更]ダウンロード方法を、wgetからこちらのvbsに。

 

また、スクリプトを借りた、SQLの窓様ありがとうございます。

 

作りはかなりショボショボになってしまった。ファイルリストを作らずに、自分でコツコツと同じ事をするように変更したため。だから(笑)ってつけた。

ADV Quest開発日記:アイテムの追加、消費機能の実装

Posted on Updated on

image

今日は、アイテムの追加と消費機能を実装しました。かなりここらへんはかなり今季の要りそうな作業みたいです。アイテムによって効果を変えさせなければなりませんし、アイテムの価値やそのアイテム自体のクオリティというもののフラグとかを考えなければならないというところと、アイテムとアイテムを結合させたときに生じる問題などもあります。

今回は、たまたまテストキャラのステータスとしてポーションを適当なクローンをいっぱい作ってテストしています。次からは、アイテムの効果や、そのバランスについて色々と考えて設定していこうと思っています。

 

 

今後の予定

アイテム機能(売買、落とす、発明等)の完全実装

エンカウント処理

とりあえず、この2つが出来ればどうにか人間らしい感じのゲームが出来るかと思うので、頑張ろうと思います。