てきとーになんか書きます

過去の記事はね,汚点.

続・幸せになるために

はじめに

前記事

spark6251.hatenablog.com

大事なことは「幸せになるためにはやりたいことをやる.そのために面倒なことに掛ける時間を減らす」ということ.

プログラマの三大美徳

プログラマ諸兄にはお馴染みであるが,それ以外の者には馴染みがないだろうため引用しておくと

We will encourage you to develop the three great virtues of a programmer: laziness, impatience, and hubris. --Larry Wall*1

である.日本語に訳すれば「プログラマには3つの美徳がある.怠惰・短気・傲慢だ」といったところだろうか.
殊,怠惰は重要である.

作業量と作業時間と知識量

ここで言う作業量とは,成すべき仕事の量ではなく,実際に手を動かす工数とでも言うべきものである.
作業量は知識量に依存し,作業時間は作業量に依存するため,作業時間は知識量を増やせば減らすことができることが分かる.
即ち,面倒なことに掛ける時間を減らすために,楽になるために知識量を増やすのが良い.
怠惰であろうとするために勤勉であるため,怠惰であることと矛盾しているように思えるが,本質てきには怠惰に帰着する.

後輩の言葉なのだけれど,「まともな道具を持ってないのに手持ちの道具だけでなんとかしようとするもんじゃないですね」は常に意識すべきことである.

知識量の増やし方

www.google.co.jp

現代のネットワークの力は素晴らしい.検索をするだけで簡単に情報が手に入る.
情報系の人間は多くの場合「ちょっとした手間」をプログラム*2で解決する.
その他の人間はあまりそれをしない傾向があると思うが,そのために何度も繰り返し同じ行動をするのは馬鹿らしい.ああ,そうだ,猿にタイプライターを打たせよう.
怠惰であろうとして怠惰でいることが,実は最も面倒な道であることに気が付かないことは危険である.
その道は時間の浪費だけでなく精神に著しい負担を掛ける.人間は,唯唯Excelスクリーンショットを貼る作業をこなすことが出来るようにはなっていない.健全に,の話だ.

自身が理学部であるため適当にそれらしい例を挙げるならば,そう,例えば常微分方程式をプログラムで解く時などはそうだ.
C++のライブラリであるBoost C++ Librariesには常備分方程式を解くBoost.odeintが用意されている.それは微分方程式を解くプログラムを容易に書かせる.
但しグラフにプロットをする作業までC++で書くのは良くない.そういう作業はPythonが適している.matplotlibmplot3dは素晴らしい.

信頼できるものであれば,ネット上にあるものを利用して作業量を減らすのは全く悪ではないし,むしろそれを行わないことこそ悪である.
極稀に作業量を重視する馬鹿な人間は存在するが,まあ,それは仕方ない.その分サボって時間を潰そう.1時間の仕事を10分で終わらせて50分サボれば同じだ.

おわりに

幸せになるために怠惰であるべきであるし,そのために勤勉であるべき.

*1:Programming Perl (1st edition), Oreilly And Associates

*2:Linuxコマンドや正規表現なども含む

幸せになるために

はじめに

幸せになりたい.

定義:幸福度

幸福度とは単位時間あたりに幸福であると感じる割合である.

幸福度

人生の一つの尺度として幸福度が挙げられる.充足度などと換言しても差し支えないと思う.
短期的な幸福とはある瞬間に幸福を感じるということであり,長期的な幸福とは幸福度が高い状態を指す.それを高めたかった.

考え

要するに瞬間的な幸福が連続すればそれは幸福度が高いと言えると思った.

幸福度の向上

幸福を感じる瞬間は人に依るが,結局のところ自分のしたいことをしている瞬間は大抵幸福である.
つまり,休養等はもちろん含むが,可能な限り自分のしたいことをすることが幸福度の向上へとつながる.自明.

