2012年05月16日

サーバ復旧。。。

長らく調子の悪かったサーバをほぼ完全にリプレースしまして、ようやく復帰いたしました。実際の所、去年くらいからだましだまし使っていたのですが、最後のダウン時にHDDのデータが破壊されてしまい、昨年のバックアップで再開となりました。(とはいってもほとんど書いていませんでしたが...)

まだセットアップが完全ではありませんが、これで運用していくことにいたします。

停止中にご覧頂いた方々からメールを頂きました。本当にありがとうございました。

今後ともよろしくお願いいたします。

 

今まで働いてくれていたのはそこそこ古いAthlon64マシン。今回はPentium630Tで組み直し。かかったお金はおそらく半分近いのにメモリも速度も倍増以上で消費電力は下がっているという感じ。ASUSの全部固体コンデンサのマザーなので夏場も大丈夫だろうと期待です。新しいものはホントに良いですね。

2011年10月18日

AirPrint Activator2でMacOSX LionでiPhone/iPadから印刷出来るように

MacOSXにつないだ普通のプリンタにiOSデバイス(iPhone/iPad)から印刷するには、以前はAirPrint Hacktivatorというソフトで設定していたのですが、Appleからツッコミが入ったらしく、新たにAirPrint Activatorとなっています。Lion対応したAirPrint Activatorのv2を使ってみました。

上のリンクからv2.1b2をもらってきてEpsonのプリンタを繋いだMac miniにインストール。

ほとんど書くことがないのですが、起動すると接続されているプリンタを認識するのでこれをONにするとあっさりiOSから認識出来プリント可能に。
一旦ONにするとソフトを落としても大丈夫のようです。

Donationを求められるのですが、MacのAppStoreで買えたら嬉しいのだけど... 

2011年10月14日

祝Ubuntu 11.10リリース

Ubuntu 11.10が今回も無事にリリースされましたね。すっかりデスクトップLinuxとしてトップの座を安定的にキープしていて喜ばしい限りです。

個人的に今回のリリースで一番といっていい位に嬉しい変更はデフォルトのメーラがEvolutionからThunderbirdになったこと。Evolutionはいつまでたっても日本語では使えませんでしたからね。またUIや検索機能(Spotlightライク)などますますMac化が進んでいます。New Featureの紹介でも内容がUI重視になっておりkernel 3.0やらbtrfs等にはあまり触れられていないのが印象的です。

今回のリリースで面白いのはトップページから辿ることが出来る"Take the tour"。これは単なるスクリーンショットではなく、なんとUbuntuのライブデモになっています。"Show yourself around"をクリックして是非ツアーに出てみてください。左のランチャーからいろいろ楽しめます。

またCloudやServerへの注力がますますはっきりしてきましたね。私的にはサーバへの採用は正直少し控えていたのですが、定期リリースが安定していること、LTSのサポートもちゃんとされていることなどから、遅まきながら次のLTS位からそろそろサーバに採用しようかな?

ところでこのライブデモは自分で構築出来るのか。iPadからもなんとか使えたのでvnc代わりに使えそうな感じ。ちょっとインストールしてつついてみようと思いつつ。

2011年10月13日

Dennis Ritchie氏ご逝去

なんていうのか、思うところが多すぎる衝撃的なニュースが

C言語の開発者、K&R本の'R'として知られており、初期のUnix開発にも参加しておられたdmrさんがお亡くなりになったとのこと。C言語、Unixの思想を著したK&Rは単なるCの解説書というだけではなく、彼らの重要なソフトウェア技術、プログラミング哲学を表した名著。もちろん直接の面識があったわけではありませんが、若い頃に彼らの著書やコードを熟読、勉強させて頂き、今の自分の礎となったと思っています。

私などが書くまでもなく、C言語とUnixの功績は今のコンピュータ分野を形作ったといっても過言ではないほどの重要なものの一つ。リッチーさんたちがいなければC/C++/Javaもなく当然JavaScriptもなく、MacOSXもiPhoneもLinuxもWindowsすら存在していなかったでしょう。デスクトップ分野では素のC言語のシェアは減っていますが、今でも組み込み分野では中心的存在。現在の世界中のテレビや車などを含めたコンピュータを使う機器のほとんど全てが彼(ら)の恩恵を受けていると言っても過言ではない状況でしょう。dmr氏はコンピュータの世界の'車輪'ともいうべき重要なものを作った方の一人として永遠に記憶されると信じます。

 

