drupalのアップデート

drupalの6.17から6.20へのアップデートを実施した。

ウェブ上では、こことか、ここ
に情報があるが、drupal-6.20/直下のファイルをdrupal-6.17/にコピーしてみても状況は変わらず。
かといって、drupal-6.20/配下で上書きするのもちょっと怖い。

で、以下の作業を実施。

# cd /home/xxxxxx/
# tar -zxvf drupal-6.20.tar.gz
# cp -R drupal-6.17/sites/default/files/* drupal-6.20/sites/default/files/   <-- アップロードしたイメージ等のコピー
# cp -R drupal-6.17/sites/all/* drupal-6.20/sites/all                        <-- サイトのモジュール・テーマ等のコピー
# cp  drupal-6.17/sites/default/settings.php drupal-6.20/sites/default/settings.php <-- DBへの接続情報等のコピー
# chown -R daemon:daemon drupal-6.20/*                                       <-- ファイルオナーの変更
# rm /var/www/html/drupal                                                    <-- シンボリックリンクを張り直す
# ln -s /home/xxxxxx/drupal-6.20 /var/www/html/drupal

使っているテーマはacquia_slateで、トップページのバックグラウンドのイメージは
druapl-6.20/sites/all/themes/acquia_slate/images/cropped/seascape.jpg を入れ替えるか、
drupal-6.20/sites/all/themes/acquia_slate/cssfusion-acquia-slate-style.css
  background: url(../images/banner/seascape.jpg)を変更する。

dynabook AZにubuntu10.10 その2

ググってみると、上手くいったとかいかないとか、色々。

http://shanghai.at.webry.info/201012/article_1.html

http://tosh-ac100.wetpaint.com/thread/4304927/can't+set+network(wifi)
を参考にして、
echo 1 > /proc/test_program/wifi3g
を実行してみたが、プロンプトが帰ってこない。ただし、wifiのインジケータランプは点灯したのだけれど、接続は出来ない。というかドライバを認識していない感じ。(日経Linuxの記事にあったLXDEの場合、アクセスポイントを検索にはいっていたが、今回はそれがない。)

dynabook AZにubuntu10.10

無線LANが接続できないので、ドライバをインストールする。
とりあえずubuntu10.10の環境でメイクして出来たドライバをコピーすることにして、
http://www.ralinktec.com/support.php?s=2

2011_0107_RT3070_RT3370_Linux_STA_v2.5.0.1_DPO.tar.bz2をダウンロードして、
tar xvlf 2011_0107_RT3070_RT3370_Linux_STA_v2.5.0.1_DPO.tar.bz2
で解凍。
cd 2011_0107_RT3070_RT3370_Linux_STA_v2.5.0.1_DPO
でmakeしようとしたら、gccがない。
で、パッケージをインストール。
次は、

make -C /lib/modules/2.6.35-22-generic/build SUBDIRS=/home/kkijiya/dynabook/2011_0107_RT3070_RT3370_Linux_STA_v2.5.0.1_DPO/os/linux modules
make: *** /lib/modules/2.6.35-22-generic/build: No such file or directory.  中止.

となったので、linux-headers-2.6.35-22-genericをインストール。
これでmakeが出来た。
で、
os/linux/rt3070sta.ko
RT2870STA.dat
dynabookにコピーして、

cp rt3070sta.ko /lib/modules/2.6.29-arm2-ac100/kernel/drivers/net/wirelss/
depmod -a
mkdir -p /etc/Wireless/RT2870STA
cp RT2870STA.dat /etc/Wireless/RT2870STA

で再起動したけど、認識してくれない。
さて、どうしよう。

Railsで多対多のモデル

去年からずーっとこの課題でひっ掛かっている。

Mail -> MailUser <- Userのモデルを考えてみる。
スキーマは以下

  create_table "mail_users", :force => true do |t|
    t.boolean  "active"
    t.integer  "user_id"
    t.integer  "mail_id"
    t.datetime "created_at"
    t.datetime "updated_at"
  end

  create_table "mails", :force => true do |t|
    t.string   "title"
    t.text     "comment"
    t.date     "write_date"
    t.datetime "created_at"
    t.datetime "updated_at"
  end

  create_table "users", :force => true do |t|
    t.string   "name"
    t.string   "email"
    t.datetime "created_at"
    t.datetime "updated_at"
  end

modelは以下

class Mail < ActiveRecord::Base
  # has_many for user through mail_user
  has_many :mail_user 
  has_many :user, :through=>:mail_user
  # nested attribute
  accepts_nested_attributes_for :mail_user
