node replと生jshint

生のjshintの使い方

commit 3c77ac で確認。

  • JSHINTという名前空間の中に処理が収まっている
  • JSHINT( src, opts ) の形で lint を実行
    • src は当然文字列、opts は JSON ?
  • error がなければ JSHINT() の戻りは true で、あれば false
  • JSHINT.data() で実行時の細かいデータが取れる
    • JSHINT.report() はこれを HTML 化してくれる
  • error は JSHINT.errors というプロパティに収まっている Hash の Array を見れば分かる
    • ただ残念なことに JSON のように見えて valid な JSON ではないので、この情報を JS 以外の環境でそのまま扱うのは難しい。

以上のことをnode replで確認する

  1. node >
  2. var JSHINT = require( /PATH/TO/jshint.js ).JSHINT
  3. var fs = require('fs')
  4. JSHINT( fs.readFileSync( /PATH/TO/jshint.js, encoding ) )
    • // => true
  5. jshint.js 自身を一部書き換えて保存(例えば末尾に , を足すとか)
  6. JSHINT( fs.readFileSync( /PATH/TO/jshint.js, encoding ) )
    • // => false
  7. JSHINT.errors

結果、

[ { id: '(error)',
    raw: 'Extra comma.',
    evidence: '          wsh         : true,  // if the Windows Scripting Host environment globals',
    line: 320,
    character: 29,
    a: undefined,
    b: undefined,
    c: undefined,
    d: undefined,
    reason: 'Extra comma.' } ]

当たり前だけどチェック対象は文字列なので、どのファイルのエラーなのかという情報はない。ここは呼び出し側で対応を取ってやる必要がある。

なるほど。

fs.readFileSyncにはencodingを忘れずに

fs.readFileSync( path, encoding )

なんだけど、encoding を与えないと文字として解釈できないっぽい? ASCII のファイルでもダメだった。数字の羅列になってたので codepoint 的な何かになってるのかなぁ。

とりあえず utf-8 にしたら動いたけど、たぶん ascii でもいいんじゃないかな。試してないけど。

きむらさんの雑記帖feed化計画

※ 無駄に面倒なこと考えてました。コメントにあるように Yahoo! Pipes の

zakkicho

がいいと思います。

あと、それPlaな人たちはやはり自分で解決しちゃうのが常識っぽい。

本を読む 「ときどきの雑記帖 リターンズ」のRSS

考えると作ったらその場で feed の公開(&ホスティング)までできちゃう Yahoo! Pipes はやっぱいいよなぁ。もうちょっと多様なページやfeedの読み込みに対応できたり、エンコーディングの変換ができたりなんかするとすごく嬉しいんだが。


今どき feed がなくて不便でしゃーないことで有名なきむらさんのときどきの雑記帖ですが、こんな感じで scrape できるんじゃないかな。

  1. index の <h2>過去の雑記帖</h2>
  2. の次の一個目のol
  3. の最後の要素
  4. に最新の permalink 確定ページの URL がある
  5. そのページを fetch して
  6. //div[@class="entry"] を引っこ抜きまくる
  7. 細かいゴニョゴニョは未確認
  • 日付への link はいいかな?
  • okotoba も無視の方向で

誰か作って。

ちなみに今、自分は myrss.jp にツッコんで feed を生成させて、更新通知代わりにして、結局 zakkicho に直接アクセスしてます。ページが長いし、非常にブラウザに優しくないです!

以前と違って permalink 確定が早い(もしや index の更新と同時?)なので、上の方法で scrape して十分使いものになりそうな感じ。

というか、とっとと容量制限で rimnet 追い出されてくれりゃまともなツールを使うようになるんじゃなかろうかw

Cperl-modeを使おうかどうしようか

気分転換に Cperl-mode で編集してみようと思ったらデフォルトの色の設定があんまり気持ち悪いのでビビってしまった。ソッコー perl-mode に戻す。

反転はさすがに使わないでくれ。

……。

あー。もしかしてコレ、変な色にならないように書いていればそれなりに行儀良く書けていると判断することもできるのか? んーなんか重たい感じがするなぁ。

[追記] M-x customize をあれこれ眺めてみた。色の設定はとりあえずいじってみたけど、perl-mode みたいに $ だけは色を変えないとか、コメントの中は全部赤とかにはできないのかな? 重さは Customize の中から細かく調整できそう。

あとは色に目が慣れればなんとかなるかもしんない。

Invalid Face っていう設定項目があるから、なんか他のツールと組み合わせるとおかしな部分をどぎつくハイライトさせて矯正、っていう使い方はできそうだな。やらないけど。

隠すことによるセキュリティの向上は望めない、が原則では?

スラッシュドット ジャパン | サーバのバージョンは隠すのが常識?

これはー。

隠すことによるセキュリティの向上は望めないことを自覚したうえでやってね

という話に尽きる気がする。

こういったサーバ情報をわざわざ表示する必要はありません。

というのはその通りなんだけど、タイトルの「5分でできるセキュリティ向上」には役に立っていないことは触れなくていいんだろか。

さらに言うと個人的にはこの手の話は

  • バージョン情報を隠す/隠さない
  • 最新のバージョンを使う/使わない