少し調べていたら米Motorola社を大きく育て上げた元CEOのRobert Galvin氏も10/11にお亡くなりになっているようです。Jobs氏といい先駆的な方々が次々とお亡くなりになりそうな時期になって来ました。彼らがUnixやCを開発してから約40年、AppleIIからでも30年とちょっと。その間にコンピュータは当時最先端のPDPやその後のMac等とは比べものにならないほど強大な性能を持つようになり、Unixの末裔とも言えるOSで制御されて、ポケットの中にすら収まるようになりました。常時インターネットに接続されて相互につながり、一部マニアや専門家のものから生活やビジネスの道具へと変化。人や社会のあり方を大きく変えてしまいました。これも彼らの功績、だとすればこれからの40年はどういったものになるのでしょうね。今彼らに相当する人達はいるのだろうか?

ともあれ、ご冥福をお祈りいたします。

2011年10月11日

Google Dart言語をMacOSX Lionにインストールしてみたメモ

先日(2011/10/10)公開されたGoogleの新言語DartをMacOSX 10.7.1 Lionにインストールしてみたので備忘録。

ざっくりというとGoogle Dart言語はJavaScriptとJava/C++の中間的な言語。動的な型の変数だけでなく静的な型も使え、クラス/インターフェースなどを持ち文法的にはC/C++系です。JavaScriptの代替とサーバサイドでのスクリプティングの両方を目指しているようです。詳しくは上の本家ページを見てみればわかりますが、Hello Worldなんかは一見して普通にC系言語ですね。

dartの開発環境はdartソースをコンパイルし結果をJavaScriptで出力するコンパイラdartcとインタープリタ(VM)のdartとd8です。dartcでは出来たjsをブラウザ等のJavaScript実行環境で走らせることができます。いずれChrome等にvmが内蔵されるとコンパイルの必要なくブラウザ内でJavaScriptと同様に走らせることが出来るようになると思われます。

当方のコンパイルした環境

  • MacOSX 10.7.1 Lion
  • Xcode 4.1
  • MacPorts

手順(gsutilのあたりはかなり適当...)

ビルドのための手順が上記Google Codeのwikiに書いてありますが、少しだけ手間がかかったので以下にメモ。

  1. 必要なツールのインストール
    MacBuildInstructions - chromium - Build instructions for Chromium on Mac OS X - An open-source browser project to help move the web forward. - Google Project Hosting
    ここにはXcode 3.2.3+を推奨で4はおすすめでないとありますが、今更面倒なので無視
    sudo port -uvc install git-core +svn
    sudo port -uvc install depot_tools
    sudo port -uvc install gsutil

  2. ソースの入手
    gclient config http://dart.googlecode.com/svn/trunk/deps/all.deps
    gclient sync

  3. 最後にDumpRenderTreeがダウンロード出来ないとかgsutilがどうたらとWARNINGが出たら
    ./dart/third_party/gsutil/20110627/gsutil config

    とするとなにやら長いURLが出てくるのでブラウザで開く。
    googleのアカウントでログインしてgsutilを認証し、出てきたコードをgclientのauthorization codeにコピペ
    project-idは空でリターン
  4. 再度gclient sync
  5. cd dart
  6. Lionの場合SDKが10.6なので
    GYP_DEFINES='mac_sdk=10.6' gclient runhooks
  7. 後はビルド
    ./tools/build.py --arch=ia32
  8. テスト
    ./tools/test.py --arch=ia32,dartc,chromium
  9. 詳細はつついていませんが一箇所テストに失敗しました。気持ち悪いですがなんとか使えているようです。エラーメッセージは以下のとおり
    === Debug_ia32 vm/Mutex ===                                                   
    Path: vm/Mutex
    Running test: Mutex
    <DART>/dart/runtime/vm/thread_macos.cc:132: error: expected: result == 0
    Command: <DART>/dart/xcodebuild/Debug_ia32/run_vm_tests Mutex --ignore-unrecognized-flags
    --- CRASHED ---
  10. buildで--arch=x64とするとdartcは動作するがdartが動かないという結果
  11. コンパイル結果は./dart/xcodebuild/Debug_ia32以下に。

