2017年10月10日火曜日

普段使っていないアカウントに不審なログイン履歴があった。
怖いからパスワード変更しておいた。

2017年9月22日金曜日

ubuntu版のgoogle chromeの挙動が変わった?

最近ubuntu版のgoogle chromeの挙動が変わった気がしています。
以前はどうしても見られなかったウェザーニュースのFlash版のページが見られるようになったり、GYAOのページがLinux版というだけで弾かれていたのがUser Agent偽装しなくても見られるようになったり。
Flashはご存知の方も多いですが、2020年にAdobe Systemsがフラッシュのサポートを終了すると発表して消えゆく運命なのですが、今になって動作するようになったというのも面白いです。

2017年8月30日水曜日

Ubuntu 16.04.3 その後の感想

前回の投稿でアップデートしてからしばらく経った感想です。

メモリ管理が改善したように感じる。
以前はChromeのタブを多く開くとハードディスクがガジガジと音をだしてかなりパフォーマンスが落ちたのですが、それが改善しているぽい気がします。

ネット接続の改善
以前はYouTubeの動画再生ですぐ最低画質に落ちていたのですが、以前よりはスムーズに再生されるようになった気がします。しかしこれはUbuntuではなくYouTube側の改善の可能性もありますので、なんとも言えません。

ちょっと挙動がおかしいケースもある
詳しくは書けませんが、挙動がおかしいと感じる事があります。やはり古いPCですのでいつカーネルに切り捨てられるのかわからない部分もあります。

2017年8月7日月曜日

Ubuntu 16.04.03

Ubuntu 16.04のポイントリリース16.04.3を適用してみました。

単純にいつものようにコマンドラインでアップデートをかけるだけでいいのですが、「Ubuntu 16.04.2」以降、ローリングLTS Enablement Stackモデルが採用されているとの事でどうせならカーネルもバージョンアップしたいと思いましたが、そのままではベースバージョンのまま何も変わりません。

調べた所、コマンドラインで以下のようにすればいいそうです。

sudo apt-get install --install-recommends linux-generic-hwe-16.04 xserver-xorg-hwe-16.04

カーネルも無事更新されました。
私のマシンの場合かなり古いマシンなのでカーネルアップデートの必要性はあまりないのですが、気分的に新しい環境で使いたいなーと思って更新かけてみました。

2017年8月3日木曜日

clang 6.0.0をソースビルドしてインストール

久々に作業を行ったので記録として残しておきます。

試用環境はUbuntu16.04.2LTSです。
デフォルトのClangは3.8でした。

まずソースをリポジトリより取得します。
$ mkdir clang
$ cd clang
$ sudo apt-get build-dep -y llvm clang
$ sudo apt-get build-dep -y llvm clang
$ svn co http://llvm.org/svn/llvm-project/llvm/trunk llvm
$ cd llvm/tools
$ svn co http://llvm.org/svn/llvm-project/cfe/trunk clang
$ cd clang/tools
$ cd ../../../projects
$ svn co http://llvm.org/svn/llvm-project/compiler-rt/trunk compiler-rt
$ cd ../..

 ビルド用のディレクトリを作成してcmakeでMakefile作成し、ビルドします
$ mkdir llvm.build
$ cd llvm.build$ cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local ../llvm
$ make

ビルドが私のマシンが非力なのか大体8時間15分ほど時間がかかりました。寝る前に流して朝起きるとまだビルドが75%程で仕方ないのでそのままPCをつけたまま出かけました。

さて動作確認です。

/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.23' not found (required by <new software>)

あれ?どうやらライブラリがないと言われている様です。

現在のライブラリを以下のコマンドで確認すると確かに該当バージョンが含まれていません。
 $ strings /usr/lib/x86_64-linux-gnu/libstdc;;.so.6 | grep GLIBCXX

調べるとそのライブラリはgccをビルドすると含まれているそうです。
よかったこの間gcc7.1.0をビルドしたばかりで既にビルドした物が手元にあります。

$ cd gcc/build
$ find ./ -name "libstdc++*"
"./x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.23"




このファイルのようです。


現在の環境のものをリネームしてこのファイルに置き換える作業をします。
 $ sudo cp ./x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.23 /usr/lib/x86_64-linux-gnu/



 $ sudo cp libstdc++.so.6.0.23
 $ sudo mv libstdc++.so.6 libstdc++.so.6.bak
 $ sudo ln -s libstdc++.so.6.0.23 libstdc++.so.
 $ ls -lsta libstdc++*

権限を他のものと揃えて終わります。
 $ sudo chmod 644 libstdc++.so.6.0.23

これで一応clangが動作するようになりました。

2017年7月14日金曜日

雑記


・WindowsとUbuntuの更新について
今、UbuntuをいれているマシンとWindows10をいれているマシンの2台を使ってますがWindowsの更新は面倒ですね。何回も再起動を促されたりしてぐったりです。Ubuntuも再起動が必要なことはあるのですが、Windowsほどしつこくないです。

・Bloggerのアカウント切り替えについて
Gooogleのアカウントを複数使っているのですがBloggerは複数アカウントに対応してないとかで、他のアカウントをサインアウトしないと使えない問題がありました。苦肉の策としてChromeとFireFoxで別アカウントでサインインすれば使えるようになりました。