end

class User < ActiveRecord::Base
  # has_many for user through mail_user
  has_many :mail_user 
  has_many :mail, :through=>:mail_user
  # nested attribute
  accepts_nested_attributes_for :mail_user
end

class MailUser < ActiveRecord::Base
  belongs_to :mail
  belongs_to :user
end

それぞれをscaffoldで作成してmigrateでDBを作成して、テスト用のデータを登録して。

さて、MailのShow画面で、関連するユーザ名を表示する画面に挑戦。
まずは、Show画面でMailUserのindex画面を表示する事から。
partialを使うので、view/mail/show.html.erbを

<p>
  <b>Title:</b>
  <%=h @mail.title %>
</p>
<p>
  <b>Comment:</b>
  <%=h @mail.comment %>
</p>
<p>
  <b>Write date:</b>
  <%=h @mail.write_date %>
</p>
ここから
<div id="mail_users">
  <%= render :partial=>"mail_user_index", :locals=>{:mail_users=>@mail.mail_user} %>
</div>
ここまでを追加
<%= link_to 'Edit', edit_mail_path(@mail) %> |
<%= link_to 'Back', mails_path %>

と修正して
view/mail_user/index.html.erbをview/mail/_mail_user_index.html.erbにコピーして

<h1>Listing mail_users</h1>
<table>
  <tr>
    <th>Active</th>
    <th>User</th>
    <th>Mail</th>
  </tr>
<% mail_users.each do |mail_user| %>  @mail_usersをmail_usersに変更
  <tr>
    <td><%=h mail_user.active %></td>
    <td><%=h mail_user.user_id %></td>
    <td><%=h mail_user.mail_id %></td>
    <td><%= link_to 'Show', mail_user %></td>
    <td><%= link_to 'Edit', edit_mail_user_path(mail_user) %></td>
    <td><%= link_to 'Destroy', mail_user, :confirm => 'Are you sure?', :method => :delete %></td>
  </tr>
<% end %>
</table>
<br />
<%= link_to 'New mail_user', new_mail_user_path %>

このままでは、User_IDとMail_IDを表示する事は出来ても、ユーザ名が表示できないので、以下のように修正

<table>
  <tr>
    <th>Active</th>
    <th>User Name</th>
    <th>     Address</th>
  </tr>
<% mail_users.each do |mail_user| %>  @mail_usersをmail_usersに変更
  <tr>
    <td><%=h mail_user.active %></td>
    <td><%=h mail_user.user.name %></td>   <- belongs_to でuserと連携できる
    <td><%=h mail_user.user.email %></td>     <- のでuser.nameとuser.emailを参照
    <td><%= link_to 'Show', mail_user %></td>
    <td><%= link_to 'Edit', edit_mail_user_path(mail_user) %></td>
    <td><%= link_to 'Destroy', mail_user, :confirm => 'Are you sure?', :method => :delete %></td>
  </tr>
<% end %>
</table>

Dell mini12にpeppermint iceを

寒いとキーボードがチャタリングを起こすので使いづらいmini12に、
試しにpeppermint icdをインストールしてみた 
以前、chromium OS Zeroをインストールしてみた時は、レスポンスが悪すぎて諦めたのだけれど。

意外とサクサクインストール出来て、起動もそこそこ。使ってみてもレスポンスは良い。
ただ、無線LANの設定でちょっとハマった。
参考にしたのはここ
設定ー>HardWare Driversを起動すると
Broadcom B43 wireless driverと
Broadcom STA 無線ドライバ
の2つの選択肢が表示される。以前のバージョンの記事ではSTAを選択するとなっていたが、ダウンロード先に該当するファイルが無くてインストール出来なかった。
で、B43を選択すると自動でドライバをダウンロードして無線LANに接続できるようになった。
また、日本語の入力は
設定->Language Supportで言語のインストールで必要なパッケージを自動でインストールしてくれて、ログインしなおすと使えるようになった。
と、言うわけでmini12から無線LAN接続で投稿して見ました。

Desireのroot化

HTC Desireのroot化にチャレンジしてみたけれど、上手く行かない。
HBOOTが0.9.3なのが問題なのか?
参考にしたサイトは以下の通り。

http://qtotter.wordpress.com/2010/08/11/one-click%E3%81%A7htc-desire%E3%82%92root%E5%8C%96/

http://qtotter.wordpress.com/2010/07/27/pc%E3%81%AA%E3%81%97%E3%81%A7desire%E3%82%92%E3%83%AA%E3%82%AB%E3%83%90%E3%83%AA%E3%83%BC%E3%83%A2%E3%83%BC%E3%83%89%E3%81%AB%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/

