僕は木になりたい。。。

子供のとき本気でそう思ってました。 理由は樹齢が長いから

技術系ネタ

Ruby 1.9.2でRubyGemsがエラー

ruby1.9.2をインストールしたが、gemがうまく動かない。

gem -v
$ gem -v
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems/source_index.rb:68:in `installed_spec_directories': undefined method `path' for Gem:Module (NoMethodError)
        from /usr/local/lib/ruby/site_ruby/1.9.1/rubygems/source_index.rb:58:in `from_installed_gems'
        from /usr/local/lib/ruby/site_ruby/1.9.1/rubygems.rb:884:in `source_index'
        from /usr/local/lib/ruby/site_ruby/1.9.1/rubygems/gem_path_searcher.rb:81:in `init_gemspecs'
        from /usr/local/lib/ruby/site_ruby/1.9.1/rubygems/gem_path_searcher.rb:13:in `initialize'
        from /usr/local/lib/ruby/site_ruby/1.9.1/rubygems.rb:842:in `new'
        from /usr/local/lib/ruby/site_ruby/1.9.1/rubygems.rb:842:in `block in searcher'
        from :10:in `synchronize'
        from /usr/local/lib/ruby/site_ruby/1.9.1/rubygems.rb:841:in `searcher'
        from /usr/local/lib/ruby/site_ruby/1.9.1/rubygems.rb:480:in `find_files'
        from /usr/local/lib/ruby/site_ruby/1.9.1/rubygems.rb:984:in `load_plugins'
        from /usr/local/lib/ruby/site_ruby/1.9.1/rubygems.rb:1140:in `'
        from :29:in `require'
        from :29:in `require'
        from /usr/local/bin/gem:8:in `
'

いろいろとググってみると、 以下のサイトに詳しい内容があった。
Ruby 1.9.2とRubyGems 1.3.7とGem.pathの消失
詳しく解説してくれていてとても助かった。
で、結局、どこにどういうコード入れれば良いかなんだけど、
まずは、rubygems.rbがどこにあるのかを検索

$find / -name rubygems.rb
※良い子はマネしない!

/home/hoge/.gem/ruby/1.9.1/gems/rubygems-update-1.3.7/lib/rubygems.rb
/usr/src/ruby/ruby-1.9.1-p0/lib/rubygems.rb
/usr/src/ruby/ruby-1.9.2-p0/lib/rubygems.rb
/usr/local/src/branches_ruby_1_9_2/lib/rubygems.rb
/usr/local/src/ruby/lib/rubygems.rb
/usr/local/src/ruby-1.9.2-p0/lib/rubygems.rb
/usr/local/lib/ruby/gems/1.9.1/gems/rubygems-update-1.3.7/lib/rubygems.rb
/usr/local/lib/ruby/1.9.1/rubygems.rb
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems.rb
/usr/lib/ruby/1.9.1/rubygems.rb
と、いろいろ弄っているので、 かなりたくさん出てくる。
どのrubygemsが最初にロードされているかを確認
$ruby -e 'p $LOAD_PATH'
["/usr/local/lib/ruby/site_ruby/1.9.1", "/usr/local/lib/ruby/site_ruby/1.9.1/i686-linux", "/usr/local/lib/ruby/site_ruby", "/usr/local/lib/ruby/vendor_ruby/1.9.1", "/usr/local/lib/ruby/vendor_ruby/1.9.1/i686-linux", "/usr/local/lib/ruby/vendor_ruby", "/usr/local/lib/ruby/1.9.1", "/usr/local/lib/ruby/1.9.1/i686-linux"]
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems.rb
がロードされている事がわかった。 中身を見ると、確かに、
Gem::QuickLoader.remove
が、無い。
で、
gem_disabled = !defined? Gem
の下に以下のコードを、追加
unless gem_disabled
  # Nuke the Quickloader stuff
  Gem::QuickLoader.remove
end
そして再度
$ gem -v
1.3.7

はい。おっけー!

Redmineでカスタムフィールドの表示でリンク表示にするハック

詳細表示画面

