2004-12-03

Firefoxに続け--バージョン1.0公開が迫るモジラの電子メールソフト

Firefoxに続け–バージョン1.0公開が迫るモジラの電子メールソフト

from CNET Japan

あかんやろ。

Thunderbird は Firefox に比べると雑すぎる。中身を見たわけじゃないけど、1.0 までのペースが速すぎるし、かなり「かゆいところに手が届かない」シロモノなのは間違いない。まー自分は使ってるけど、とても Firefox 1.0 のようには他人に薦められない。少なくとも日本では POP before SMTP には対応してくれないとね。

FreeBSD Expert

FreeBSD Expert

2005.

買っておくかなぁ。

コンテンツの表示を ON/OFF

なんか思ったより簡単だった。

  • ID 属性で要素を特定
  • これを DOM オブジェクトとして JavaScript で持つ
  • .style.display を block にしたり none にしたり

するだけ。今回は block 要素しか ON/OFF しなかったのと、visibility でいじると IE, Opera で table に対して継承されないので。その代わり HTML の方が ID 属性細かく入りまくりになるけどこれはしゃーない。汎用の Event オブジェクトから始めるとまた実装の違いを気にする必要があれこれ出てきて面倒なので今回は見送り。できあがりは以下の通り。

// 指定コンテンツの表示を ON/OFF する
function toggle_visibility( id ) {
    var obj = document.getElementById( id );
    var self = document.getElementById( 'switch_' + id );

    if ( obj.style.display != 'none' ) {
        obj.style.display = 'none';
        set_textnode_value( self, '+' );
    } else {
        obj.style.display = 'block';
        set_textnode_value( self, '−' );
    }
}

// 指定要素の textnode を value にする
function set_textnode_value( obj, val ) {
    var ret = 0;
    var i   = 0;
    for ( i = 0; i < obj.childNodes.length ; i++ ) {
        // textNode は nodeType == 3 で判別
        if ( obj.childNodes[i].nodeType == 3 ) {
            obj.childNodes[i].nodeValue = val;
            ret = 1;
            break;
        }
    }
    return ret;
}

これをトグルさせるときにクリックする HTML の要素は

<a href="javascript:void(0)"
   id="switch_element"
   onclick="toggle_visibility( 'id' );"
   style="border: 1px solid;">−</a>

こんな感じ。表示を切り替える要素は

<div id="element">

...

</div>

こんな風にして囲んでおく。

  • ON/OFF したい要素の ID を X とすると
  • ON/OFF させるための要素の ID を switch_X とする

ルールにしときました。

+と−の文字を使って今コンテンツが表示されているかの状態を示しているのは、見出しの前に置いて中身が折りたたまれているかどうかを分かるようにするため。ま、よくあるやつです。全角うぜーと思ったら適当に書き換えるよろし。

Mozilla の JavaScript コンソールがあると楽だなぁ。

言われてみれば当たり前でも言われるまで気づかないことは案外多い

作れる、作る、作った (textfile.org)

元ネタは高林さんなんだけど、結城さんの感想を含めて。

例え当たり前のことでも形にするのは案外に難しい、とワタシは常に感じています。これはワタシのデキがよくないということもおおいに意味するわけですが、日本語でもシステムでも同じじゃないかと感じています。

あ。

形にすることに対する障壁を取り除くシステムやノウハウを自分が持っている(あるいは作れる)のなら、それを表に出して行きたい、これが自分が Web 上にだらだらとモノを書き連ねたり、システム管理的なことにどうしても手を染めてしまったりする一つの出発点なのかも。

本屋に行って、、、

手元にずいぶん前にもらった図書券があったので FreeBSD Expert 2005 を目指して出かけた。、、、んだけど、パラパラと眺めているうちにうーん、と唸る。ぶらぶらと巡っていたんだけど、どうも最近読みたい本がないらしい。

散々迷った挙げ句買ったのは『増補改訂版 Java言語で学ぶデザインパターン入門』。とりあえず積んどく。テストとか設計の本にも興味あるし哲学的な本にも興味あるんだけど、最近全然食指が動かないのはなんでかな。

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