2010年4月21日水曜日

【超雑訳】Wineデベロッパーズガイド::II. Wineアーキテクチャ::概要::Wineアーキテクチャ (Wine Developer's Guide::II. Wine Architecture::Overview::Wine architecture)

【日本語訳】

7.3. Wineアーキテクチャ
7.3.1. 全体図

Wineの実装は、いくつものサブシステムが実装されていないにせよ、Windows NTアーキテクチャに近いです。(16ビットサポートは、サブシステムではなく、32ビットWindows EXEに実装されていることを思い出してください。) 全体図がここにあります。

+---------------------+ \
| Windows EXE | } アプリケーション
+---------------------+ /

+---------+ +---------+ \
| Windows | | Windows | \ アプリケーション & システムDLL群
| DLL | | DLL | /
+---------+ +---------+ /

+---------+ +---------+ +------------+ +--------+ \
| GDI32 | | USER32 | | | | | \
| DLL | | DLL | | | | Wine | \
+---------+ +---------+ | | |サーバー| \ コアシステムDLL群
+---------------------+ | | | | / (左側)
| Kernel32 DLL | |サブシステム| |NTライク| /
|(Win32 サブシステム) | |Posix, OS/2 | | Kernel | /
+---------------------+ +------------+ | | /
| |
+---------------------------------------+ | |
| NTDLL | | |
+---------------------------------------+ +--------+

+---------------------------------------+ \
| Wine 実行ファイル (wine-?スレッド) | } unix実行ファイル
+---------------------------------------+ /
+---------------------------------------------------+ \
| Wine ドライバ群 | } Wine固有のDLL群
+---------------------------------------------------+ /

+------------+ +------------+ +--------------+ \
| libc | | libX11 | |他のライブラリ| } unix共有ライブラリ群
+------------+ +------------+ +--------------+ / (ユーザー空間)

+---------------------------------------------------+ \
| Unix カーネル (Linux,*BSD,Solaris,OS/X) | } (Unix) カーネル空間
+---------------------------------------------------+ /
+---------------------------------------------------+ \
| Unix デバイスドライバ群 | } Unix ドライバ群 (カーネル空間)
+---------------------------------------------------+ /


Wineは最低限「3大」DLL(KERNEL/KERNEL32とGDI/GDI32とUSER/USER32)を完全に置き換えなければなりません。他の全てのDLLはこの上に積み重なっています。しかしWineは(多くの理由から)NT方式の実装に傾きつつあるので、もう一つNTDLLをコアDLLとしてWineで実装しなければならず、数多くのKERNEL32およびADVAPI32機能をNTDLLを通して実装しなければなりません。

今日現在、(Win32のそれと分かれた)本物のサブシステムはWineに実装されていません。

WineサーバーはコアDLL群の実装のバックボーンを提供します。これは主にプロセス間同期とオブジェクト共有を実装します。これは、実装の観点からみると、NTカーネルとして見ることができます。(例えWineのDLLとWineサーバー間で使われているAPIとプロトコルがWine固有であるとしてもです。)

WineはUnixドライバをPC上の様々なハードウェアにアクセスするのに使用しています。しかしながら、一部のケースでは、Wineは(Windowsの意味の)ドライバーを物理的なハードウェアデバイスに提供しています。このドライバはUnixドライバのプロキシとなります。(例えば、実例として、X11やSDLドライバと一緒にグラフィカル部分、OSSやALSAドライバと一緒にオーディオなど...)

Wineが提供する全てのDLLは、可能な限りWindowsプラットフォームからエクスポートされるAPI群に留まろうとしています。これに当てはまらないのはごくわずかであり、適切にドキュメントされています (WineのDLLはWine固有のAPIをエクスポートしています)。通常、これらは __wine プレフィクスが付いています。

これから、これらの全てのコンポーネントのさらなる詳細を見ていきましょう。


【原文】
7.3. Wine architecture
7.3.1. Global picture

Wine implementation is closer to the Windows NT architecture, even if several subsystems are not implemented yet (remind also that 16bit support is implemented in a 32-bit Windows EXE, not as a subsystem). Here's the overall picture:

+---------------------+ \
| Windows EXE | } application
+---------------------+ /

+---------+ +---------+ \
| Windows | | Windows | \ application & system DLLs
| DLL | | DLL | /
+---------+ +---------+ /