app/helpers/issues_helper.rb

  def render_custom_fields_rows(issue)
    return if issue.custom_field_values.empty?
    ordered_values = []
    half = (issue.custom_field_values.size / 2.0).ceil
    half.times do |i|
      ordered_values << issue.custom_field_values[i]
      ordered_values << issue.custom_field_values[i + half]
    end
    s = "<tr>\n"
    n = 0
    ordered_values.compact.each do |value|
      s << "</tr>\n<tr>\n" if n > 0 && (n % 2) == 0
      case value.custom_field.id
      when 1
        s << "\t<th>#{ h(value.custom_field.name) }:</th><td><a href='http://ow-japan.com/#{issue.custom_field_values[1]}'>#{ simple_format_without_paragraph(h(show_value(value))) }</a></td>\n"
      else
        s << "\t<th>#{ h(value.custom_field.name) }:</th><td>#{ simple_format_without_paragraph(h(show_value(value))) }</td>\n"
      end
      n += 1
    end
    s << "</tr>\n"
    s
  end

チケット一覧

app/helpers/queries_helper.rb

  def column_content(column, issue)
    value = column.value(issue)

    case value.class.name
    when 'String'
      if column.name == :subject
        link_to(h(value), :controller => 'issues', :action => 'show', :id => issue)
      elsif column.name == :cf_1
        link_to(h(value), "http://ow-japan.com/#{issue.custom_field_values[1]}")
      else
        h(value)
      end
    when 'Time'
      format_time(value)
    when 'Date'
      format_date(value)
    when 'Fixnum', 'Float'
      if column.name == :done_ratio
        progress_bar(value, :width => '80px')
      else
        value.to_s
      end
    when 'User'
      link_to_user value
    when 'Project'
      link_to_project value
    when 'Version'
      link_to(h(value), :controller => 'versions', :action => 'show', :id => value)
    when 'TrueClass'
      l(:general_text_Yes)
    when 'FalseClass'
      l(:general_text_No)
    when 'Issue'
      link_to_issue(value, :subject => false)
    else
      h(value)
    end
  end

さくら専用サーバのCentOSにRuby環境の構築メモ3

さくら専用サーバにrails環境の構築をしました。
いつもやってることなので備忘録を兼ねてメモ

# cd /usr/local/src
# wget ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p72.tar.gz
tar zxvf ruby-1.8.7-p72.tar.gz
# cd ruby-1.8.7-p72
# ./configure --enable-shared
# make && make install

# yum install openssl-devel
# yum install zlib
# yum install zlib-devel
# yum install db4-devel
# yum install openldap-devel
# yum install cyrus-sasl-devel
# yum install pcre-devel
# yum install mysql-devel

# mkdir ../rubygems
# cd ../rubygems
# wget http://rubyforge.org/frs/download.php/45905/rubygems-1.3.1.tgz
# tar xzf rubygems-1.3.1.tgz
# cd rubygems-1.3.1
# ruby setup.rb
# yum install gcc
# yum install zlib-devel
# cd /usr/local/src/ruby-1.8.7-p72/ext/zlib
# ruby extconf.rb
# make && make install
# gem update --system

# yum install readline-devel
# cd /usr/local/src/ruby-1.8.7-p72/readline/
# ruby extconf.rb
# make && make install

# gem install rails -v 2.2.2

mysqlとpostfixを絡めてメールサーバーを構築するが、
centosのpostfixはデフォルトで、mysqlが利用できない。
パッチあてて、ソースからコンパイル。
$ mkdir -p ~/rpm/{BUILD,SOURCES,SPECS,SRPMS,RPMS/{i386,i486,i586,i686,noarch,ppc}}

$ echo "%_topdir $HOME/rpm" > ~/.rpmmacros

$ wget http://ftp.riken.jp/Linux/centos/5.2/os/SRPMS/postfix-2.3.3-2.src.rpm
$ rpm -ivh postfix-2.3.3-2.src.rpm
$ cd ~/rpm/SOURCE
$ wget http://vda.sourceforge.net/VDA/postfix-2.3.3-vda.patch.gz
$ gunzip postfix-2.3.3-vda.patch.gz
$ cd ~/rpm/SPECS

$ cp postfix.spec postfix.spec.org
 