では可能な限り自分のしたいことをするべきにはどうするべきか.やりたくないことに向かう時間を減らす必要がある. 例えば,大学生の場合は無意味なレポートなどが存在する可能性があるし,社会人の場合は……社会人になったことがないので知らないが,まあ色々あるだろう,たぶん,きっと,恐らく.
やりたくないことに費やす時間を減らすためには手を抜くことを覚えなければいけない. ここで言う手を抜くとは「クオリティを標準以下に落としてでも工数を減らすこと」ではなく「期待されているクオリティが標準程度で十分ならば,無意味に高めないこと」である.
手の抜き方が分からない場合,必要のない部分にも時間と労力をつぎ込むことになり,結果,時間の浪費と精神の摩耗に苛まれることになる.

総じて楽を覚えることが重要とも言える.

結論

幸福度を高めるためには自分のやりたいことをやる時間を増やせば良いので,そのためにやりたくないことをやる時間を減らす必要がある.
手を抜いて無用な時間と労力を減らすことが肝要.

おわりに

なんだかんだで自分は手抜きのプロだから問題ないとは思う.

The umbilical points of the ellipsoid in R^3

Problem

Find the umbilical points of the ellipsoid \( x^{2}/a^{2}+y^{2}/b^{2}+z^{2}/c^{2}=1 \)  (a>b>c>0) .
The ellipsoid in  \mathbb{R}^3 may be parametrized as \[ \begin{align} p(u,v)=(a\cos u\cos v,b\cos u\sin v,c\sin u) \end{align} \]

Solution

Partial differentiating  p(u,v) with respect to  u and  v \[ \begin{align} p_u&=(-a\sin u\cos v, -b\sin u\sin v, c\cos u)\\ p_v&=(-a\cos u\sin v, b\cos u\cos v, 0)\\ p_{uu}&=(-a\cos u\cos v, -b\cos u\sin v, -c\sin u)\\ p_{uv}&=(a\sin u\sin v, -b\sin u\cos v, 0)\\ p_{vv}&=(-a\cos u\cos v, -b\cos u\sin v, 0) \end{align} \] The coefficients of the first fundamental form \(E\), \(F\), \(G\) may be found by \[ \begin{align} E&=p_u\cdot p_u\\ &=a^{2}\sin^{2}u\cos^{2}v+b^{2}\sin^{2}u\sin^{2}v+c^{2}\cos^{2}u\\ F&=p_u\cdot p_v\\ &=\left(a^{2}-b^{2}\right)\sin u\cos u\sin v\cos v\\ G&=p_v\cdot p_v\\ &=a^{2}\cos^{2}u\sin^{2}v+b^{2}\cos^{2}u\cos^{2}v \end{align} \] We obtain the normal vector \( \nu \) \[ \begin{align} p_u\times p_v&=\cos u(-bc\cos u\cos v, -ac\cos u\sin v, -ab\sin u)\\ |p_u\times p_v|&=\cos u\sqrt{a^{2}b^{2}\sin^{2}u+b^{2}c^{2}\cos^{2}u\cos^{2}v+c^{2}a^{2}\cos^{2}u\sin^{2}v}\\ \nu&=\frac{p_u\times p_v}{|p_u\times p_v|}\\ &=\frac{1}{\Delta}(-bc\cos u\cos v, -ac\cos u\sin v, -ab\sin u) \end{align} \] where \( \Delta=\sqrt{a^{2}b^{2}\sin^{2}u+b^{2}c^{2}\cos^{2}u\cos^{2}v+c^{2}a^{2}\cos^{2}u\sin^{2}v}\).
The coefficients of the second fundamental form \(L\), \(M\), \(N\) may be found by \[ \begin{align} L&=p_{uu}\cdot\nu\\ &=\frac{1}{\Delta}abc\\ M&=p_{uv}\cdot\nu\\ &=0\\ N&=p_{vv}\cdot\nu\\ &=\frac{1}{\Delta}abc\cos^{2}u \end{align} \] We obtain Gaussian curvature \(K\) and mean curvature \(H\) \[ \begin{align} K&=\frac{LN-M^{2}}{EG-F^{2}}\\ &=\frac{1}{\Delta^{4}}a^{2}b^{2}c^{2}\\ H&=\frac{1}{2}\frac{EN-2FM+GL}{EG-F^{2}}\\ &=\frac{abc}{2\Delta^{3}}\left(a^{2}\left(\sin^{2}u\cos^{2}v+\sin^{2}v\right)+b^{2}\left(\sin^{2}u\sin^{2}v+\cos^{2}v\right)+c^{2}\cos^{2}u\right) \end{align} \] Let \[ \begin{align} \textrm{(curvature)}=\frac{L\xi^{2}+2M\xi η+Nη^{2}}{E\xi^{2}+2F\xi η+Gη^{2}}=\lambda \end{align} \] If principal curvature are \( \lambda_1 \), \( \lambda_2\) (\( \lambda_1\leq\lambda_2 \)), then \[ \begin{align} \textrm{(umbilical point)}&\Leftrightarrow \lambda = \lambda_1 = \lambda_2 = \sqrt{K} :\textrm{constant}\\ &\Leftrightarrow\frac{L\xi^{2}+2M\xi η+Nη^{2}}{E\xi^{2}+2F\xi η+Gη^{2}}=\sqrt{K}\\ &\Leftrightarrow \exists k \ \textrm{s.t.}\ L=\sqrt{k}E, M=\sqrt{k}F, N=\sqrt{k}G \end{align} \]