+---------+ +---------+ +-----------+ +--------+ \
| GDI32 | | USER32 | | | | | \
| DLL | | DLL | | | | Wine | \
+---------+ +---------+ | | | Server | \ core system DLLs
+---------------------+ | | | | / (on the left side)
| Kernel32 DLL | | Subsystem | | NT-like| /
| (Win32 subsystem) | |Posix, OS/2| | Kernel | /
+---------------------+ +-----------+ | | /
| |
+---------------------------------------+ | |
| NTDLL | | |
+---------------------------------------+ +--------+

+---------------------------------------+ \
| Wine executable (wine-?thread) | } unix executable
+---------------------------------------+ /
+---------------------------------------------------+ \
| Wine drivers | } Wine specific DLLs
+---------------------------------------------------+ /

+------------+ +------------+ +--------------+ \
| libc | | libX11 | | other libs | } unix shared libraries
+------------+ +------------+ +--------------+ / (user space)

+---------------------------------------------------+ \
| Unix kernel (Linux,*BSD,Solaris,OS/X) | } (Unix) kernel space
+---------------------------------------------------+ /
+---------------------------------------------------+ \
| Unix device drivers | } Unix drivers (kernel space)
+---------------------------------------------------+ /


Wine must at least completely replace the "Big Three" DLLs (KERNEL/KERNEL32, GDI/GDI32, and USER/USER32), which all other DLLs are layered on top of. But since Wine is (for various reasons) leaning towards the NT way of implementing things, the NTDLL is another core DLL to be implemented in Wine, and many KERNEL32 and ADVAPI32 features will be implemented through the NTDLL.

As of today, no real subsystem (apart the Win32 one) has been implemented in Wine.

The Wine server provides the backbone for the implementation of the core DLLs. It mainly implementents inter-process synchronization and object sharing. It can be seen, from a functional point of view, as a NT kernel (even if the APIs and protocols used between Wine's DLL and the Wine server are Wine specific).

Wine uses the Unix drivers to access the various hardware pieces on the box. However, in some cases, Wine will provide a driver (in Windows sense) to a physical hardware device. This driver will be a proxy to the Unix driver (this is the case, for example, for the graphical part with X11 or SDL drivers, audio with OSS or ALSA drivers...).

All DLLs provided by Wine try to stick as much as possible to the exported APIs from the Windows platforms. There are rare cases where this is not the case, and have been propertly documented (Wine DLLs export some Wine specific APIs). Usually, those are prefixed with __wine.

Let's now review in greater details all of those components.

2010年4月13日火曜日

【超雑訳】Wineデベロッパーズガイド::II. Wineアーキテクチャ::概要::一般的なWindowsアーキテクチャ (Wine Developer's Guide::II. Wine Architecture::Overview::Standard Windows Architectures)

7.2. 一般的なWindowsアーキテクチャ

7.2.1. Windows 9x アーキテクチャ

Windowsアーキテクチャ(Win 9x 系)はこのようになっています:
+---------------------+ \
| Windows EXE | } アプリケーション
+---------------------+ /

+---------+ +---------+ \
| Windows | | Windows | \ アプリケーション & システムDLL群
| DLL | | DLL | /
+---------+ +---------+ /

+---------+ +---------+ \
| GDI32 | | USER32 | \
| DLL | | DLL | \
+---------+ +---------+ } コアシステムDLL群
+---------------------+ /
| Kernel32 DLL | /
+---------------------+ /
+---------------------+ \
| Win9x kernel | } カーネル空間
+---------------------+ /

+---------------------+ \
| Windows 低レベル | \ ドライバ群(カーネル空間)
| ドライバ群 | /
+---------------------+ /

7.2.2. Windows NT アーキテクチャ

Windowsアーキテクチャ(Windows NT系) は以下の図のようになります。
異なるサブシステム群を(win32のように)実装することを可能にする新しいDLL(NTDLL)に注目しましょう。NTアーキテクチャのkernel32はWin32サブシステムをNTDLLの上に実装しています。

+---------------------+ \
| Windows EXE | } アプリケーション
+---------------------+ /

+---------+ +---------+ \
| Windows | | Windows | \ アプリケーション & システムDLL群
| DLL | | DLL | /
+---------+ +---------+ /

+---------+ +---------+ +-----------+ \
| GDI32 | | USER32 | | | \
| DLL | | DLL | | | \
+---------+ +---------+ | | \ コアシステムDLL群
+---------------------+ | サブ | / (左側)
| Kernel32 DLL | | システム | /
|(Win32 サブシステム) | |Posix、OS/2| /
+---------------------+ +-----------+ /