$ diff postfix.spec.org postfix.spec
2c2
< %define MYSQL 0
---
> %define MYSQL 1
82a83
> Patch10: postfix-2.3.3-vda.patch
136a138
> %patch10 -p1 -b .vda

$ rpmbuild -ba postfix.spec

$ cd ~/rpm/RPM/i386/
$ rpm -ihv --force postfix-2.3.3-2.src.rpm

# RMagickにはImageMagickの6.3以上が必要
# CentOSにインストールされていたImageMagickは6.2
# ImageMagickの最新をソースからインストール
# 手順省略( 1. ダウンロード, 2.解答, 3. ./configure && make && make install
yum install ImageMagick-devel
gem install rmagick

gem install mysql にハマる5

Rails2.2.2では、mysqlがデフォルトでは使えず、

gem install mysql
をやれと言われました。

やってみる。

$ sudo gem install mysql
Building native extensions.  This could take a while...
ERROR:  Error installing mysql:
        ERROR: Failed to build gem native extension.

/usr/local/bin/ruby extconf.rb install mysql
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lm... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lz... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lsocket... no
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lnsl... yes
checking for mysql_query() in -lmysqlclient... no
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.

Provided configuration options:
        --with-opt-dir
        --without-opt-dir
        --with-opt-include
        --without-opt-include=${opt-dir}/include
        --with-opt-lib
        --without-opt-lib=${opt-dir}/lib
        --with-make-prog
        --without-make-prog
        --srcdir=.
        --curdir
        --ruby=/usr/local/bin/ruby
        --with-mysql-config
        --without-mysql-config
        --with-mysql-dir
        --without-mysql-dir
        --with-mysql-include
        --without-mysql-include=${mysql-dir}/include
        --with-mysql-lib
        --without-mysql-lib=${mysql-dir}/lib
        --with-mysqlclientlib
        --without-mysqlclientlib
        --with-mlib
        --without-mlib
        --with-mysqlclientlib
        --without-mysqlclientlib
        --with-zlib
        --without-zlib
        --with-mysqlclientlib
        --without-mysqlclientlib
        --with-socketlib
        --without-socketlib
        --with-mysqlclientlib
        --without-mysqlclientlib
        --with-nsllib
        --without-nsllib
        --with-mysqlclientlib
        --without-mysqlclientlib


Gem files will remain installed in /usr/local/lib/ruby/gems/1.8/gems/mysql-2.7 for inspection.
Results logged to /usr/local/lib/ruby/gems/1.8/gems/mysql-2.7/gem_make.out
失敗。。

どうやら、 mysql_configの場所を教えてあげないとダメらしい。

やってみる。

$ sudo gem install mysql -- --with-mysql-config=/usr/bin/mysql_config
Building native extensions.  This could take a while...
ERROR:  Error installing mysql:
        ERROR: Failed to build gem native extension.

/usr/local/bin/ruby extconf.rb install mysql -- --with-mysql-config=/usr/bin/mysql_config
checking for mysql_ssl_set()... no
checking for mysql.h... no
checking for mysql/mysql.h... no
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.

Provided configuration options:
        --with-opt-dir
        --without-opt-dir
        --with-opt-include
        --without-opt-include=${opt-dir}/include
        --with-opt-lib
        --without-opt-lib=${opt-dir}/lib
        --with-make-prog
        --without-make-prog
        --srcdir=.
        --curdir
        --ruby=/usr/local/bin/ruby
        --with-mysql-config


Gem files will remain installed in /usr/local/lib/ruby/gems/1.8/gems/mysql-2.7 for inspection.
Results logged to /usr/local/lib/ruby/gems/1.8/gems/mysql-2.7/gem_make.out
失敗。。

どうやら、 mysql-develが必要らしい。

インストールしてみる。

$ sudo yum install mysql-devel
Loaded plugins: refresh-packagekit
Setting up Install Process
Parsing package install arguments
Resolving Dependencies
--> Running transaction check
---> Package mysql-devel.i386 0:5.0.51a-1.fc9 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

=============================================================================
 Package                 Arch       Version          Repository        Size
=============================================================================
Installing:
 mysql-devel             i386       5.0.51a-1.fc9    fedora            2.4 M

Transaction Summary
=============================================================================
Install      1 Package(s)
Update       0 Package(s)
Remove       0 Package(s)