\(F=0\) by \(M=0\). Thus \(\sin u\cos u\sin v\cos v=0\). Then

  1. \(\sin u=0\)
    Not exist the umbilical points, since \(a>b>c>0\).
  2. \(\sin v=0\)
    Since \(\sin v=0\), \(\cos v=1\). Then the ellipsoid is \[ \begin{equation} p(u,v)=(a\cos u, 0, c\sin u) \end{equation} \] By \(\textrm{(umbilical point)}\Leftrightarrow E/L=G/N\) \[ \begin{align} a^{2}\sin^{2}u+c^{2}\cos^{2}u&=b^{2}\\ a^{2}\sin^{2}u+c^{2}\left(1-\sin^{2}u\right)&=b^{2}\\ \sin^{2}u\left(a^{2}-c^{2}\right)+c^{2}&=b^{2}\\ \sin^{2}u\left(a^{2}-c^{2}\right)&=b^{2}-c^{2}\\ c^{2}\sin^{2}u&=c^{2}\frac{b^{2}-c^{2}}{a^{2}-c^{2}}\\ c\sin u&=\pm c\sqrt{\frac{b^{2}-c^{2}}{a^{2}-c^{2}}}\\ z&=\pm c\sqrt{\frac{b^{2}-c^{2}}{a^{2}-c^{2}}} \end{align} \] Similarly, \[ \begin{align} a^{2}\left(1-\cos^{2}u\right)+c^{2}\cos^{2}u&=b^{2}\\ x&=\pm a\sqrt{\frac{b^{2}-a^{2}}{c^{2}-a^{2}}} \end{align} \] Therefore, the umbilical points of the ellipsoid on \(\mathbb{R}^3\) are \[ \begin{equation} \left(\pm a\sqrt{\frac{b^{2}-a^{2}}{c^{2}-a^{2}}},\,0,\,\pm c\sqrt{\frac{b^{2}-c^{2}}{a^{2}-c^{2}}}\right)\ \textrm{(Any double sign)} \end{equation} \]

  3. \(\cos u=0\)
    Not exist the umbilical points, since \(a>b>c>0\).

  4. \(\cos v=0\)
    Not exist the umbilical points, since \(a>b>c>0\).

Conclusion

The umbilical points of the ellipsoid on \(\mathbb{R}^3\) are the four points

\[ \begin{equation} \left(\pm a\sqrt{\frac{b^{2}-a^{2}}{c^{2}-a^{2}}},\,0,\,\pm c\sqrt{\frac{b^{2}-c^{2}}{a^{2}-c^{2}}}\right)\ \textrm{(Any double sign)} \end{equation} \]

PDF

the_umbilical_point_of_the_ellipsoid.pdf - Google ドライブ

はてなブログMathJaxへの(?)文句

\etaはηって書かなきゃいけないし,\textrm{const}が何故か弾かれるのでクソ.

