kanazawa.js v1.2 に参加してきた

あるいは HTTP と Firebug について喋ってきたよ。

今回は v1.0 以来のセミナー形式ということだったけど、やっぱセミナーの方が人くるね。30人の定員以上に参加希望があったのは正直驚いた。

内容などはリンク先の atnd を確認してもらうとして、自分は

Webそのものの基本と確認用のツール - Firebugを中心に -

というテーマで話させてもらった。

当初は Firebug の使いこなし的な話をしてほしいという風に言われていたんだけど、正直それほど凝った使い方というか裏技的な使い方はしていない1し、かといって一通り使い方を説明するだけだったら、それこそ firebug のサイト見ればいいだけなので、あえてスライド作って喋るほどじゃないよなぁと思っていた。

しばらく待っていたら他の人のテーマに

  • パフォーマンスチューニング
  • Dynamic Loading

というものが上がってきたので、

そうすると [ 接続 ] パネルが中心になるなぁ

と、ぼんやり思い始めて、接続パネルは最初のうちはあまり使わないかもしれないけど面白い機能だよね、と思ったところでハタと気がついた。

てゆーか HTTP 分かってないと [ 接続 ] パネルって意味なくね?

ということで今回は

  • HTTP半分
  • Firebug半分

という構成にしてみた。フタを開けたら高速化の話はなくなっていたんだけど、まぁそれは次回以降に持ち越しということでいいかな。とりあえず

Web に関わるなら HTTP は分かっていて欲しい

というメッセージは伝えることができたと思う。みんな RFC 読もうね :-)

あとは「consoleが便利すぎるので震えてくれ」ということでデモを少々。内容が多かったのであまりデモる時間がなかったのと、最後 Firefox というか Mac 全体の調子が悪くなってしまった2ので、ちょっとだけ尻切れとんぼになってしまったけど、言いたいことは言い終わっていたので良しとした3

ちなみに、会場での握手はすっかり忘れてて、誰とも握手しませんでした。ダメじゃん。

cf.

kanazawa.js v1.2 開催報告 | MOL

  1. JavaScript で dynamic な break point とか使っていればかっこいいんだろうけど、そこまで凝ったもの書いてないし。 

  2. Spacesで全画面表示のFirefoxと非全画面表示を切り替えて出していたんだけど、この辺が悪さしていたのかも。 

  3. もともと今回デモは時間調整の意味も持たせてあったので、できてもできなくてもよかった。 

言語の互換性と難民発生率

www.textfile.org - Perl4難民

こういう方向に話が展開するとはちょっと思っていなかった添削ネタ。そうか。自分を難民と自覚している人がいるんだな。ちょっと新鮮。

かく言う自分もほんの数年前までは Perl 4 時代の知識しか持ってなかった。ネイティブの(最も得意な)言語は Perl だと言っていたにも関わらず、である。あぁ恥ずかしい。その後どうして Perl 5 の知識に追いつけたか(と言ってもさわり程度なんだけど)と言うと、これは PHP の class 構文の動きに納得いかなくて、Perl で書き直してみようと思い立ったからだったりする。1

つまり、外的な要因なのだな。

例えばリンク先の人みたいに補助的に使っていて Perl 4 時代の機能だけで困っていないのであれば、Perl 5 の新しい機能を利用したり新しいスタイルに変更したり、と言った行程はそりゃ避けたくなるもの。何しろ Perl 5 では Perl 4 時代の記法がほとんどそのまま通用するから。

そう。難民は、Perl の歴史の長さと Perl 5 の互換性の高さが生んでいるとも言える2。例えばこれが Ruby や Python であれば、まだ Perl 4/5 時代ほどの熟成が進んでいないので、互換性を捨てても前へ進むと言った決断を迫られるシーンが出てくる。「そこ」で立ち止まることはできないのだ。3もちろんそれが一概にいいとは言えないというか、むしろ仕事で使っている人は互換性が最重要ポイントだったりもする。いつ書いたかも覚えていない Perl 4 スタイルの管理用のスクリプトが黙って動き続けてくれるとしたら、そりゃやっぱ嬉しいよね。

  1. Perl の OOP は非常にトリッキーで理解するのに難儀したが、おかげで改めて Perl の自由度の高さに感心もしたし、その後 Ruby や JavaScript の学習を通じて PHP 3/4 の OOP がカタクて使い勝手がよくないくせにアクセス権限はスッカスカという状態に驚くこともできた。 

  2. 日本ではレンタルサーバの超がつく保守的な姿勢もあるかな。未だに Perl 5.004 とか 5.005 とか言ってたりするんだもの。Perl 5.6 以降とか 5.8 以降のおいしい機能が全然使えないんじゃ魅力ないですよ。 

  3. この先 Perl 4/5 時代のような時期もいつかくると思うけど。 

