Ubuntu 18.04でマウスポインターを大きくする

GNOMEコントロールセンター(設定)

ユニバーサルアクセス

カーソルの大きさ

をさがして、「最大」を選んだらとても大きくなりました。

という記事を書こうと思って、GNOMEコントロールセンターをアクティビティに入れて探すのに

gnomeでもcontrolでもcenterでも設定でも出てきました。

ので、問題ないと思います。

追記: アクティビティの検索窓は日本語変換が効かないみたいなのですが、日本語でペーストはできるので、実害はないみたいです。 自動起動するアプリケーション を起動するのに使いました。

プログラミング言語別コメント記法

コメントアウトするときのやり方が言語ごとに違うのでネットで探して一覧にしてみました。
ちゃんと表示できるかな。

C++ => // or /* */
swift => // or /* */
JavaScript => // or /* */
CSS => /* */
HTML => <!-- -->
Bash => #
R => #
Haskell => -- or {- -}
Elm => -- or {- -}
vim => "ダブルクォーテーションマーク
Ruby => # or =begin =end
Python => # or """ """ or ''' '''
C => /* */
Markdown => <!-- --> []()
GFM => <!-- --> []()
JSON => コメントはつけられない!!
Java => // or /* */ or /** */
XML => <!-- -->
bat => rem or ::
PHP => // or # or /* */
VBA => ' or rem
SQL => -- or /* */
Objective-C => // or /* */
Tex => % or ¥begin{comment} ¥end{comment}
Perl => # or =comment =cut
JSP => <%-- --%>
VBS => ' or rem
Smarty => {* *}
Scheme(Racket) => ;
ASP => '
Fortran => c or * or !
aspx => <%-- --%>
J(プログラミング言語) => NB.
Scala => //
Lisp(CLisp) => ;
Clojure => ;
Go => //
Hy => ;

JupyterでPythonの勉強

Jupyterでいろいろ遊んでいるのですが、

Jupyter-nbconvert --to markdown notebook.ipynb

でマークダウンに変換できるということしりました。
ダウンなので情報量が減ってしまうのですが、そこそこ感じがつかめます。
ので以下、ご紹介。
本物のノートブックはhttps://github.com/kalz2q/files.gitにあります。


Pythonが苦手です。どうやってべんきょうしたらいいですか。

なぜPythonが苦手と感じるかと自己反省してみると、この収拾のなさというかいい加減さが覚えにくい。
なんらかの思想で統一されているとそれを頼りに記憶のわくぐみをつくるのだが、とかなんとか言う前に勉強しよう。

というので立ち上げたJupyter notebookですのであまり期待しないで進みましょう。

文字列がわかりません。
質問 charはあるのですか。見つからないのでないのではないか。 まあいいいか。

変数は事前に定義するのかどうか。突然x=3とか使っていいの。
やってみてください。 べつにいいみたいです。
3 + "5"とかしたらさすがエラーになりました。

質問フラグと問題フラグについて。

あとで質問で検索したり、問題で復習したりするために、適宜質問と問題という表題を立てますが読むときはあまりきにしないでよい。

問題 色のリストについて文字数のリストを作る。append()を使う。

colors = ["yellow", "red", "green", "blue", "purple"]
colorlength = []
for color in colors :
    colorlength.append(len(color))
print (colorlength)

質問 連想配列(dict、hash)はどうやって作るのですか。
質問 リストからzipで簡単に作れますか。例えばzip(colors, colorlength)とか。
質問 いちいちprintした方がいいですか。それとも変数を素でうちこむのがいいですか。

zip()という関数があった。
思っていたのとはだいぶ違うが例を転記してみる。実験。うむ、これは便利かも。

days = ['Monday', 'Tuesday', 'Wednesday']
fruits = ['banana', 'orange', 'peach']
desserts = ['tiramisu', 'ice cream', 'pie', 'pudding']
drinks = ['coffee', 'tea', 'beer']
for day, fruit, drink, dessert in zip(days, fruits, drinks, desserts):
    print(day, ": drink", drink, "- eat", fruit, "- enjoy", dessert)
english = 'Monday', 'Tuesday', 'Wednesday'
french = 'Lundi', 'Mardi', 'Mercredi'
dict( zip(english, french))
list(zip(english,french))

list()とかdict()とか変な関数ですね。

range()list()で囲むと数列ができる。
おー、これは便利。

list(range(10, -1, -1))

さて、それ以前にPython dictionaryがわからないのでテキストを読む。

{}で作成する。

bierce = {
        "day": "A period of twenty-four hours, mostly misspent",
        "positive": "Mistaken at the top of one's voice",
        "misfortune": "The kind of fortune that never misses",
        }
bierce["day"]

問題 色のリストについて色名をキーに文字数をvalueにした辞書を作る。できた。

colors = ["yellow", "red", "green", "blue", "purple"]
colorlength = []
for color in colors :
    colorlength.append(len(color))

dict(zip(colors,colorlength))
{'blue': 4, 'green': 5, 'purple': 6, 'red': 3, 'yellow': 6}