と思ったのだけれどググる限り再現状況が良く分からないので結局何が悪いのか分からない.

勉強会開催にあたって考えるべきこと(あと僕自身が発表をする時の話)

はじめに

勉強会を開催する時,考えることが結構あると思う.
主催をしたことはないため参加者側から思うことを書いていく.基本的には募集段階のみの話.

またこの記事ではYAPCやPyConと言った非常に大きなカンファレンスではなく,100人以下程度の規模の勉強会を想定する.

募集段階

IT系勉強会は多くの場合ATNDやdoorkeeperなどのサービス(以下告知ページ)を用いて募集が掛けられる.
どれを選ぶかは,まあ,大差はないと思うのでどれでも良いと思う.好みのもので.

勉強会の名前

これはまあなんでも良いと思う.過去の色々な勉強会を見て自分が良いと思うものをつければよいだろう.
ただ明らかに名称と内容がかけ離れるのは避けるべきだ.例えば初心者向けと書いておきながら初心者向けじゃない場合など.

開催場所

どうにもこうにも場所がなければ始まらない.当然告知ページにも場所は記載する.
この時建物が一棟(公民館とかコワーキングスペースなど)なら良いのだが,複数の棟から成る場合(大学など)その棟の名前を記載するべきである.
例えば「○○大学 ××教室」と書かれていても場所は分からない.大学のキャンパス全体の地図を見ても教室名まで全て書いてある地図などまず無い.Google Mapを併記するもピンの場所が間違っていた場合など最悪だ.
どの大学でも公式サイトに俯瞰図があるはずなので絶対に棟の名前を記載するべきだ.俯瞰図のURLも記載するとなお良い.
また大学の場合は5月中はエアコンが運転不可という場合もあるのでその辺りも考える必要がある.

勉強会自体の概要

こういう勉強会です,ということを書けば良い.

今回の勉強会の概要

もし勉強会にサブタイトルとしてテーマがあるのなら(○○勉強会 ――Webデザインを知ろう――だとか)それについて言及し,発表内容の限定をする.

タイムテーブル

Boost.勉強会 #17 東京 - connpassのように時間,タイトル,発表者.もしくは,Boost.勉強会 #16 大阪 - Boost.勉強会 大阪 | Doorkeeperのように発表内容も含めるなどが一般的か.

可能ならば開場時間も記すと良い.というより開場時間ぐらいは簡単に記せるはずなので記すべきだと思う.大抵は30分ぐらい前から開いてるが…….

食事について

昼を跨ぐ勉強会も結構ある.その際,コンビニが近くにある,ファミレスとかがある,大抵ある,ぐらいは記載しておくと良いと思う.
会場自体の飲食も記載するのが良い(まあ大抵飲食OKのところとるだろうけども).

その他注意事項

例えば入るのにゲートを開ける必要があるとか,そういう場合は適宜記す必要がある.

懇親会

とても小さな勉強会(~15人程度)なら近くのお店に行きます程度の告知でも良いと思う.
それなりに大きくなるならまた別に考える必要があるけど.

公開時期について

大きな勉強会(50人~)なら2ヶ月前程度,小さな勉強会(~30人)なら1ヶ月前程度ぐらいから告知をするべきかなと思う.まあこの辺は感覚.

勉強会当日

適切に地図を示せば当日の参加者は迷わないはずだ.まあ極稀に地図が読めない人間が出てくるかもしれない.

道案内

たまに会場近くに張り紙をして道案内をする場合があるが,そもそもきちんと告知ページで記していれば必要がないはずだ.
例えば大学構内でやる際,道案内(「○○勉強会はこちら→」みたいな)のやつを結構広い範囲に貼るとしても(会場前のみではないの意),大学全体を借りているわけではないし,また手間が無駄に増えるだけだし,剥がし忘れでもしたら最悪だ(通常はカウントするだろうが).勿論これについても普通は許可を取る必要がある.

おわりに

自分も主催する時いろいろ考えなきゃなあ.

この記事のMotivation

この記事はオープンセミナー2015@岡山に行ってちょっと色々思ったので書いた.ので,ついでと言っては何だけれど,若干の感想を記したい.

