2005-08-19

PukiWiki でスケジュール通知できないか考える

パソコンに向かって行う作業についてはそんなに難しくなくて、

  • 単純に calendar2 に未来の日付で書いておく
  • すると当日には calendar2 が(何も引数を与えずに)置いてあるページを開くと、やるべきことがずらずら出てくる
  • ある程度の期間があるものは先日いじった calendar_viewer を併用すれば ok

この際、作業内容など細かいものは [ [task/ほげほげ] ] みたいな別ページに書いてそこにリンクを張っておけば、スケジュールの調整も簡単にできる。calendar ページにはあくまで項目だけを置いておく感じ。

ただし、例えばこれが不燃ゴミの日とかそういう類いになると、いちいちパソコンなんか見ないからまったく使いものにならない。そこで、

crontab とか at とかを使ってメールを出すとかすればよいのでは?

と思ったのだが、課題がいくつかあって、大きく分けると

  1. crontab あるいは at を使うことについての課題
  2. スケジュール情報を crontab あるいは at へ反映させるタイミングについての課題
  3. プラグインとして実装するとして、呼び出し方はどうしよう

の3つ。以下に列挙すると、

  • crontab あるいは at を扱うライブラリがないのでベタ書きか? でもこれがあったら応用範囲は広そうなので、独立したライブラリになってた方がよさそう。→ 自分で書くのか?
  • Linux は /etc/cron.d が使えるのでその下に pukiwiki とか置いてやるのが楽そうだけど、FreeBSD はどうしようかなぁ。まさか /etc/crontab には反映させたくないしな。at って使ってないからよく分からん。
  • というかユーザーごとに crontab を分ける場合は crontab コマンド使うのがセオリーだからファイル直接いじるのは難しそうな気配が。crontab -u USER - でできるんか?
  • at の方が楽そうだけど、スケジュールのキャンセルをしようと思ったらそれを明示しないといけないので、通常の Wiki のページ編集の概念と合致させるのが難しそう。diff から自動的にキャンセルするスケジュールを割り出すこともできなくはないけど、確実かどうか不安。
  • Windows サーバのことは考えてない。at は NT系 Windows にもあるけど、書式とか全然調べてない。Windows 対応も含めるとやっぱ at でイクのがいいのかなという気はする。
  • ページ編集時に crontab や at に反映することができない
    • PukiWiki のプラグインは基本的に表示の段階で効力を発揮するので、書いた段階でその内容を反映させることはできない。保存して自動でリロードされるときに反映って形になるが、毎回表示のときにあれこれ裏で作業やると重たい。
    • config.php を利用して crontab や at へ反映させる情報を :config/plugin/ 下のページで一元管理してやればキャッシュとしても機能して負荷が軽くできるかも?
      • config.php を眺めてみたが、ページの書き出し用のメソッドは用意してあるので、できなくはなさそう。
  • 編集時にアクションを起こす方法として、$update_exec ってのがあるけど、外部のコマンドを呼び出すだけなので、PukiWiki 内部の情報を渡すのはかなり難しい。array じゃないので別な何かもやらせようと思ったときには shell script やバッチファイルにする必要があるなど、使い勝手はよくない。
  • プラグインの使い方は普通のブロックレベルプラグインで #sched( アクション,通知方法, HHMM [,YYYYMMDD] ) みたいな感じがいいのか? table で表示させるとかの工夫があればいいかもしんないけど、踏ん切りはついてない。

とかかな。まだ抜けはあると思うけど。

ちなみに、全然コードは書いてないので、すでにある、おれなら簡単に作れる、という情報の方が、crontab, at, config.php などに関する情報提供よりも嬉しいです :-)

まぁ Wiki でやろうとするなよという指摘がいちばん妥当なんだろうけど。

「こだわリング」認定アイテムNo.1「メガネ」

んーと、これはあれか。メガネ男子好きの話なのか。メガネっ娘好きの話ではないのだな。両方やるとギャップが浮き彫りになって面白かったと思うけど、30分番組で両方やるのは無理だわな。