ファイルを一度に読み込む方法

Jupyterを使ってC++を勉強しています。


Jupyter上なので標準入力の代わりに、stringからデータを読み込んであとの処理で使う、という方法をとっているのですが、テキストファイルを一度に文字列に取り込めないかな、と思い、調べてみました。

c++ read entire text file into string

とかで検索したところ、

std::ifstream t("file.txt");
std::stringstream buffer;
buffer << t.rdbuf();

という解答があったので、Jupyterのセルで実験してみました。

# include <bits/stdc++.h>
using namespace std;
string s;
ifstream ifs("./mycpp/input.txt");
stringstream ss;
ss << ifs.rdbuf();
s = ss.str()

これで、変数 s の中にファイルinput.txtの内容が、空白や改行も含めて全部取り込まれました。

成功です。

JupyterでC++のサンプル

Jupyter上でC++を試行錯誤しながらやったのを、HTMLで書きだしたのを、このブログで紹介しようと思ったのですが、なんだかうまく行きません。



Jupyterのノートの形で見て、触ってもらうのが一番なので、githubに入れておいたので興味のあるかたは



1. JupyterにC++カーネルをいれて(前回の記事参照)

2. https://github.com/kalz2q/files.gitからlearncpp.ipynbをダウンロードして触ってみてください。


htmlにしたもの(learncpp.html)もアップロードしておいたので、見るだけならそれでも見れます。


以上


キーワード: Jupyter notebook, sample, C++11, C++14, C++17

JupyterでC++

Jupyter notebookでC++を使って勉強するのは、基本的には無理です。

なぜならC++コンパイラーであって、Jupyterにのるのはインタープリター言語だけだから。

ところが!!

C++スクリプトとして使う環境があってClangとかClingとかなのですが、それならJupyterのkernelとして使える。


そのインストール手順をまとめました。
このメモ見ながら他のマシンにもインストールできたので、まず大丈夫だと思います。

Jupyter上ではC++17という名前になります。

下記でubuntu16というのはubuntuの16.04という環境ということで、17の人やこれから出る18の場合は読み替える必要があります。

インストール手順

https://root.cern.ch/download/cling/
からバイナリーをダウンロードする。Ubuntu用しかない。
cd ダウンロード
解凍(展開)する。
cd cling_2018-03-26_ubuntu16
cd bin
./clingでclingが使えることを確認する。".q"で終了
cd ../..
mv cling_2018-03-26_ubuntu16 ~/
ダウンロードの中では変なので自分のフォルダーの一番上に持ってくる。
cd
export PATH=~/cling-install-prefix/bin:$PATH
あとで".bashrc"にも対応すること。
次にshareの中のkernelのところに行く。
cd /cling-install-prefix/share/cling/Jupyter/kernel
pip install -e . を実行する。
次にjupyterにcling kernelをインストールする。
jupyter-kernelspec install ~/cling_2018-03-26_ubuntu16/share/cling/Jupyter/kernel/cling-cpp17 --user
最後に好きな場所でjupyter notebooを起動して、NewにC++17があることを確認する。

JupyterのHTMLファイル

 以下はJupyterで作ったページ(filename.ipnb)をJupyterでhtmlにしたものをはてなのhtml編集で書きだしたものです。
すこし問題はあるけど、まあまあそのまま使えている。
----

最初に、ということになるのかな

JupyterにR言語で云々。なのですが、Jupyter notebookで書かれたR tutorialとかない。 自分で勉強するしかないのか。まあいいか。

まずは四則演算から

実行してみて下さい。実験して見てください。

In [1]:
1+3
 
4
In [2]:
10+4*(3/4+100)+1011
 
1424
In [7]:
3^2
3**5
 
9
 
243
In [14]:
10 / 7
 
1.42857142857143
 

割り算が%とかdivとかmodとかは実験したところエラーなので云々。

 

環境

いまの環境はubuntu 16.04。anacondaでpythonやjupyterを入れた。

 

conda install r-essentials conda install rstudio conda install anaconda-navigater

 

とかした。

anaconda-navigatorはとりあえずエラーで動かない。rstudioは画面が小さくてなんとかしなくては。

とりあえず、jupyterのNewメニューでRが選べる状態。 これはこれで大成果だと思う。これがなければRの勉強なんかしていない。

マークダウンの中で上のcondaの例のように<pre><code></code></pre>で書きたい時はどうするのか。 ひょっとするとただそう書けばいいかも。やってみよう。


conda install r-essentials
conda install rstudio
conda install anaconda-navigater

うむ。なんかとても冗長になるが、まあいいか。できた。文中の<code>はバッククォートで囲めばよかった。ということは云々。

conda install r-essentials
conda install rstudio
conda install anaconda-navigater

これはどうだ。バッククォート3個で囲んでみた。

いまやりながらインデントの実験していたら、キーボード・ショートカットのCtrl-]インデント、Ctrl-[インデント英語キーボード日本語キーボードに対応していない!! ま、いいか。Jupyterのキーボード・ショートカットは理不尽なのでどうせなんとかしなければいけない。編集して云々。