オープンセミナー2015@岡山の感想

とりあえずまあ,近場の勉強会行ったこと無いし行くか,みたいな感じで行った.
どうでもいいけど結構「身内ネタで発表を保たせる人」っているんだなあと思った.

僕は身内ネタを入れない発表をする.そもそも身内ネタを入れる発表が嫌いだ.
身内ネタは確かに知っている人たちの間で盛り上がるが,知らない人は完全に白けてしまう.たぶん知らない人から見ると「ああ,この人達ただわいわいしたいだけなのかな」とか色々思ってしまうと思う.
本人と周りの人は楽しいだけの身内ネタ,やるべきじゃないよなあ,という感じ.

3Dプリンタを使用した雑感

はじめに

岡山大学テクノロジーラボの課外活動の一環として,就実大学3Dプリンタを使用させて頂いたのでその感想.

筆者の知識

そもそも僕には3Dプリンタの現状(スペック)に関する知識が殆どなかった.
初めて3Dプリンタを知ったのは3年ほど前.
その頃の3Dプリンタに関しては「新しい技術ではあるがまだ実用ではない」といった印象であった.あと高かった(詳しくはWikipediaの記事でも読むのが良いと思う).
2年ぐらいすると

といった実用的なものが出だしたと思った.

ちなみに2014年5月8日には「3Dプリンタで銃を作製」云々の事案があった時期である.規制が早急に強化されなかったのは良いことであった.

作製したもの

使用した3Dプリンタは3D Magic Egg(恐らくMF-1050-KK(2014/08)).価格は約20万で,教授曰く「高いものではない」とのこと.
写真の通り,今時の3Dプリンタは文字の成形もきちっとしてくれるようである,ストラップ用の穴もきちっとできている.
唯,mやhなど一部がくっついているのでセリフが無いフォントの方が良いのかもしれない.
ちなみに周囲の枠のようなものはノズルクリーニングの一種だと思われる.

所要時間

  • ノズルとテーブルの加熱
    • 5分程度?(ものに依らず一定)
  • 成形
    • 今回のモデルでは10分程度であった.
  • 自然冷却
    • 10-15分待つのが良いとされていた.

今回の製作物の問題点

今回はモデリングに失敗した部分があった(モデルの作成者は僕ではないが).これは3Dプリンタのスペックの理解がなければ難しいことである.

  • 文字の一部の結合
  • 文字の視認性
    • 白一色だと意外と見づらかった.文字にもう少し厚みをもたせる?
    • もしくは作製した後になんか色付けするのも良いのかもしれない.
    • 2色刷り(?)の場合くっつくのかが気になるところ.

モデリングする人へ若干でも参考になれば幸いである.

おわりに

5,6年ぐらいしたら(それなりに良い)3Dプリンタが市井の人でも簡単に買える値段になるのかなあと思ってる.

目指せウィキペディアン

はじめに

ぶっちゃけ唯の翻訳練習.

ウィキペディア

ウィキペディアン (Wikipedian) とは、ウィキペディアの執筆者・編集者のことです。ウィキペディアはプロジェクトの性質上広く一般に開かれており、誰でもウィキペディアンとなることが出来ます。*1

また

ウィキペディアン(英語表記=Wikipedian、日本語表記=ごろつき、中国語表記=田吾作小便禿、朝鮮語表記=沈化巣)とは、ウィキペディアに服従させられている奴隷たちと、無駄に多いルールを盾に悪あがいている妨害工作員たちの総称である。日本語版の奴隷の多くは秋葉原に生息している。*2

というわけだ.

昔のMotivation

そう,Motivationである.日本語に訳すと動機が大体の場合適訳であるが,個人的にはMotivationは「動機+α」程度の意味に感じる.