Total download size: 2.4 M
Is this ok [y/N]: y
Downloading Packages:
(1/1): mysql-devel-5.0.51a-1.fc9.i386.rpm                                                                                                                                                  | 2.4 MB     00:00
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing     : mysql-devel                                       [1/1]

Installed: mysql-devel.i386 0:5.0.51a-1.fc9
Complete!
お、入った。

で、やってみる

sudo gem install mysql -- --with-mysql-config=/usr/bin/mysql_config
Building native extensions.  This could take a while...
Successfully installed mysql-2.7
1 gem installed

よし、OK

Rails 2.2 で RubyGemsがどうのこうのと言われて。。5

Rails2.2で、試しにアプリを起動してみたら、
Rails requires RubyGems >= 1.3.1 (you have 1.2.0). Please `gem update --system` and try again.
と、言われたので、
$ sudo gem update --system 
とすると、
Updating RubyGems
Nothing to update
と言われた。
言われたとおりにしたのに。。

解決策

こうしたら
$ sudo gem install rubygems-update
Successfully installed rubygems-update-1.3.1
1 gem installed
出来た。
意気揚々と
$script/server
Rails requires RubyGems >= 1.3.1 (you have 1.2.0). Please `gem update --system` and try again.
ええええっ
$gem --version
1.2.0
やっぱり。。
ぐぐってみた。
Rails 2.2.2 と RubyGems 1.3.1 と rubygems-update - Rubyとか Illustratorとか SFとか折紙とか
Rails 2.2.2 と RubyGems 1.3.1 と rubygems-updateComments
と、言う事で、
$sudo update_rubygems
...いろいろやって...
If `gem` was installed by a previous RubyGems installation, you may need
to remove it by hand.

$gem --version
1.3.1
$ script/server -p 4000
=> Booting Mongrel (use 'script/server webrick' to force WEBrick)
=> Rails 2.2.2 application starting on http://0.0.0.0:4000
=> Call with -d to detach
=> Ctrl-C to shutdown server
** Starting Mongrel listening at 0.0.0.0:4000
** Starting Rails with development environment...
** Rails loaded.
** Loading any Rails specific GemPlugins
** Signals ready.  TERM => stop.  USR2 => restart.  INT => stop (no restart).
** Rails signals registered.  HUP => reload (without restart).  It might not work well.
** Mongrel 1.1.5 available at 0.0.0.0:4000
** Use CTRL-C to stop.
解決しました。ありがとう!!

プログラムとデザインの分離とはいっても5

PHPやJavaのJSPやRubyのeRBのクールじゃないところ - 矢野勉のはてな日記
彼らはHTMLファイルにコードを書くことをなんとも思ってないんだね。もちろん、プログラマからすればその方が早いのかもしれないけどね、私には「HTMLはプログラマのものなの?」という思いがあります。

ちょっと古い記事を目にしてしまった。。
これについて、 ちょっと語ってみる。