風邪引いた

今年というか今シーズンというか、なんだかよく風邪を引く気がする。一応うがい手洗いは欠かしていないし、割とまともなものを食べているような気はするんだけどなぁ。満足に動かなくなった加湿器についてもう少し真面目に対策を考えた方がいいだろうか。

でも安くて小さくてそこそこ動くものって、実は案外ないんだよな。

WinSCP + rssh でカタイ ssh ファイル転送

ssh は基本的に shell の機能を提供するものである。しかし超便利で、ファイル転送にも普通に使える。その機能を利用した WinSCP というクライアントはまるで ftp のように ssh を活用し、ftp というセキュリティにとっての目の上のたんこぶを葬ることに貢献してくれている。

しかし伝統的には WinSCP は shell の機能を利用して擬似的に ftp の機能を実現していた。つまり、ファイルのリスト取得や転送がしたいだけのユーザーに shell を解放する必要があった。これでは、ftp を葬っても、ユーザーが信用できなければ逆にセキュリティ上の脅威は上がっている。

そこで登場するのが WinSCP 3 以降と、rssh である。WinSCP は 3 以降で sftp に対応し、もはや shell の機能を利用せずともファイル一覧の取得が可能になった。しかし、実際には shell を正しく設定しておかないと sftp での接続には失敗する。そこで rssh のご登場。shell を rssh にし、適切に設定することで、sftp だけをユーザーに提供することができる。(scp だけに制限することもできるが、それではファイル一覧は取得できない。)

WinSCP は putty 鍵を使った鍵認証にも対応しているので、クライアントに Windows が居る中で、ssh を利用した最も安全なファイル転送経路の確保が可能となる。(FileZilla は鍵認証には現時点で対応していない。)

ただし、これだけでは chroot できないので、ユーザーが更新する以外の部分のファイルが覗けてしまう。この話はまた今度。

w3m 0.5

何も考えずに ports で入れたら utf-8 のページは表示できるが、terminal の切れ目で文字化けが発生する。なんだべと思い Makefile を見たら

-m JAPANESE=yes

が必要だった。ということで今度はこれを指定して portupgrade -f でゴー。すると今度は

  • expat
  • gettext

のアップデートでコケた。どうもこの辺は昔 pkg_add で突っ込んでいたものらしい。それぞれ make deinstall して portupgrade -f をくり返す。都合3回も build したことになるが、動くようになったし、他のアプリでも利用しているパッケージが新しくなったので良しとしよう。

まぁ、utf-8 なページって、そんなに普段見てないんだけど。。。

portupgrade 起動せず

Ruby を上げたら portupgrade に必要なライブラリとのバージョンが合わないのか、portupgrade できなくなった。ちと焦ったが portupgrade を make deinstall して make install で解決。

年度始めだからか GW があるからか

皆さんお忙しいようで。楽しみにしている日記の更新頻度が落ちててちとつまらん。

YEBISU の購入手続きも進まねーし。

と思ったらシステム障害発生で 15:00 再開って言ってる。

と思ったら 16:40 ついに断念して、今後の予定を 19日(月) 13:00 発表ということにして販売のシステムを止めた模様。中の人はそれこそ火の車ですな。まー分散を前提にしたシステムであればハードウェアのパワーを調達すれば ok でしょうけど。

というわけで自己ベスト

Orca 323位

糸電話

糸電話も増幅器を置いていけば距離伸ばせますよねぇ…。

鉄腕DASHで実験してくれんかな。

Firebird & Thunderbird

スラド経由 http://www.mozillazine.org/talkback.html?article=3075

Phoenix と Minotaur の名称が Firebird, Thunderbird に変更になったそうです。一応 Mozilla 1.4 までは現状のままの開発だそうですので、1.4 をベースにしている現在の Phoenix は今のところ安定していると見てよいのでは? :) つーか Phoenix は nightly 入れてみて UI の迷走っぷりに驚いているのですが。もともと Phoenix の UI はあまり好きじゃないだけに、メインがあれになるのはかなり不安ですが…。まぁ Toolkit が変わるだけで UI は現状を踏襲するのがフツーだと思いますけどね。

で、Composer は?

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