http://qtotter.files.wordpress.com/2010/08/hboot-driver.pdf

http://www.anylog.jp/unrevoked3%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%9F%E3%80%81desire%E3%81%AE%E7%B0%A1%E5%8D%98root%E5%8C%96/

http://www.unrevoked.com/recovery/

で、ubuntuでunrevokedを試してみた。Desire側で設定->アプリケーション->開発->USBデバッグにチェックをつけた状態で、USBに接続。接続タイプは充電のみ。
この状態で、ubuntu側で
# sudo ./reflash
unrEVOked recovery reflash tool
git version: 8b5c9e4
ERROR: n = -1, errno = 19 (そのようなデバイスはありません)
ERROR: n = -1, errno = 19 (そのようなデバイスはありません)
ERROR: n = -1, errno = 19 (そのようなデバイスはありません)

Desierは何度かrebootを繰り返した後に、unrevoked3の画面でdoneが表示された。
何とか上手くできたようなので、まずはバックアップ。

ボリュームダウン+電源で起動して、RECOVERYを選択、グリーンのメニューからbackup and restoreを選択して、バックアップを作成した。

ただし、この状態でAPP一覧にはsuperuser permissionが出来ていて、BusyBoxにも許可がされているのだけれど、BusyBoxのインストールでエラーが発生。
結局、root化できたけど、BusyBoxが動かせなきゃあまり嬉しくないし。

辞めます!

この12月20日をもって、会社を辞めます。

 でも、かなりモヤモヤしてます。はっきり言って会社に辞めさせられたって気分です。まあ、最終的に結論を出したのは自分なんだけれど、「これ以上会社に何かを期待しても仕方がないなぁ」って思って辞めるのって、やっぱりフラストレーションが溜まりますね。

 以前から、色々と「この会社おかしいよなぁ」とは思っていたんだけれど、36協定の内容を従業員の誰も把握していなくて、総務の課長が作って、事務の社員が印鑑押して出していた。考えてみれば就業規則も、労働者側の代表者は誰が了承したんだろう。不思議だ。
 そして、私の給料は、入社した時に「まだ実力が判らないから、月30万円の固定給から始めて、随時見直し」と言われて始まったのだけれど、結局見直しで2万円ポッチ上がったっきり。予算も権限も人事権も部下もいない部長になった時期に2万円の手当が付いていたけれど、何時間残業しても固定。

 そこで、今年の10月に申し入れをして、過去2年間分の未払い残業代を払ってもらう事にした。その後、色々とやり取りがあった後に、11月18日に未払いの残業代は全額払うが、解雇だと言い渡された。解雇の理由は、月32万の基本給に残業代まで払う事になると、会社の単価に見合わないという物。
 はっきり言って、解雇権の乱用と言える内容だった。改めて解雇理由証明書と解雇通知書を出してもらったのだが、理由としては中途採用の際のやり取りを例にあげて、コストが合わないなら解雇やむなしという論調。
 で、「労働基準監督署にお願いして調停を申し込みます」と言ったら、翌々日の金曜日、会社の忘年会の席で社長から、月曜日に会って話をしようと言われた。

 月曜日、どんな話が出てくるのかと期待していたが、ウダウダとたとえ話や昔の苦労話を延々とされてうんざり。
 結局のところ、解雇は撤回するが、「一方的に残業代を請求してきて、社内の雰囲気を壊してしまって、冷静になれない者がいるから、一旦退社して云々」いやいや、冷静になれていないのは社長だけだって。
 とりあえず、回答は保留して、水曜日に再度話をすることにした。
 この時点では、給与の改定なんて話は無かったんで、解雇が取り消しになったんだったら、自分から辞める理由はないと思っていた。

 さて、水曜日。辞めずに続けますと言ったら、「じゃあ、給与の条件についてだが、固定給には30時間分の残業時間を見込んでいたので、残業時間無しなら基本給は27万」だと。
(30hを超えた分に関しても残業代が支払われた事は一度もなかったので、そんな基準があった事は今回初めて知ったけど)

 私が言いたかったのは、
・固定給とは言え、規定時間(173.8h)以上の労働に対しては残業代を払わなければならない。
・ただし、固定給の中に一定時間分(今回の話で言えば30h)の残業代を含む事を明記することで、労働基準法に従って、コストを抑えた運用が出来る
・この事を含め、残業時間の算出方法などを就業規則に明記するべきだ。
という3点。

 これに対して社長の意見は、