この記事に書かれている。

  1. デザイナをプロとして尊重する。
  2. プロダクトに於いて、デザインは重要。
  3. ビジネスにおいては、成果を挙げる為には、デザインが優れている事は重要。
  4. 僕もそう思っている。

    では、デザイナとは何であろうか? 会社のロゴマークや商品のパッケージ もそうだが、デザインとは芸術的創造物とは ちょっと違う。

    個人のセンスを表現する場所ではなく、 ユーザにとって価値のあるものを創造するという 視点が重要だと思う。

    優秀なWEBデザイナは本当にすごいと思う。

    そのプロダクトのコンセプトにマッチていて、 心地良さすら感じさせてくれるデザインをする。

    そして良く見れば、そこには徹底的に拘り尽くされた 様子さえ垣間見る事ができる。

    デザインとはそういうものだと思う。 だから、「デザイナはHTMLCSSで勝負しているんだ!」と、決め付けてしまうのは良くない。 (そういう人が居る事は事実だが。) Windowsのクライアントアプリケーションの画面デザインや、 Flashでの画面デザインなど、 画面という物一つとってもあらゆる手段とツールがある。

    だから、JSPにしろWikietにしろRailsにしろ 画面デザインの領域に必要な構造化やスクリプトは あってよいのだと思う。

    何も、HTMLCSSだけを 生業とする人の為だけに、 分離をがんばってやったり、 その為にプログラマの負担を増やしたりする必要は無いと思う。 つまり、「HTMLCSSが出来る人が、WEBデザイナであり、 それ以外ができなくてもOK」という考えを改めるべきだと思う。

    「別に、JSPのタグが入っていてもOKですよ。」 というデザイナが居たっていいし、多分それよりはるかに 複雑なコーディング(デザインの世界では、HTMLを作成する事をコーディングと呼ぶらしい)をしているデザイナーは山ほど居る。

    それに、そもそもJavaScriptは良いのかという話にもなる。

    多分もうすぐ、 というかもうなってるかも知れないけど、
    jQuery等JSライブラリはデザイナーは必須の知識になるのではないだろうか。

    そうなれば、JavaScriptが良くてJavaが駄目な理由はないだろう。

    重要な事は、 デザイナだって作りながら確かめながらを、 繰り返すわけで、その作業に弊害のない環境を 用意する事

    そういう意味で、JSPは実行させるための手順が多く、 敷居が高い気がする。 デザインツールとEclipseを同時に起動するってのもつらい気がするし。。

    Rubyならツールの支援はさらに、まだまだ感が強い。 でもそれは、需要の問題だから、欲しい人がいれば出来るのも 時間の問題でしょう。

    当然ながら、普通のHTMLとしてあつかえ、ブラウザで起動すれば 表示を確認できるという、Wiketが、そのような点において優れている事については何の異論もない。

    でも、フレームワークて、そういう要因だけで決められるほど 単純なものじゃないよね。
    ひとつの要因ではあるけど。

    社内にRailsが得意な人が居て、
    HTMLとCSSが得意な人が居たら、
    別にRails止めさせる必要ないだろうし、 デザイナが頑張ってERB覚えた方が、絶対良いよね。

    だから、ビジネス的に考えるなら、 あまりそこに拘らないほうが良いよという話。

    HTMLはデザイナだけの物でもないし、
    プログラムはプログラマだけの物でもない。

bookmarkletが難しい。。

Googleの翻訳APIを利用して、
翻訳ブックマークレットを作ろうとしたんだけど、
ブックマークレットを実行すると、画面が遷移しようとしてしまう。
javascript:(function(){ 

  if (!window.google || !window.google.load) {
    var script = document.createElement('script');
    script.src = 'http://www.google.com/jsapi';
    document.body.appendChild(script);
    var callee = arguments.callee;
    var interval = setInterval(function() {
      if (!window.google || !window.google.load) return;
        clearInterval(interval);
        interval = null;
        callee();
      }, 100);
  } 
  google.load("language", "1");

})();

これって何だろう??

2時間位格闘したけど、挫折。。。
google.load("language", "1");
で画面が遷移してしまい、真っ白になってしまう。

誰かヘルプ!!

Googleバブルがはじける日

Googleのサービスはもうギリギリだと思う。

このままサービスを手広くやっていくと、 検索+広告というGoogleの主戦場を奪われる事になる。 広告主が離れれば、Googleは終わるわけだけど、 当面離れる事は無いとはいえ、増え続けると考えるのも苦しい。 そろそろ、足場を固めないと痛い目にあう気がする。

もしGoogleが無くなったら。

こんな日が想像できなくなるくらい、 バブルは大きくなってしまった。

はじけるのは時間の問題なんじゃないか。

何の説得力も根拠もない、このエントリーだけど、 その日はそんなに遠くない未来にあるような気がする。 価値の下がってしまったGoogleを、その時の価値からして、 破格で買収する企業がもし現れるとしたら、 それは次のWebの時代の幕開けかもしれない。 そんな予感がしました。

PKIの公開鍵暗号技術の誤解しがちなところ2

タイトルのとおりPKIの公開鍵暗号技術です。

誤解している人が居た。

でも、暗号化について、意味や役割を誤解しがちなんじゃないかなぁ。
と思ったのでまとめてみる。

  1. AさんがBさんに
  2. 電子的な何かを
  3. 電子的な方法で渡す。
時の話です。

僕がBさんだとします。
Aさんという相手は不特定多数だとします。

