はてなでSVG画像を入れる

はてなMarkdownでもHtmlは書いて表示することができる。 SVGはHtmlの規格なのでただ書くだけで結果が表示される。

このソースは

<svg width="200" height="200" xmlns="http://www.w3.org/2000/svg" viewBox="-10,0,200,200">
  <defs></defs>
  <circle cx="77.474" cy="111.072" r="80" stroke="green" stroke-width="8" fill="yellow"></circle>
  <rect x="23.046" y="99.727" width="105.375" height="64.141" style="fill-rule: evenodd; paint-order: stroke; stroke-miterlimit: 11; stroke: rgb(218, 85, 85); stroke-width: 6px; fill: rgba(255, 255, 246, 0.9);"></rect>
  <circle style="" cx="105.895" cy="70.965" r="17.948"></circle>
  <circle style="" cx="48.244" cy="71.346" r="17.948"></circle>
</svg>

です。

オンライン SVG エディターの boxySVG (https://boxy-svg.com/)で手書きで書いて、Elementsボタンで表示されるコードをそのまま貼り付ける。 widthとheightは はてなmarkdown上で加えました。

板チョコの食べ方(アイデア)

明治の板チョコを食べるのに、一枚 50g 全部食べると 279kcal 糖質 25.9g でちょっと重い。 おやつは 200kcal 以下に収めないと食事を調節しなくてはならなくなって本末転倒になる。

200kcal だけ食べたいので、分包しておくことにした。

50g / 279kcal * 200kcal = 36g

板チョコを何枚か買ってきて、お皿のうえで適当に割る。 計りを用意して、36gずつアルミホイルで分包しておく。 アルミホイルはダイソーで 18m 110円で売ってました。 別にラップやティッシュでもかまわないと思う。

これでいつでもチョコレートが食べられます。

ちなみに 25g ずつにしておくと、チョコレートが余らないので作業効率がいいし、カロリーも1枚の半分、約140kcal で暗算しやすいかもしれない。

板チョコは溝に沿って割ることはできないので、食べた量を管理するには重さを計るしかありません。 今回の方法だと食べる前に計っておくので、管理しやすい。

拡張機能を使わずにVSCodeのマルチカーソル機能で行に連番をふる方法

例えば、

10 VSCodeで
20 拡張機能を使わずに
30 連番をふる

というのを書きます。

VSCode
拡張機能を使わずに
連番をふる

という文章に連番を10, 20, 30とつけるとすると、別途番号を用意します。

10
20
30

これを選択して、Ctrl-Cでコピーして、連番をふりたい行頭から3行にAlt+Shift+下矢印でマルチカーソルを入れて、Ctrl-Vでペーストする。 スペースを押す。 Escでマルチカーソルを抜ける。

以上。 簡単ですね!!!!  
 

補足:

連番に限らず、マルチカーソルは表の列を別の表の列にコピペで挿入できるので、便利です。  
 

連番の作り方:

手元にPythonがあれば、端末(ターミナル)で、

python -c 'import numpy; print(numpy.arange(10,101,10))'

=> [ 10 20 30 40 50 60 70 80 90 100]

これをVSCode上にコピペして、前後の括弧を取って、最初のスペースを選択して、Ctrl-Dを何回か押して間のスペースにマルチカーソルを入れて改行すれば縦の列になるのであとは本文の手順。

列のコピペは行数が合っていないと各行にペーストされてしまうので注意が必要です。  
 

感想:

拡張機能も便利そうだけど、基本機能だけでできることを考えるのもいいですよね。 頭の体操になるし、別途応用もきく。

電動アシスト自転車の回生充電機能で筋トレ(アイデア)

ブリジストン電動アシスト自転車で、電源オンの状態で、アシストオフにして、ギアをトップにして、立ち漕ぎで加速、後ろブレーキで回生充電、を繰り返せば充電ができる上にトレーニングになるのではないか。 アシストは上り坂でしか使わない、というアイデアです。

こういった使い方ができるかどうか知りたいので、ネットを検索しているのですが、とりあえず見つかりません。

アシストがオンの状態で立ち漕ぎは危険、とのことなので立ち漕ぎしたいときは必ずアシストをオフにする必要があって、手間がかかる。 現実的ではないのかもしれない。

東京はけっこう坂が多くて、上り坂を利用してスポーツ自転車でトレーニングしています。 上り坂大好き人間です。 上り坂は好きなのですが、遠出をして疲れ果てた帰りなどに、上り坂になると、アシストがあったらなぁ、と思う。 そんなときにだけアシストを使いたい。

自転車でのトレーニングは強い意志がなくても自分を追い込めるので好きです。

現在はアシスト自転車は持っていません。

Colabで学ぶC++

Colabの環境にg++(gcc)があるので、コードセルにC++のプログラムを書いて%%writefileで保存してg++でコンパイルして実行するというやりかたにすればインタラクティブC++が学べる!!!! というアイデアでためしにw3schoolsのC++ TutorialをColab化してみました。

https://colab.research.google.com/github/kalz2q/mycolabnotebooks/blob/master/learncpp.ipynb

Colabで開いて読まれることを想定しています。 Colabで開いて下さい。

非常に初歩的な内容で、頭から実行していくだけでざっくりC++が学べる。 所要時間 30分、てとこかな。

ふだん別の言語をやっていて、ちょっとC++を思い出したい、というような用途にいいかもしれない。

もう少し内容のあるC++学習用のノートブックを作りたいと思うのですが、いい材料ないかな。

Colabで学ぶ NumPy

100 numpy exercises というのがあって、これが素晴らしいのですが、問題と解答を Colab 化するのをやっています。

まだ途中ですが、とりあえず半分 50 題を越えたのでご紹介。

https://colab.research.google.com/github/kalz2q/mycolabnotebooks/blob/master/numpyexercises.ipynb

例によって、Colab で開くことを想定しているノートブックです。

テキストセルに問題を日本語に翻訳してあります。解答がコードセルにありますので、それを実行して確かめる。

疑問があったらいろいろ実験してみる。

というのの繰り返しで勉強ができます。

ほとんどの問題にコードセルを追加して、「実験」をしているのはわたしの理解での別解とか、numpy 使わないで、今どきの python では関数型で簡単に書けるじゃん、とかいろいろやっています。

元のには図や数式があまり入っていないので、追加しようと思っています。

受け身で勉強するより学習がはかどると思うので使ってみてください。

コラブ Colab で学ぶ高校数学

はじめに

Doing Math with Python: Use Programming to Explore Algebra, Statistics, Calculus, and More!
Amit Saha

を Colab でなぞりながら読む。

というのをやっていて、とりあえず最後まで行ったのでご紹介。

元の本の章立ては次のようになっています。

  1. 数を扱う
  2. データをグラフ化する
  3. データを統計的に表現する
  4. Sympy を使った代数と数式処理
  5. 集合と確率で遊ぶ
  6. 幾何図形とフラクタルの描画
  7. 微積分を解く

この内、1章から5章までのノートが

https://colab.research.google.com/github/kalz2q/mycolabnotebooks/blob/master/doingmath01.ipynb

残りのノートが

https://colab.research.google.com/github/kalz2q/mycolabnotebooks/blob/master/doingmath02.ipynb

です。

元の本のプログラムは多くの場合、main を持ったプログラムの形にしてあるのに対し、この Colab では コードセルで走るように書き直してます。

数式は LaTeX で転記しています。

グラフや図形は matplotlib で転記しました。

Colab について

Colab は Google が無料で用意してくれている機械学習環境ですが、Jupyter なので、普通の数学環境でもあります。

自分のマシンに Anaconda などで Jupyter 環境を作る手間をかけることなく、ログインするだけで Jupyter が使える。

ほかの人が作った ノートブックを Colab から開くと自動的にコピーができて、インタラクティブなノートブックが自分のものになって、自分の GitHub に保存することもできる。

Jupyter ノートブックをオンラインで読む方法はいままでも nbviewer をつかったサイトがありましたが、開けて読めるだけでインタラクティブではありませんでした。

ある意味、夢のような環境が Colab だと思います。 無限に勉強できてしまう!!!!

Colab で学ぶシリーズ

今回は本を読みながら数式とプログラムの実験をする、というノートブックでしたが、これで Python, Numpy, Sympy, matplotlib, LaTeX がだいたいわかったので、同じ手法でいろんな本のノートをとってみようかと思っています。

イデア

  • Colab で学ぶチャート式数学の例題集
  • Colab で学ぶ幾何
  • Colab で学ぶHaskell
  • Colab で学ぶ物理
  • Colab で学ぶプログラミングの古典 Structure and Interpretation of Computer Programs とか
  • Colab で学ぶ数学の古典

とか