使ってみる

  1. パスを通す
    export PATH=<DART>/dart/xcodebuild/Debug_ia32:$PATH
  2. d8と叩くとjsのreplらしきものが起動しますのでちょこっと遊ぶ
  3. コンパイルしてみる。dartcはoptimizeをつけると劇的に小さなjsファイルを生成してくれますが最適化にメモリを大量に食うようなので適当にjava vmのメモリを増やす
    export DART_JVMARGS="-Xms256m -Xmx512m"
    dartc hoge.dart --out hoge.js --optimize
  4. dartコマンドではスクリプトが直接実行できます
お約束のHello World
  1. Tutorial: Hello, World : Dart : Structured web programming
    このサンプルをhelloworld.dartなどというファイルに保存して
    dart helloworld.dart
  2. dartc --optimize helloworld.dart --out helloworld.js
  3. ちなみにhelloworld.jsは28kb強となります。コンパイルしたjsファイルはnodeでも実行出来ました。
もう少し面白そうなの(DOM操作でHelloworldみたいなサンプル"Hi")
  1. / - dart - Dart - Structured Web Programming - Google Project Hosting
    上のリンクからhi.dartとhi.htmlをもらってきてhi.htmlをindex.htmlにしておく
  2. 変換する
    python <DART>/client/tools/htmlconverter.py index.html --optimize -o foo/
  3. 結果が1つのhtmlファイルに出力されるのでブラウザで開く
    open foo/index-js.html

dom操作を含むhi.dart+hi.htmlの結果(index-js.html)は221kbとなりました。

最後に感想など

まだ公開されたての言語なのでこれからという感じですね。vmでの性能は特に調べていませんが速く出来る可能性は非常に高いと思います。が、特にJavaScriptでの出力は元と比べ相当大きくなります。ブラウザ内に取り込まれるまで実用的ではないかもしれません。

また言語仕様はスクリプト系の言語というよりjavaやC++のような言語に近いので、大きなプロジェクトにはいいかもしれませんが、 お手軽に使う感じではないかもという印象です。

#と思ったのですが、基本は動的型で型アノテーションのチェックはあまり厳しくはありません。ラフにも使える反面静的型付言語ほどの安全性はなさそうです。ある意味"Java"Scriptの再定義ともいえるかもしれません。

追記:単純ループでのベンチマーク

単に1000000000回forでループするだけの超簡単なプログラム(参考にもならないかもですが)で速度を測ってみると面白い結果に。
結果はtimeコマンドのUser時間。マシンはMac miniのi7 2Ghz。

  1. dart foo.dart   --> 8.68s
  2. dartc + node   --> 28.6s
  3. dartc -optimize + node -> 4.43s
  4. dartc + d8      --> 6.55s
  5. dart -optomize + d8 --> 1.21s

ループを10回増やしてoptimize+d8で再テストすると

  1.  dart -optomize + d8 x10倍 --> 17.48s

ということでjsにコンパイルしてd8が最速という結果。ちなみにコンパイル後のjsファイルのサイズはopt=28507 bytes, no-opt=549613 bytesでした。
ほぼ同じコードをJavaScriptで書いてnodeとd8で走らせると

  1. node + js --> 4.36s
  2. d8 + js --> 1.21s

dartcとほぼ同じ結果となりました。

追記2:リリース直後から数日で

dartc -optimizeの出力結果が約10%小さくなっていました(笑)。しばらくは更新ラッシュで安定するには少し時間がかかるでしょうね。安定すれば外部jsやブラウザプラグイン等でランタイムを供給すればコンパイル結果は劇的に小さく出来るのではないかと思いつつ。 



2012年05月

    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    

カテゴリー

モバイル版

このページは携帯電話からもご覧いただくことが出来ます。
blog.browncat.org qr-code
Powered by
Movable Type 3.36

Twitter


注目エントリー

人気エントリー

デル株式会社ads