2017年6月30日金曜日

yutubeでタイトルが切り替わらずに新しい動画が再生される

うーん どうしてなんだろう?
ひとつの動画が再生されて次の動画に移っても、タイトルはそのままで動画だけ次の動画になるので、何をいま再生されているのかよくわからない状況になります。

環境はUbuntu16.04.2上のGoogole Chromeです。

似たような現象が起こっている方いませんかね?

2014年4月20日日曜日

Ubuntu14.04LTS

すっかりご無沙汰です。
日曜になってよくやく時間が出来たのでUbuntu14.04LTSに手元の環境をアップデートしました。正確には土曜の夜中に初めて起きだしてはインストールの質問に答えるという半分寝ながらインストールしました。
linuxカーネルは3.13、gccは4.8.2、clangは3.4になったようです。前回Ubuntu13.10のclang3.3でコンパイルエラーになったプログラムをコンパイルしたところ、警告がひとつ出ただけでコンパイルできました。
 google mapsも正式にリリースされてインタフェースが少し改善されているようですが、そちらはまだ細かく見る時間がないです。というかインタフェースなんて本来、意識しなくてすむならそれに越したことはないのです。でもなくなったり、変更されて初めていろいろ意識するものですね。
 簡単ですが、今回はこの辺で。

2013年11月24日日曜日

Ubuntu 13.10とclang3.3

お久しぶりです。
個人的にいろいろ変化があって、記事を投稿出来る時間がありませんでした。

さて、Ubuntu13.10が10月にリリースされて一応アップデートだけはしていたんですが、
なかなか触る時間もなくて放置していました。

Ubuntu13.10ではgccも4.8.1になって以前書いた記事のように自分で関連ライブラリのビルド後に本体のビルドをして半日が潰れるみたいなことしなくても良くなりました。

clangはデフォルトでは3.2.7が用意されているようでこれも

sudo apt-get install clang

というコマンド一発でインストールOKです。

ところで、Ubuntu13.10にはclang-3.3というパッケージも用意されているようです。
試しにインストールしてみました。

$sudo apt-get remove clang
$sudo apt-get install clang-3.3

自分の作ったとあるソースをコンパイルしてみます。

$ clang++ test.cc -std=c++11 -O3 -o test_cl
In file included from test.cc:1:
In file included from /usr/lib/gcc/i686-linux-gnu/4.8/../../../../include/c++/4.8/algorithm:60:
/usr/lib/gcc/i686-linux-gnu/4.8/../../../../include/c++/4.8/utility:68:10: fatal error:
      'bits/c++config.h' file not found
#include <bits/c++config.h>
         ^
1 error generated.

あれ、clang3.2.7ではコンパイル出来たプログラムがエラーになる!


この現象をググった所、


という所で同じような現象が話されています。
2013年9月頃の投稿ですね。

斜め読みするとどうやら最新のclang3.3では修正された様ですが、Ubuntuが取り込んだものではまだ残っている様ですね。

せっかくパッケージになって楽になったのにこういうのが残っているので自分でコンパイルしなくちゃいけないようです。


2013年8月9日金曜日

フィボナッチ数

とあるテレビドラマでフィボナッチ数について触れられていました。
前の日記にも書きましたが、私は数学の知識があまりなくて、フィボナッチ数とは何か興味を持ちました。

n番目のフィボナッチ数を Fnと表すと
$$F_0 = 0\,$$ $$F_1 = 1 \,$$ $$F_{n+2} = F_n + F_{n+1} \quad (n \ge 0)$$ で定義されるそうです。

この数列はフィボナッチ数列と呼ばれ、
0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,…
と続きます。最初の二項は0,1と定義され、以後どの項もその前の2つの項の和となっています。

フィボナッチ数の一般項が次の様な式で表わされるそうです。

$$\frac{1}{\sqrt{5}} \left\{ \left( \frac{1+\sqrt{5}}{2} \right)^n - \left( \frac{1-\sqrt{5}}{2} \right)^n \right\} = {{\phi^n - (-\phi)^{-n}} \over \sqrt{5}}$$

ただし、$$\phi = \frac{1+\sqrt{5}}{2}$$ ここで数学音痴の私は、 $$(-\frac{1+\sqrt{5}}{2})^{-1}= \frac{-2}{1+\sqrt{5}}= \frac{-2(1-\sqrt{5})}{(1+\sqrt{5})(1-\sqrt{5})}= \frac{-2(1-\sqrt{5})}{-4}= \frac{1-\sqrt{5}}{2} $$ と手計算してみないと上の式が納得出来ませんでした。

そこで次のような簡単なプログラムで計算してみました。
#include<iostream>
#include<cmath>

int main()
{
    const double phi=(1+sqrt(5))/2;

    for (int n=0; n<17; n++)
    {
        double f=(pow(phi,n)-pow(-phi,-n))/sqrt(5);
        std::cout << "F" << n << "=" << f << std::endl;
    }

    return 0;
}

結果は、
F0=0
F1=1
F2=1
F3=2
F4=3
F5=5
F6=8
F7=13
F8=21
F9=34
F10=55
F11=89
F12=144
F13=233
F14=377
F15=610
F16=987
となり意外と誤差もなく綺麗に出力されました。たぶん表示桁数を増やすと誤差が出てくるのではと思いますが。