・固定給は、会社への貢献度、忠誠度、信頼度の高い特定の社員にのみ適用される制度
・固定給の目的は、病気による長期の休養や介護に関わる休暇等をとっても、安定した給与を約束する事で、これは社長から社員へのプレゼントだ。1ヶ月まるまる休んでも給与は減らない(初耳だが)。
・誰でもが固定給に成れるわけではないので、就業規則に明記するのはそぐわない。
というもの。
 そして、「固定給を貰っている社員からは感謝の言葉を貰っていて、この制度に不満なんて言う奴は一人もいない」自慢の制度だそうだ。
 一見、もっともな気もするが、そんな給与制度を恣意的に運用できる事が問題なんじゃないかな?しかも、一般の社員に知らせない制度。「知らせても誰でもが成れる訳ではないから、知らせない」という理論もおかしいのではないだろうか。成れる成れないではなく、どういう制度があるかを明確にするのが就業規則のはず。「社長の権限で対象者を選定する」と一言書けば良いだけではないかと思うのだが、そうも行かないらしい。
 また社長本人が、「誰でもが成れるわけではない役員的な待遇」と言っていたけれど、「役員的な待遇」が32万じゃね。
 それに、固定給を貰っている他の3名は、基本的に残業の発生しない様な業務の人達。250hとかの残業をこなしてきた私と一緒に扱うのは不平等じゃないだろうか。
 それで、「自分の権利だけ主張して、会社の利益を考えないような社員には固定給を与えるわけにはいかない」という理屈で、一般の月給制に変更するというのは、恣意的な運用だと思うのだがどうだろう。
 まさに、こういう運用を防ぐために労働基準法があるのだと思うのだけれど、社長曰く「労働基準法なんて守っていたら、中小企業の半分は潰れてしまいますよ」だそうな。
 この会社のコンプライアンスはどうなんだろう。
 就業規則について、社会保険労務士の先生から改訂するべきとの指摘があるらしいが、「そんな細かい事まで決められたら、自由に出来なくなってしまう」から、「その内おいおいと」だという。

 社長の求めている社員は、会社の発展のためには、自分の残業代を会社に請求せず、社長の言う事には一々ごもっともと言い、何かあれば「社長のご配慮」に感謝をする者だけらしい。まさに滅私奉公って感じだ。

 これが、明確なビジョンを持って、日頃からコミュニケーションも採れていて、カリスマ性のある社長ならいざ知らず、「サービスのブランド化を計る」なんて、どこぞの経営雑誌ででも拾ってきた様な「夢」を忘年会の席で20分に渡って披露している様な社長では、とてもとても。

 だって、この会社のどの技術を「ブランド化」するんだろう?社内には、目ぼしい技術者も殆ど残っていない。
 私が辞めたら、コードの書ける技術者は4名か?だから仕事が来ても社内には対応出来る技術者がいないので、協力会社から人を集めたり、仕事に合いそうな人間を雇っているような状況。
 しかもその仕事が終わったら、次に仕事が見つけられずに「依願退職」という名の解雇するくらいしか手が無いのでは、単に「ソフトウェア専門の派遣会社」って位でしかないと思う。

 よしんばそれでいくならいくで、「他の派遣会社とは、こういう点で差別化を図って」がないと「ブランド化」は出来ないと思うのだけれど、8年間勤めてきて一向にそういった明確なビジョンが出てきた試しがない。
 いや、正確にはそんな気配があった事もあった。一時期は「サポート業務」という看板を掛けていた事があって、とても威勢の良い儲け話を聞かされていたが、いつの間にか看板は「競争入札」に掛け変わっていたし、すでにその看板を背負っていた社員が退社した事は、きっと「社員が知らなくても良い」内緒の秘密なんだろう。
 結局、目の前にある仕事にしか反応できなくて、その事を「明日の飯よりも今日の飯」と言って憚らない。

 そんな話をされた上に、「忙しい私がわざわざ、一社員の君のために時間を作って話をしてやっているのに、全然乗ってもこないし、腹を割って話もしない。」なんて言われて、「いやぁー、感服しました。社長の為に頑張らせて貰います」なんて、とても言えません。いや、そう言えるのが「大人」な事なのかも知れないし、利口な事なのかも知れないけれど、それが判っていても「潔い」事の方が私には大事だと思った。

そう言う訳で、私は「謹んで」退社させて頂きます。
でも、きっと社長は言うんだよなぁ「あんな社員、やめさせておいて良かったよ」って。それが口惜しいなぁ。