以外に、

  • バージョンはそのままでパッチを当てる

という選択肢が存在していることがもっと広く知られてほしいという気がするかなぁ。意外にね「あー Apache のそのバージョンには脆弱性が云々…」てなことを「得意げに」言う人ほどその情報だけを鵜呑みにしてて、いや、パッチ当たってるんですけど、と軽く反論してみても全然聞いてなかったりするんですよね。そういうのって、本人は聞き流しちゃってるからなんともないでしょうけど、ハタから見てるとかなり恥ずかしいですよ。

あと .svn がどうたらというのはその前段階から対策取るのが本筋で、ステージングサーバから本番への反映の際にルールで弾けばいいような気がするんだけど、それじゃダメなのかな。rsync だろうが WinSCP だろうが exclude の設定はあるよ。そのうえでサーバ側で Deny するのはアリだと思うけど、Deny の設定はあくまでスタートに過ぎない気がする。.svn が誤って上がってる場合があるってことは *~ とかも上がってるよね、きっと。*~ は上がってなくても .1 とかは上がってるかもしんない。

/* 実際、昔引き継いだサーバはそんなんばっかだった。バージョン管理もしてないから .bak.old とか訳の分からないものだらけ。 */

その辺のプロセスを見直さないと、セキュリティの向上を謳うことはできないんじゃないかなぁ。

p.s. はてブコメントの「例えば PHP を使わない」に軽く吹いた。

emacs で 3タブ

まぁなんだ。ただただしモードだな。ruby-mode.el の中身を読んだりマニュアルを調べたり bookshelf.jp を調べたりして書き上げてから見つけた。

%!zt! diary - 3タブ

indent-tabs-mode は ruby-indent-tabs-mode でなくてもいいのか。

葬儀tips

  • 香典袋は顕示欲を抑えて極力シンプルなものにしておくと整理する人が楽。
    • 水引まで印刷されちゃってるやつがベスト。
  • 職場はともかく仕事上のつきあいの場合はあんまりバラバラに行かない。香典もまとめておいて代表が出席する。
  • 記帳の際は読みやすい字で変に省略せずに書くと喜ばれる。
    • 達筆系は困ります。下手でも丁寧に書きましょう。
    • というか仕事関係なら可能な場合は(偉い人が)名簿が別ルートで手に入るように仕向けておくと現場はとても助かります。

まぁなんかそんな感じ。舞台裏は情緒とかそんなものとは別にあれこれ煩雑な作業が噴出しておるわけです。

スピードワゴンの「あまーい」

TVチャンピオンの芸人通選手権。

これかっ。これかぁー。

前からこんなネタやってたかな?

いやー。だったらね、だったらね。場を止めなきゃダメ。流れの中に埋没させるトークで甘い言葉は言っちゃダメ。気づいている人のほとんどいない甘い言葉は反則。

スピードワゴンはこの甘い言葉を喋る方が好きじゃなかったんだけど、そうかこれはピンで喋ってたからだめだったんだな。つーか相方すごい。

Zope の本命きたー

ゾープ・ジャパン、コンテンツ管理システム「Zope」の日本での業務を開始 (INTERNET Watch)

Web コンテンツマネジメントシステムでフリーで有名なのと言えばやはり Zope. 個人的にはさんざん実験はしたけどイマイチ移行する気になれないビミョーなシステムなんだけど、いよいよ日本でのビジネス展開の本命がきたわけですな。

Zope のソリューションを謳っているシステム屋さんとうまく協力していくのか。個人的には疲弊、分散してしまった日本のコミュニティに新しい心地よい風が吹いてくれないかなーなんてことを妄想するけど、今さら無理かねぇ。

と思ってたらそれどころじゃなかった

「Zopeなど海外のオープンソース企業と提携を拡大」,ゼンドがオープンソース・ジャパンに社名変更

もっと速いペースでビジネスが進行するかも。もうコミュニティ頼みの時代は終わったか? 何か面白いことが起きてくれるならまーそれでいいっちゃいいんだけど。

Macromedia 包囲網

マクロメディア、Macromedia Web Publishing System 日本語版を発売 (CNET Japan)

Dreamweaver, Contribute ユーザーを把握し、効率的な publishing を行うサーバサイドのソリューションなのかな? 細かい記述が全然ないけど、そのうち日本語の情報も増えるだろう。

言い方は悪いけど、Macromedia はどんどん高額の商品を開発してきますなぁ。サーバサイドは後発の Macromedia、今後の展開はどうなることやら。

怖すぎ < 詐欺の手口

もはやオレオレではないけれども、「相手の思考力を奪って短時間でとにかく金を振り込ませる」という基本に加え、「確認しようにも本人と連絡がつかないようにしてしまう」というのが恐ろしい。誰か他の人がいればあれだけど、一人しかいないときに冷静さを保てるかってのは案外あやしいものだと思う。

読みにくい色なんでテキストブラウザ推奨 :-)

冷静に考えればいくら示談しても人身事故が物損事故になるわけないやん、とも思うし、まず保険屋に相談じゃないのかとも思うわけですが、そういう発想が普段からできるようにしておかないとダメですな。

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