元々Wikipediaの英語記事を翻訳(いや,当時は和訳だ)しだしたのは高専4年生の春休み頃だ.つまり約1年と少し前ということになる.
この時のMotivationは量子コンピュータであった.量子コンピュータに関する日本語記事があまりなかったので(文献はそれなりに充実してきているが),手当たり次第に量子力学量子コンピュータに関するWikipediaの英語記事を漁っていた.
Wikipediaの英語記事は日本語記事に比べて意外としっかりしていることが多いというのが所感である.勿論良くも悪くもWikipediaである,全てを鵜呑みにする気は毛頭ない.
その後量子アルゴリズムから数学の問題へと発展し,量子アルゴリズムに関わりのある数学記事を読みだした.Hidden Subgroup ProblemとかLattice Problemだとか,そのうちここいらの日本語記事も書ければ良いなとは思う.実はShorのアルゴリズムの日本語記事も存在しない.Groverのアルゴリズムの記事は存在するのだが.
まあともかくこの時期は適当に和訳して自分でpdfにまとめて「面白いな」などと思う程度であった.つまり,日本語記事として作っていなかったのだ.

今のMotivation

おおよそ以上の経緯を経て,今は気晴らし程度に「英語の精読」をすることをそれなりのMotivationとしながら日本語記事を作っていっている.まあ,Wikipediaに登録したのすら数日前なのだが…….
Motivationがもう1つあるとすれば,単に日本語記事を充実させたいということか.特に数学的知識が無くとも(高校生程度の数学の知識は一般教養とする)パッと呼んでみて面白さを感じる数学の記事というのは意外とあるものだし,2014年6月とかはそういう記事を和訳していた記憶がある.超球(n(≧4)次元球)とかそういうの.そういう記事が日本語であれば,面白みを感じる人が増えるのではないかという若干の願いである(少なくとも両手で数えるぐらいは増えてくれると思っている).

執筆時間

問題は時間が掛かるということだ.今回Hadamard変換超球の体積に関する記事を翻訳し,Wikipediaに日本語記事を作成した.これらは事前に和訳していたのだが,当時の和訳が酷い部分がそれなりにあったので修正しながらの作業だったので時間が掛かってしまった.Hadamard変換の方は覚えていないが,超球の体積の方は一応過去の自分の和訳が存在する且つ数式コピペであっても4時間近く掛かった.

増える(英語を翻訳した)日本語記事

ここ最近日本語記事が増えているように思う.ザッと見ただけでも球(数学)超球面量子情報科学などの記事が増えていた.これらは過去に自身が和訳していた記事である.

おわりに

時間が掛かるので飽くまでも気晴らし程度に留まると思う.それでも勿論精読はするし,しかし(特に知識不足からくる)誤読もあると思うので,それはきっと有識者諸氏が訂正してくれると信じている.

翻訳に関して私見を述べておく.
単に英語を日本語にした文章は和訳であり翻訳ではない.翻訳は,原文の意味を良く把握し,その分野に関して良く知り,筆者の言いたかったことを良く考えた上で,時には意訳をし日本語として分かりやすく,そうして日本語を吟味するものが翻訳である.

GCC 5.1がリリースされた

はじめに

2015/04/22,GCC 5.1がリリースされた.
ちなみに2015/04/23にはUbuntu 15.04 Vivid Vervetが,2015/04/25にはDebian 8.0 Jessieがリリースされる.

Clang

Clangは
2013/06/17にリリースされたClang 3.3でC++11に完全対応していた.
2014/01/06にリリースされたClang 3.4でC++14に完全対応していた.
2015/02/27にリリースされたClang 3.6でC++1zにほぼ完全対応している.*1

GCC

GCC
2013/03/22にリリースされたGCC 4.8.0でC++11に完全対応していた.*2
2015/04/22にリリースされたGCC 5.1.0でC++14に完全対応していそうだ.*3

ちなみにGCCGCC 5よりGCC x.1.0がそのバージョンの1stリリースとなる.*4

GCC 5.1.0

C++14への対応は先の脚注を参照すれば良い,Clangから遅れること約1年3ヶ月,C++14に完全対応した.
C++1zへの対応は残念ながら該当のページが見当たらなかった.恐らく全て未対応だろうか?
またCに関してデフォルトが-std=gnu89から-std=gnu11になったため,恐らくC11にも完全に対応したのだろう.

Go 1.4.2にも完全対応している.

おわりに

一次資料の出典大事だよね.