Linuxのテクニックに関する世界観です。
WindowsとLinuxの間でファイルを共有するには、Google Driveを使うのが便利です。
Windowsの方に、Googleによるバックアップと同期アプリケーションをインストールし、LinuxでGoogleアカウントにログインすることで、15GBのオンラインストレージを使うことが出来ます。
USBメモリのように日本時間がズレる問題も無いので、お勧めです。ただ、Shift-JISでエンコードされたファイルは、Linuxで読み込む前にUTF-8に変換する必要があります。
後日注記:ただし、実際のところ15GBというのは非常に小さすぎます。特にデザイン系のソフトウェアを触っていると、100GBでも足りません。USBメモリの代わりに使うといった要素が考えられます。
オンラインストレージを参照のこと。
仮想化ソフトウェア。Windowsの上でLinuxを動かすことが出来ます。
VirtualBoxは仮想環境でLinuxを動かすため、遅い。デスクトップ環境にはLXDEをおすすめする。LXDEは仮想環境で使っても機敏に動く。
VirtualBoxとLXDE/LXQtを参照のこと。
GIMPとInkscapeは使える。僕はWindowsでもGIMPとInkscapeをインストールして、Adobe製品と一緒に使っている。
Mozilla FirefoxかGoogle Chromeか、どちらを使うかは悩ましい問題だ。
僕が思うに、Googleアカウントと同期が出来る、という意味で、Google Chromeの勝ちだ。
WebKitを使いたいならば、Epiphanyという手段もある。
Google Chromeは、ログインするとChromeアプリ(Google Keepなど)をLinuxで使うことも出来る。特に、Google KeepなどはAndroidアプリなどとの連携も出来る。
だが、Firefoxは超高速になったFirefox Quantumのリリースで頑張っている。Linuxを使うなら、やっぱりオープンソースで開発されていて、Netscapeブラウザの流れをくむFirefoxを使いたいところだ。
楽譜作成アプリケーション。僕はWindowsで使っていますが、Qt採用でLinuxでも使えるオープンソース・ソフトウェアです。
3DCGソフトウェア。モデリングやアニメーションが出来る。操作は独特で難しいが、とても多くの機能を持つ。
Blenderを参照のこと。
Linuxでテレビ放送を視聴・録画出来る。
ARMプロセッサによる基板。シングルボードのコンピュータ。
Raspberry Piを参照のこと。
最近、オープンソース製品も質が良くなって、商用ソフトウェアと遜色のない機能を持つものが増えてきた。
Microsoft製品やAdobe製品に依存する事務やデザインなど、一部の作業を除いて、本当に使えるソフトウェアはオープンソース製品だ。
特に、LibreOffice, Mozilla Firefox, WebKit系ブラウザ, 言語処理系, GIMP, Inkscape, Eclipseなど、どんどんオープンソース製品の質が良くなっている。
まだ、Webサービスなどはオープンソースではないものもある。Googleをオープンとは言うが、検索エンジンなどは公開していない。
だが、将来的に、本当に使えるのはオープンソース製品だ。ITのもう一つの潮流として、きっと全面的にそうなっていくだろう。
ただ、本当はGIMPやInkscapeは実用にはまだまだほど遠いところがある。特に、フォントが少ない。操作方法もインターフェースも違う。
Linuxのオープンソースでは出来ないことや難しいことも、Windowsのオープンソースでなら出来ることはある。Windowsでもオープンソースソフトウェアは使えるものがたくさんある。それを使っていこう。
Linuxの良いところを列挙してみる。
オープンソースで無料で入手できるため、Linuxのシステム(特にLAMP)はリスクが少なく導入出来る。
一度構築したシステムの保守や維持にはコストがかかるため、必ずしもコストは低くない。だが、導入を決める際の失敗リスクは少ない。
会社だけではなく、個人がサーバーシステムやコンパイラを入手したい場合でも、無料のオープンソースは導入の際の敷居が少ない。嫌いになったら消してしまえば良い。
全てのソフトウェアがオープンソースなので、詳しくなろうとして探っていけば無限に世界は広がる。
だが、底なし沼のように技術が詳細へと続いていくわけではない。Gentoo LinuxやArch Linuxなどシステムの手動構築と管理の知識があって、Linuxカーネルの仕組みを勉強すれば、それで一通りのことは分かる。何でもLinuxのことが分かるようになる。
Linuxは、パソコン(PC)が当時の革命であったのと同じように、使っているユーザーに楽しさを与えてくれる。
僕の使っているWindows 7は、起動して使えるようになるまでにとても時間がかかる。Linuxはそういうところがまともだ。
おそらく、Windowsはきちんと作る代わり、複雑で何重にも組み合っているおかしな設計をしている。LinuxはUNIXで、シンプルな設計をしているため、統合はされていなくても、コンポーネントはきちんと動く。
Windowsが必ずしも悪なわけではない。Linuxカーネルの本にも書いてあるが、一夜にして大富豪になる落ちこぼれ工業大学生が居たとして、それはLinuxやPCの革命のハッカーのコミュニティと何も変わらない。同じ穴のムジナだ。
改善すべき点は、GTK+というツールキットが醜いことである。テーマの見た目が中途半端なだけではなく、GTK+でプログラミングしたい、と思えない、GLibやGTKやGNOMEのお仕着せがましい仕様(特に全ての型にgをつけること)で、開発プロジェクトの自由にしたいのになかなかそれが出来ないことや、Windowsのように最初から灰色の単純なツールキットのようにして「便利な道具箱」のようにコントロールを作る、という発想になかなかなれないツールキットだ、ということが挙げられる。
GTK+を改善するのは難しいが、QtはC++で設計されているから、これをC言語からでも呼び出せるように、Qtのコア部分をC言語で書き直し、GTK+のAPIを用意して、QtをGTK+と全く同じように使えるようにすることが考えられるが、この場合GLibを用いた「C言語によるオブジェクト指向」をどこまで同じにするのか、という問題がある。
もう一つの改善すべき点は、ハックすることが楽しくなくなったことだ。Linuxは、手動で設定しコマンドで管理する中で、自分が作り変えながら「こんなことも出来るのか」と細部を知って自分の手で作る「ハックすることの楽しさ」によって成り立ってきた。だが、今のLinuxは、全てが整いすぎている。何でもかんでも最初から整っていて、自動でやってくれる。こんな環境では、ハックする楽しさは微塵も分からない。だから、もう一度ハッカーの視点に立って作り直すべきだ。どのようにすれば楽しくプログラミングが出来るのか、それによってシステムをハック出来るのか、が真に大切なことなのだ。
オープンソースの開発者になるために必要なのは、LinuxカーネルやRubyのような既存のソフトウェアを改良し開発することだが、それはそのままハックすることだ。ハック出来る人間が作っているだけであって、ハックするためにお仕着せがましいチュートリアルやレッスンは必要ない。ある程度のことを知っている人間なら、自分の手でソースコードを変えることぐらい出来るはずだ。それがLinuxハッカーである。そのために必要なのは、CとMakeの少しの知識だけで、あとは自分のやりたいことを「何となく」ではなく、「厳密に目的を定めて」開発することだ。それが出来る人間を、人は天才プログラマと呼ぶだろう。
Linuxのハッカーになるためには、以下のようなものを「ハック」すると良いだろう。
・コマンドへのコマンドオプションの追加
・カーネルモジュールとデバイスドライバの作成
・GUIアプリケーションのメニューアイテムの作成
そして、変数と制御構文を使ってコマンドや処理の流れを変えたり、複数の処理や一続きの処理を関数にまとめても良い。
新しくアプリケーションで呼び出される汎用的な関数を作って、作りたい機能や処理を実現しても良いだろう。それをライブラリにすることも出来る。
エンジン部分は、その上で作れば良い。
また、コンパイラやブラウザ、サーバーなどの構文や設定を追加しても良いだろう。
新しいGUIツールキットのウィジェットを作ったりしても良いかもしれない。デザインを美しくしたいなら、GTK+のテーマを作っても良いだろう。