僕が電子的な何かを外部に漏れることなく 届けて欲しいと思ったとします。

その時の流れは以下

  1. 僕が公開鍵を公開する。
  2. Aさんが公開鍵で暗号化する
  3. Aさんが電子的な方法で送る
  4. 僕が秘密鍵で複合化する
という流れです。

で、これによって誰のどんなリスクがヘッジされるのでしょうか。

ここで勘違いしやすいのは 僕は、その内容が外部に漏れる事について何の安心もできない。 という事です。

そもそもAさんが暗号化して送ってくれないかもしれません。

送られてきたものが本当にAさんからかどうかもわかりません。

つまり、そもそも

僕が電子的な何かを外部に漏れることなく 届けて欲しいと思ったとします。
こう思って、 その手段として公開鍵暗号技術を使おうとした事が間違いです。

では、どういう時に有効なのか。

  1. Aさん(不特定多数)が秘密にしたい電子的な何かを
  2. Bさん(僕)に対してのみに送付したい時

です。

じゃあ、公開鍵を用意したり、送られてきたものを複合化したり わざわざ僕がするのにはどんな意味があるのでしょうか。

それは僕だけに秘密の内容を送りたい人にとって安心して送ってもらえる という事です。
でもこれは、僕が信頼されていないと話が最初に戻ってしまいます。

公開鍵暗号技術で何ができて何ができないのか。
クリアにしましょうね。

言葉を定義する責任

GoogleMapのマイマップが非公開に設定しても、 見れてしまう。 らしいです。
で、昨日のブログに以下のようなエントリーがありました。

Google Japan Blog: マイマップの公開設定をご確認ください
マイマップは、カスタマイズした情報をインターネット上で共有することが目的のサービスですので、初期設定は「一般公開」になっています。一般公開と設定すると、全世界のインターネットユーザーとその情報を共有することができ、検索の対象となります。また、限定公開とした情報は、作成者がマップの URL を家族や友人など、自分が決めた範囲の人と共有したり、さらに、「一緒に編集」と設定すると、他の人も情報を入力したりすることができます。

そして現在(5日 午前8:00)のマイマップの説明

Google Maps

公開マップと非公開マップ

地図は公開にも非公開にもできます。

公開マップはインターネットに公開された地図で、誰でも見ることができます。 また今後、公開マップは Google マップおよび Google Earth の検索対象に含まれるようになります。

非公開マップとは、選択した一部の人とだけ共有する地図のことです。 非公開マップは検索結果に含まれないので、このマップへのアクセスは非公開の電話番号のようになります。つまり、非公開マップを検索できるディレクトリ サービスや検索サイトはなく、地図固有の URL をあらかじめ知っている人だけがアクセスできます。

この設定はいつでも変更できます。 ただし、すべての地図には公開用 URL があることに注意してください。 原則として、誰にも見られたくない地図はここで作成しないことをお勧めします。

ブログでは、

「非公開」だとわかりづらいというご指摘をいただき、「限定公開」と文言を変更しました。

としているのに、マイマップの説明では変わっていない。
Google側の説明が理解できなくはないが、言葉を正確に定義する必要がある。
Googleにとっては、「公開」とは、「検索によって探し出せる。誰にでも見つけられるようにしますよ。」という意味なのだろう。
しかし、一般的に非公開と言われれば、特にアカウントをもてるGoogleのサービスに於いては、「非公開」といわれて、Googleが主張する意味に捉える人はほとんどいないのでは?と思う。
例えば僕は、知り合いに、「マイマップって非公開にすると、自分以外見れないの?」と質問されれば、「非公開だからそうなんじゅない。」とアドバイスしてしまう。いちいち、マイマップの説明を見に行って、「非公開」の意味を改めて調べる事はしない。

「限定公開」と「非公開」は全然違うし、これを、「わかりにくいから変えました。」というのは、あまりにも説明が不適当だと思う。

じゃあGoogleドキュメントは?
とか、心配になってしまう。

言葉を選ぶ事の重要さについて考えされられた。

続きを読む
livedoor プロフィール
記事検索
読書をしよう
楽天市場
こちらもどうぞ
Archives
RSS
  • ライブドアブログ