+---------------------------------------+
| NTDLL.DLL |
+---------------------------------------+

+---------------------------------------+ \
| NT カーネル | } NTカーネル(カーネル空間)
+---------------------------------------+ /
+---------------------------------------+ \
| Windows低レベルドライバ群 | } ドライバ群(カーネル空間)
+---------------------------------------+ /

また、(上記の図式で描かれていない)16ビットアプリケーションは特定のサブシステムでサポートされている事に注意してください。

* あらゆるサブシステム(Win32、Posix...)はNT上で走りますが、Win9xでは走りません

* Win 9xは16ビットシステムにそのアーキテクチャを根ざしていますが、NTは真の32ビットシステムです。

* Win 9xとNTのドライバモデルとインターフェースは(MicrosoftがWin 98以上でのWDMドライバの大がかりなサポートでそのギャップを埋めようとしているにもかかわらず)異なります。

2010年4月5日月曜日

【超雑訳】Wineデベロッパーズガイド::II. Wineアーキテクチャ::概要::Wine概要 (Wine Developer's Guide::II. Wine Architecture::Overview::Wine Overview)

Chapter 7. Overview
7章 概要

Table of Contents
7.1. Wine Overview
7.2. Standard Windows Architectures
7.3. Wine architecture
内容
7.1. Wine概要
7.2. 標準Windowsアーキテクチャ
7.3. Wineアーキテクチャ

Brief overview of Wine's architecture...
Wineのアーキテクチャの簡単な概要...

7.1. Wine Overview
7.1. Wine概要

With the fundamental architecture of Wine stabilizing, and people starting to think that we might soon be ready to actually release this thing, it may be time to take a look at how Wine actually works and operates.
Wineの基本的なアーキテクチャが固まってきて、実際にこれをリリースする準備がすぐにできるかもしれないと、皆が考え始めたので、Wineが実際にどのように動作しているのか、ちょっと見ておく時期かもしれない。

7.1.1. Foreword
7.1.1. 序

Wine is often used as a recursive acronym, standing for "Wine Is Not an Emulator". Sometimes it is also known to be used for "Windows Emulator". In a way, both meanings are correct, only seen from different perspectives. The first meaning says that Wine is not a virtual machine, it does not emulate a CPU, and you are not supposed to install Windows nor any Windows device drivers on top of it; rather, Wine is an implementation of the Windows API, and can be used as a library to port Windows applications to Unix. The second meaning, obviously, is that to Windows binaries (.exe files), Wine does look like Windows, and emulates its behaviour and quirks rather closely.
Wineはよく"Wine Is Not an Emulator"を表す再帰的頭字語として使われる。時々、"Windows Emulator"(の意味)でも使われていることが知られている。ある意味、両方とも正しい。異なる視点から見ているだけである。最初の意味は、Wineは仮想マシンではなく、CPUをエミュレートせず、WindowsやWindowsのデバイスドライバをそれにインストールすると思われず、むしろWineはWindows APIの実装の一つであり、WindowsアプリケーションをUnixに移植するためのライブラリとして使うことができると思われるだろう。次の意味は、明らかに、これはWindowsバイナリ(.exeファイル)のためのものであり、そしてWindowsに似ていてその振る舞いや癖を忠実にエミュレートするということだ。

"Emulator": The "Emulator" perspective should not be thought of as if Wine is a typical inefficient emulation layer that means Wine can't be anything but slow - the faithfulness to the badly designed Windows API may of course impose a minor overhead in some cases, but this is both balanced out by the higher efficiency of the Unix platforms Wine runs on, and that other possible abstraction libraries (like Motif, GTK+, CORBA, etc) has a runtime overhead typically comparable to Wine's.
"エミュレータ": "エミュレータ"という視点から、まるでWineが遅い以外の何者でもない意味の、典型的な非効率的なエミュレーションレイヤという風に思われるべきではない。
まずいデザインのWindows APIに忠実であることは、いくつかの場合では確かにわずかなオーバーヘッドを強いるかもしれない。だが、これはWineが走る、より効率の高いUnixプラットフォームで相殺される。その上、他の有力な抽象化ライブラリ(Motif、GTK+、CORBA、など)は一般的にWineのそれに匹敵するランタイムオーバーヘッドを持っている。


7.1.2. Executables
7.1.2. 実行ファイル

Wine's main task is to run Windows executables under non Windows operating systems. It supports different types of executables:
Wineの主な役割は、Windowsの実行ファイルをWindowsではないオペレーティングシステム上で走らせる事だ。異なるタイプの実行ファイルをサポートしている。

DOS executable. Those are even older programs, using the DOS format (either .com or .exe (the later being also called MZ)).
DOS実行ファイル。DOS形式(.comや.exe(後者はMZとも呼ばれる))を使用する、実に古いプログラム達である。

Windows NE executable, also called 16 bit. They were the native processes run by Windows 2.x and 3.x. NE stands for New Executable .
16ビットとも呼ばれる、Windows NE実行ファイル。Windows 2.xや3.xのネイティブプロセス達であった。NEはNew Executableを意味する。

Windows PE executable. These are programs were introduced in Windows 95 (and became the native formats for all later Windows version), even if 16 bit applications were still supported. PE stands for Portable Executable, in a sense where the format of the executable (as a file) is independent of the CPU (even if the content of the file - the code - is CPU dependent).
Windows PE実行ファイル。16ビットアプリケーションがまだサポートされていたにせよ、Windows 95で導入されたプログラム達である。(そしてその後の全てのWindowsバージョンでネイティブフォーマットとなった。) PEはPortable Executableを意味し、その実行ファイルの形式は(ファイルとしては)ある程度CPUに非依存である(たとえ、ファイルの中身 - コード - はCPU依存であったとしても)。

Winelib executable. These are applications, written using the Windows API, but compiled as a Unix executable. Wine provides the tools to create such executables.
Winelib実行ファイル。Windows APIを使用して書かれたアプリケーション達なのだが、Unix実行ファイルとしてコンパイルされている。Wineはこのような実行ファイルを生成するためのツールを提供している。

Let's quickly review the main differences for the supported executables:
サポートされている実行ファイルの違いについてちょっとレビューしよう:

Table 7-1. Wine executables
表 7-1. Wine実行ファイル

DOS (.COM or .EXE) Win16 (NE) Win32 (PE) Winelib
Multitasking Only one application at a time (except for TSR) Cooperative Preemptive Preemptive
Address space One MB of memory, where each application is loaded and unloaded. All 16 bit applications share a single address space, protected mode. Each application has it's own address space. Requires MMU support from CPU. Each application has it's own address space. Requires MMU support from CPU.
Windows API No Windows API but the DOS API (like Int 21h traps). Will call the 16 bit Windows API. Will call the 32 bit Windows API. Will call the 32 bit Windows API, and possibly also the Unix APIs.
Code (CPU level) Only available on x86 in real mode. Code and data are in segmented forms, with 16 bit offsets. Processor is in real mode. Only available on IA-32 architectures, code and data are in segmented forms, with 16 bit offsets (hence the 16 bit name). Processor is in protected mode. Available (with NT) on several CPUs, including IA-32. On this CPU, uses a flat memory model with 32 bit offsets (hence the 32 bit name). Flat model, with 32 bit addresses.
Multi-threading Not available. Not available. Available. Available, but must use the Win32 APIs for threading and synchronization, not the Unix ones.

マルチタスク
DOS (.COM or .EXE) 同時に一つのアプリケーションのみ(TSRを除く)
Win16 (NE) 協調(型)
Win32 (PE) プリエンプティブ(割り込み型)
Winelib プリエンプティブ(割り込み型)

アドレス空間
DOS (.COM or .EXE) それぞれのアプリケーションがロード/アンロードされる場合に、1MBのメモリ
Win16 (NE) 全ての16ビットアプリケーションは単一のメモリをプロテクトモードで共有
Win32 (PE) それぞれのアプリケーションはそれぞれ自分のメモリ空間を持つ。CPUのMMUサポートが必要
Winelib それぞれのアプリケーションはそれぞれ自分のメモリ空間を持つ。CPUのMMUサポートが必要

Windows API
DOS (.COM or .EXE) Windows APIではなくDOS API (Int 21hトラップのような)
Win16 (NE) 16ビット Windows APIを呼び出し
Win32 (PE) 32ビット Windows APIを呼び出し
Winelib 32ビット Windows APIを呼び出し、場合によってはUnix APIも

コード(CPUレベル)
DOS (.COM or .EXE) x86リアルモードのみ利用可能。コードとデータは16ビットのオフセット付きセグメント形式。プロセッサはリアルモード。
Win16 (NE) IA-32アーキテクチャのみ利用可能。コードとデータは16ビットのオフセット付きセグメント形式(なので16ビットという名前)。プロセッサはプロテクトモード。
Win32 (PE) IA-32を含む様々なCPU(NTにおいて)。このCPUでは32ビットのオフセット付きのフラットなメモリモデル(なので32ビットという名前)。
Winelib 32ビットアドレスのフラットなモデル。

マルチスレッド
DOS (.COM or .EXE) 利用できない
Win16 (NE) 利用できない
Win32 (PE) 利用できる
Winelib 利用できるが、UnixのではなくWin32 APIをスレッディングと同期に使用しなければならない


Wine deals with this issue by launching a separate Wine process (which is in fact a Unix process) for each Win32 process, but not for Win16 tasks. Win16 tasks are run as different intersynchronized Unix-threads in the same dedicated Wine process; this Wine process is commonly known as a WOW process (Windows on Windows), referring to a similar mechanism used by Windows NT.
Wineはこの事柄を独立したWineプロセス(実際にはUnixプロセス)をそれぞれのWin32プロセス毎にラウンチすることで対応する。しかしWin16タスクはそうではない。Win16タスク達は、専用の同じWineプロセス内の、相互に同期された違うUnixスレッドとして走る。このWineプロセスは、Windows NTで使われる似たメカニズムから、一般にWOWプロセス(Windows on Windows)として知られている。

Synchronization between the Win16 tasks running in the WOW process is normally done through the Win16 mutex - whenever one of them is running, it holds the Win16 mutex, keeping the others from running. When the task wishes to let the other tasks run, the thread releases the Win16 mutex, and one of the waiting threads will then acquire it and let its task run.
WOWプロセス内で走るWin16タスク間の同期は、通常Win16ミューテックスを通してなされる。それらの一つが動いているときはいつでも、Win16ミューテックスを保持することで、他が走るのを避ける。そのタスクが他のタスクを走らせようと望んだときは、そのスレッドはWin16ミューテックスを解放し、待っているスレッドの一つがそれ(ミューテックス)を間もなく獲得し、そのタスクが走らされる。


winevdm is the Wine process dedicated to running the Win16 processes. Note that several instances of this process could exist, has Windows has support for different VDM (Virtual Dos Machines) in order to have Win16 processes running in different address spaces. Wine also uses the same architecture to run DOS programs (in this case, the DOS emulation is provided by a Wine only DLL called winedos.

winevdmはWin16プロセスを走らすため専用のWineプロセスである。このプロセスのたくさんのインスタンスが存在し得ることに注意しよう。異なるアドレス空間で走る複数のWin16プロセスを持つための、別々のVDM(Virtual Dos Machines)のサポートを持つ複数のWindowsを持つことがある。WineはDOSプログラムを走らせるのにもこれと同じアーキテクチャを使っている。(この場合、WineによるDOSエミュレーションは、winedosと呼ばれるWineにしかないDLLで提供される。)

2010年4月4日日曜日

古いデータ:会社のBlog

そのうち救出しておかないとBlog止めちゃって消えるかもしれん。

□コアテクの路地

□アジアのペンギン

□第三のペンギン

つぶやきの歴史(23)

# これは感謝するわな。某社に転職した時三ヶ月で倒産。給料は一ヶ月しか貰ってない私。 RT @sohbunshu: 私の新人研修: 日の丸を掲げて「入社おめでとう」、「愛社精神を持て」と。その3ヵ月後に会社が倒産。社長は夜逃げ、社員は悪口三昧。最高だった。心より感謝している。 4:07 PM Apr 1st HootSuiteから

# アリ、ラー油がないっす。 5:57 AM Mar 31st HootSuiteから

# あああ、あと30分で出ないといけない。 10:27 PM Mar 29th HootSuiteから

# 実はお茶の水付近は余り知らない。リバティータワーは卒業式の後しか入っていない。育ちの足立区以外だと、仙台が次に知っているかもね。生田ではヒッキーだったし。 7:18 AM Mar 29th HootSuiteから

# @nozzonego はい。 RT @chaca0310: http://nekocafe-leon.com/ 明日ここにいくの。 1:49 AM Mar 29th HootSuiteから

# 楽しいいたちごっこだなー RT @hasegaw: 今はネットワークがボトルネックなんだよねー RT @kazuhisya: てか、24コアマシンで24VMも立ち上げたらNICが爆発しそうだw 10:48 PM Mar 28th HootSuiteから

# それ以外は極めて普通だ。たぶん。 10:46 PM Mar 28th HootSuiteから

# ドクターペッパーがオフィス横の自販機で110円で買えるのが、うちの明らかにIT屋さんを超えているっぽいところだと思う。 10:43 PM Mar 28th HootSuiteから

# RT @TheSyntaxError: 激しく同意 → 「引き際のタイミングが非常に遅いのが日本の公私にわたる特徴」 http://bit.ly/9oLSQ3 7:45 PM Mar 28th HootSuiteから

# RT @ikedanob: 「食料自給率」などという統計を出しているのは日本だけ。自給率を上げるのは簡単。食料輸入を全部ストップすれば100%になる。これは「農業保護主義」の指数なのだ。 #jikyuritsu 5:08 PM Mar 28th HootSuiteから

# うちから一番近いスーパーで売っているようなので、見つからないようなら今度持ってきましょうか? RT @yokichi: 「辛そうで辛くない少し辛いラー油」を買いたいのだけど売ってないよ~ 6:58 AM Mar 28th HootSuiteから

# できたけど、vmfsはちょっと微妙だな... 6:42 AM Mar 28th HootSuiteから

# 直接メッセージ、って読まれていないことがある気がします。 6:37 AM Mar 28th HootSuiteから

# うがー、configureのできがひどい... > partclone 1:52 AM Mar 28th webから

# ppt書きまくっていた私よりまし。RT @kazuhidet: 今日もメチャ忙しくて、ず〜っとphpやqmailと格闘中。ちゃんとコードが書きたいよ。 1:55 AM Mar 26th HootSuiteから

# ハートマークがワールドワイドトレンドに並んでいるのだが、どうやって入力しているんだろう? 6:09 PM Mar 25th webから

# 制御システム系は回復してないのかな。 4:57 PM Mar 25th HootSuiteから

# さいきんTLときどきしか読んでないので、ダイレクトメッセージよろ。 4:52 AM Mar 25th webから

# ふー、ぐれーぷふるーつと納豆は相性が悪い。 1:41 AM Mar 23rd HootSuiteから

# 普通の会社はバックパッカーとか採らないのか。なんで?うちの会社には複数いるな。例外なく私より優秀ですが何か? 5:40 PM Mar 21st HootSuiteから

# 吃音...ではなさそうだな。あばばばば、とかあんまりならんし。たまにメモリリークでクラッシュしているような感じなので。 5:35 PM Mar 21st HootSuiteから

# 飛び石の意味が間違っていたが、まあいいか。 5:29 PM Mar 21st HootSuiteから

# おれのことか? >1.面接中一人称が「僕」「俺」「ワタシ」「ワタクシ」がごちゃごちゃで安定しない人 5:28 PM Mar 21st HootSuiteから

# ほんの時々、どこでも良くない会社が現れて、それを飛石してきたのだが、次の石はないね。そもそも飛び石する意味ってあるのかね。私が飛ぶと大抵前の石が沈んでいるので、逆説的に言えばこれからV字成長っていうときは安住すればいいんじゃねと思ったり。 5:24 PM Mar 21st HootSuiteから

# こういっちゃなんだが、日本の会社なんて区別付かないと思っている私は今の就活では落第だな。正直どこでも良かったし、今でもそれはいえる > 業界の志望動機はいえても、その会社自体の志望動機がいえない学生が多い http://ow.ly/1p9CP 5:20 PM Mar 21st HootSuiteから

# それから、いじめられる奴はその子にその要因があるのは、多分あってる。今となってはその要因を取り除くべきだったか否かは分からない。分からないが、あの親がそう思わなかったんだから、要は子供の世界ではダメというだけだったんだろう。 4:42 PM Mar 21st HootSuiteから

# まあ、学校でいじめが起こるということ自体、先生をいじめているということだというのは分かる。今は。対処能力を期待するのは難しいので、もう起きていない所に転校するしかない。 4:39 PM Mar 21st HootSuiteから

# いじめが発覚すると校長先生の退職金が減るのか...なるほど。あのう、もうそういうのやめにしませんか。 4:29 PM Mar 21st HootSuiteから

# RT @UTKTRC: 僕の小学校でいじめが起こったとき、一番悲しんでいたのは校長先生でした。退職金が減るのだそうです。PTAとの会合で泣いていたとか。 4:28 PM Mar 21st webから

# でも時間なので寝ます。 7:04 AM Mar 21st webから

# Smart.fmの使いかたがわからず、止まっている。 7:02 AM Mar 21st webから

# 本日の結論。アメリカは中期的にはやばい。中国は5年以内に弾ける。だがギリシアの次が日本なら、それに付け込むまでもなくもっと早く破滅する。というわけなんで、あんまり考えてもしかたない。 6:07 AM Mar 21st HootSuiteから

# クラッシュするとのことでしばらく控えていた Chromium の CentOS5版を、いつもの所にput。 4:01 AM Mar 21st HootSuiteから

# よくよく考えれば類推できたけど、アメリカの人は日本人は何で政治に無関心なんだというけど、中国の人から見ると日本人は天下国家を論じすぎらしい。 3:14 AM Mar 21st HootSuiteから

# しまつた、なんでリナックス・カフェ毎回のぞかないで終わるんだろう。アレゲなやつがいるかもしれないではないか。 3:06 AM Mar 21st HootSuiteから

# @sohbunshu 田原総一朗氏との対談本、新たな発見が沢山ありました。ありがとうございます。華僑ならぬ和僑(?)頑張れ、ですね。海外在住の友人にも言っておきます。一言御礼まで。 2:53 AM Mar 21st webから sohbunshu宛

# 周りを見ている限りでは、仕事の効率が良すぎるというか、成果を上げすぎる人は、面白いアイデアなんか持ってない。分担が必要。だからこそ、会社というものが生きてくると思うのだが。 12:40 AM Mar 21st webから

# 私の世代は、「そうはいっても」という感じだったが、再考の余地あり。効率よく仕事する、させることが効率よくイノベーションを起こすことではないんではないかと。インターネットのストリームと、脳のシナプスにとって、「ケジメ」という習慣は効率良いとは限らんなと。 12:30 AM Mar 21st HootSuiteから

# ちょうど、数十分前、小川町付近を歩きながら、後数年もすれば日本の職場から「けじめ」という習慣がなくなるんじゃないかと思っていた所だった: http://ow.ly/1oZ0N 12:27 AM Mar 21st HootSuiteから

# オープンにする、とか情報共有を密にする、というけど、それはそのまんま流すことじゃなくて、加工が入る。なぜなら情報の流し元も加工している。再構築しなければ危険だ。......面倒だからあんまり頑張らないけど。 12:21 AM Mar 21st HootSuiteから

# それを切り落とすから、ゴミ になってしまうんだろう。 12:15 AM Mar 21st HootSuiteから

# 誰に向けて言ったのか、という情報をマスコミは切り落とさないで欲しい。 12:14 AM Mar 21st HootSuiteから

# 更に言えば、全員に適合するような表現というのは、おそらく存在しない。政治家の人が一番それをぎゅっと考えているんじゃないかと思うが、それでも「失言」というものがあるんだから、世の中は難しい。 12:11 AM Mar 21st HootSuiteから

# 言葉ってTPOあるんだけど、それを全て理解できている人は、いない。絶対いないかもしれない。例えば @takapon_jp の呟きやブログや、誰と仲が良くて誰と仲が悪いかをみれば、それが分かる気がする。誰もが言動は完璧でない、という当たり前のことを皆忘れている。 12:07 AM Mar 21st HootSuiteから

# ベクトルが合ったときの効率は凄まじいということは、よくわかっている。でも大半の人は合わないんだよ。もう20年来、両親からそんなことを言われている気がする。だから、Jobsが言うように、個人としては、探すのを決してあきらめないことなんだろうな、とは思うのだが。孟母三遷。 11:51 PM Mar 20th webから

# 会社の目的にそぐわないモチベーションは無理に要らないんじゃね?今の日本はそれを別に発揮できる場もあるしさ、とここ数日思っていたが、某書を読んで、似たようなことが書いてあったのを見つける。というわけで、某書をもう少し読んでみよう。 11:47 PM Mar 20th webから

# 私のようなヤワな奴じゃなくて、もっとタフというかいい感じに抜けている人がリードするなら、効果はあると思いつつ。 11:34 PM Mar 20th webから

# うちの事業部の効率を上げる方法を提案したことがある。多分、人件費そのままで社員も会社もそこそこ幸せになる。しかし、社長が定義するデキる社員像と成長する会社像とは真っ向からぶつかるし、なにより自分が不幸になるので止めといた。現在の所、下策。 11:31 PM Mar 20th webから

# 両側とも良くする改善策は絶対ある。2-3日考えれば出てくる自信はある。でもそこまでの思い入れはないというか。なんか I/O のバランスが悪すぎてダメす。信用限度額いっぱい貸し出し中という感じなんですけど。 11:20 PM Mar 20th webから

# 待遇か。この文字を忘れていられる間は幸せです。経営側の悪知恵を色々考えてしまうのはつまらんというか、その悪知恵がブルーカラー統制論に基づいている気がしてならない。職位と給料が連動するのをまずなんとかせねば。 11:13 PM Mar 20th webから

# とにかく外に出るです。行き先は外に出てから考えるです。 6:25 PM Mar 20th HootSuiteから

# OSC2010 Sendaiが5/22にあるのか。久しぶりに帰仙するかな。 5:51 PM Mar 20th webから

# @ryojikameiに一番適する職業は総合的に判断して映画俳優です。そしてその職業であなたの能力が発揮されれば、最大およそ1億円の年収を得られます。頑張りましょう^^ http://shindanmaker.com/4266 #shokugyou 足の大きさ通りの身長があれば 5:37 PM Mar 20th webから

# うーん、これぐらいが限界。私は流し読みができない。 5:34 PM Mar 20th webから

# RT @May_Roma: これは面白いそして激しく同意。伊、西も似ている。メール、ビジネス文書がグルグルで意味不明。 RT @gaby6100: 仏人は日本人と同じ「らせん状」の思考回路ですが、英人/豪人は「起承転結」思考なんです。アカデミックな論文を英語で書くときに仏 ... 5:09 PM Mar 20th webから

# とりあえず、PCから離れよう。 12:13 AM Mar 20th webから

# うーむ、うーむ、うーむ、、、、 12:12 AM Mar 20th webから

# 歯は神経抜かずに済んだ。が、これから処置後の鈍痛が来ると思うので今日は大人しく籠っている。 10:59 PM Mar 19th webから

# と、最近韓国と日本に挟まれている中国人の同僚を見ながら思う。すまんね、こんな国で。 8:02 PM Mar 19th HootSuiteから

# 韓国に泣き女がいるということは、ちっともおかしくない。日本には謝り男がいるではないか。本来完璧でない事が完璧にならなくて、その差を埋める役の男が。 7:58 PM Mar 19th HootSuiteから

# ...うちの営業も行けばいいのに、マイホームパパ多すぎ。 #infotalk 7:54 PM Mar 19th webから

# ここんところ、取引先や取引希望先の部長とかにばったり会います。あと、以前の会社の取引先の元社長にもばったり会いました。 #infotalk 7:54 PM Mar 19th webから

# 次の InfoTalk #17 は HTML5 特集。最近の InfoTalk は名前通りの感じになってきていて、勉 強 会という気合いが入ってなくて行きやすい。そのせいか、IT系営業とか私のようなマネージャのような人も結構いる。ということに懇親会で気がつく。穴場です。 7:49 PM Mar 19th webから

# RT @hasegawayosuke: これか。Windows 7 の XP ModeをVT非搭載でも動作する修正プログラム。 http://support.microsoft.com/?kbid=977206 7:38 PM Mar 19th webから

# .@wanwanko 親指で入力できるんですかね、あの大きさで。Netwalkerは微妙な大きさでタッチタイプにも親指入力にもどっちにも適さない結果、ビルドマシンと化しています...... 6:18 PM Mar 19th HootSuiteから wanwanko宛

# コードではなくて、コードを書いた人。 6:14 PM Mar 19th HootSuiteから

# 26日に鶏だんご鍋食べる会があるらしいですよ。TLに流れてきたがURL忘れた。RT @kazuhidet: 昨日は段取りに失敗して夜は鶏だんご鍋食えなかったけど、今日は頑張るぞ! 6:10 PM Mar 19th HootSuiteから

# 部下に仕事でやらせると3日。自分が趣味でやると30分。そんなもんだ。品質保証過程がないもんね。(趣味でやる限り、)そのコードを書いた人を 信じる というのが、ディストロ役の正しい在り方。 6:08 PM Mar 19th HootSuiteから

# 某社商用製品より先に出してしまったことに後で気がつくの巻。RT @nozzonego: CVEまだ出てないねー。 RT @ryojikamei: 修正した。いつものftpサーバーに置いた。 RT お、chromium-pangoアップデートしなきゃ > CVE-2010-0421 6:02 PM Mar 19th HootSuiteから

# うーん、ソース嫁は効率悪いのかなあ。どういうものか知りたいだけなら、確かに誰かのまとめを聞くのがいいのかもしれないけど、と昨日の InfoTalk #16 の Hadoop を聞いて思った。ニュースサイトをいくら巡ってもさっぱり分からなかったのが、ようやく分かったと思う。 5:46 PM Mar 19th HootSuiteから