それにたぶん男がメガネ女子を語るのはまだタモリ倶楽部レベルじゃないと危険だろう。そもそも対象が極端に少ない。メガネ男子はメガネロックはじめ、普通に掛けてる人がかなり増えたが、メディアに露出してて tommy february6 みたいに狙いすぎてるメガネ、井上和香がいいともで掛けてるようなピンポイントアイテムとしてのメガネを外すと極端にサンプルが少ない。いきおい、2次元の人になるか、下手すると光浦とかになっちゃう。そもそもメガネ女子についてはまだまだ「ドジなメガネっ娘」とか「メガネ外すと実はかわいい」系の記号が強すぎる。

うーん、確かにメガネ男子好きに限定して正解だ。(※ そもそも女性向けの番組です。)

以下、YOU 語録。

「顔のいいダテ眼鏡なんて、まったく用事ないですね。」

「今わかった。所長(YOU)は男子の持ってるコンプレックス大好物。コンプレックスのない男はだめだ。コンプレックス万歳」

「(自分で眼鏡を掛けて)あたしの中のエロティシズムが目覚めますね」

立派な仕事してますよ、所長。

About

例によって個人のなんちゃらです

Recent Posts

Categories

Tool 日々 Web Biz Net Apple MS ことば News Unix howto Food PHP Movie Edu Community Book Security Text TV Perl Ruby Music Pdoc 生き方 RDoc ViewCVS CVS Rsync Disk Mail FreeBSD Cygwin PDF Photo Zebedee Debian OSX Comic Cron Sysadmin Font Analog iCal Sunbird DNS Linux Wiki Emacs Thunderbird Sitecopy Terminal Drawing tDiary AppleScript Life Money Omni PukiWiki Xen XREA Zsh Screen CASL Firefox Fink zsh haXe Ecmascript PATH_INFO SQLite PEAR Lighttpd FastCGI Subversion au prototype.js jsUnit Apache Trac Template Java Rhino Mochikit Feed Bloglines CSS del.icio.us SBS qwikWeb gettext Ajax JSDoc Rails HTML CHM EPWING NDTP EB IE CLI ck ThinkPad Toy WSH RFC readline rlwrap ImageMagick epeg Frenzy sysprep Ubuntu MeCab DTP ERD DBMS eclipse Eclipse Awk RD Diigo XAMPP RubyGems PHPDoc iCab DOM YAML Camino Geekmonkey w3m Scheme Gauche Lisp JSAN Google VMware DSL SLAX Safari Markdown Textile IRC Jabber Fastladder MacPorts LLSpirit CPAN Mozilla Twitter OpenFL Rswatch ITS NTP GUI Pragger Yapra XML Mobile Git Study JSON VirtualBox Samba Pear Growl Mercurial Rack Capistrano Rake Win RSS Mechanize Sitemaps Android JavaScript Python RTM OOo iPod Yahoo Unicode Github iTunes God SBM friendfeed Friendfeed HokuUn Sinatra TDD Test Project Evernote iPad Geohash Location Map Search Simplenote Image WebKit RSpec Phone CSV WiMAX USB Chrome RubyKaigi RubyKaigi2011 Space CoffeeScript Nokogiri Hpricot Rubygems jQuery Node GTD CI UX Design VCS Kanazawa.rb Kindle Amazon Agile Vagrant Chef Windows Composer Dotenv PaaS Itamae SaaS Docker Swagger Grape WebAPI Microservices OmniAuth HTTP 分析基盤 CDN Terraform IaaS HCL Webpack Vue.js BigQuery Middleman CMS AWS PNG Laravel Selenium OAuth OpenAPI GitHub UML GCP TypeScript SQL Hanami Document SVG AsciiDoc Pandoc DocBook Develop Jekyll macOS Node.js Vite Heroku Transformer AI Data Cloud Wasm