ubuntuでObjective-C(2.0)を使ってみる

ubuntuObjective-Cを使うのに、darling shellと言うものがあるらしいとネットにあったので、インストールしてみた。ubuntuのバージョンは20.04, kernel は uname -a で調べると、

Linux mate xxxxxx 5.4.0-31-generic #35-Ubuntu SMP Thu May 7 20:20:34 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux でした。他のLinuxでは、インストールは出来たとしても、ある意味すべて上手く行きませんでした。

で、これで何ができるの?と調べても情報は殆なく、気紛れに Homebrew をインストールしようとしたのですが、何か可怪しいメッセージで、何度かやってみたら、何故かインストールできました。が、cask は使えないので結局何もできないようでした。

それなら、Objective-C が使えないものかと、簡単なサンプルを作って

$ clang sample.m -o sample -framework Foundation

に掛けると、何事もなく終わるので使えるようです。サンプルのコードは、

#import <Foundation/NSObject.h>

int main(){
NSLog(@"こんにちは\n");
return 0;
}

この clang のバージョンを見ると

Apple LLVM version 9.0.0 (clang-900.0.39.2)
Target: x86_64-apple-darwin16.0.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin

これなら今まで買ってきたObjective-C の参考書が使えそうなのでネットからそのコードをダウンロードして片っ端らから試して見ようと思ったのですが、躓きました。

#import <Foundation/Foundation.h> はインポートエラーでできません。なので、部分的にインポートするしかないようです。又 GUI 関係も当分は出来なさそうです。

この darling shell インストールの感想として言って置かなければならないことは、非常に時間が掛かるということです。CPU core i5 3.2GHz SSD USB3接続で4時間は見て置かなければならないようです。また、注意しなければならないことに、python-six がないと、エラーで終わってしまいます。特に最初は順調だったとしても95%過ぎでは、1%進むの亀の歩みです。が、この部分がないと、lkm を make できないようです。これを省略したdebパッケージが、18.04用にあるみたいですが、20.04ではAPI違いでshell がアボートします。しかし、現行18.04ではclangは使えないようです。

私が何故 そんな思いまでして、LinuxDarwin を使ってみようと思ったかは、10年前まではMac機onlyだったのが資金的にそんな余裕はなくなり、買わせられるだけの世界に見切りを付けたからです。今コロナウイルスの影響で、世界的にも高嶺の花のMac製品は私にとって命取りです。だから、古いマシンでLinuxを使うようになりました。

この回の最後として、だとしても LinuxApple Darwin が動くこと自体素晴らしい!!

追記1:ubuntuは頻繁にupdateさせられるので、linux-header が変わるとshellに入れなくなります。こんなエラーメッセージが出てきます。例えば、modprobe: FATAL: Module darling-mach not found in directory /lib/modules/5.4.0-31-generic
Failed to load the kernel module と出た場合、対処法はもう一度 make lkm ;sudo make lkm_install をやると良いようです。

追記2(20.5.22):darling shellでこのメッセージが出てきたら

Loaded the kernel module
Bootstrapping the container with launchd...
Cannot determine your user name

これはDarwinのkernelが見つからず、bashが起動できないと私は判断した。

Linuxにはディスクトップが何種類かあるけれども、インストールした最初のディスクトップは特殊でLinux bashが他のディスクトップと判断し拒んだ形なのだろう?

なので、他のディスクトップをインストールしてログインし直すか、ターミナルを変えてみたりすると良さそうです。

HTMLにmarkdownを埋め込めるサイトを見つけた

Please ensure Internet access and enable JavaScript.

Markerでwikipediaにある化学式をlatex codeで出してみた

MarkerはFlatpakでインストールしたもので、 参考文献が殆どなく、最初苦労したものの使い慣れてくると 、使い道が色々あるんだなと思った。例えば以下の文が その一つで、抜粋しただけなんだけれども、元々画像だったので、 試しに出してみた。

水溶液を濃縮すると一水和物 NaOH・H$_2$O が析出する。

$\rm{}NaOH(s) + H_2O(1) \rightleftharpoons NaOH^{\hspace{2pt}.\hspace{2pt} } H_2O(s),$

$\Delta H^\circ \rm{} = -23.10kJ\hspace{2pt} {} mol^{-1} $

$\rm{}NaOH(s) \rightleftharpoons Na^+(aq) + OH^-(aq),$

$\Delta H^\circ \rm{} = -44.51kJ\hspace{2pt}mol^{-1} $

二酸化炭素を吸収する能力が強く、水溶液は実験室においてその吸収剤として用いられる。

$\rm{} 2NaOH + CO_2 \to Na_2CO_3 + H_2O$

抜粋から以上

本ページと何ら遜色が無いと思う。

Markerは、html プレビューモードがあるので、書きながら即時 確かめることができる。もしこれが無いエディターだった場合、そこまで 行かなかったと思う。 又、自前のcss3もlinkできるし、javascriptもある程度link できそうな感じだ。大した試してはいないんだけれども、面白く 使えるので、遊んでいる。 もし、これを見る機会があったら是非、ブラウザからsource code を確認して欲しい。subやsupは使っていません。全て、latexコマンド で、書いています。振れ込はmarkdown editorになっていますが、 どちらかというと、html editorなのかなと思います。

raspbianのfirefoxブラウザでHDMIディスプレーからラジコを聴いてみる

 raspbian OSにはsound card softが付いているのに音はどこから出力するのだろうと、かねがね迷っていて問題を保留にしていたのですが、夜眠れなくてラジオを聞きたくなって、らじる★らじるって、この時間やっているんだろうかと確認しようと思って、ブラウザからみると、あの音量ボリュームのアンテナがガンガン波打っているのでやっていると確認が取れただけでなく、何故か僅かながらに音も聞こえて来たので何処から音がするのだろうと耳を当てると、HDMIのディスプレーからです。
 このモニターは結構古くもっぱらDVI-D接続して使っていただけで、HDMIraspberry piが本格的に使い始めたので最初のパソコンです。
これには音声端子もスピーカー出力のメッシュ穴もありません。だから直感的に分からなかったのですが、ラズベリパイの音声はHDMIから出る仕組みだったとは、ん〜?

 その他にも知らないと損をすることもありそうで、例えば、raspbian liteからインストールして、gnome desktopでmathematicaを使う方法とかあるのですが、これには、私もさんざん苦労したのにも関わらず、あまり芳しくなかったので、情報として挙げるのは控えることとしました。でも、普通に使えることも確かでした。あの子供っぽいディフォルトのデスクトップが嫌だったので。

 只、時期日本で発売のRaspberry pi 4Bには対応した使い方を考えて置かなければならないようだ。

(5時間後の追記)

音が出るのが分かったので、mathematicaで音を作るサンプルがあるので、試してみました。

次がその場面で、デスクトップはgnomeです。:

音は雑音に近い音でした。