tag:blogger.com,1999:blog-63110639740287848852024-03-06T04:42:51.356+09:00体力的プログラミングUnknownnoreply@blogger.comBlogger7125tag:blogger.com,1999:blog-6311063974028784885.post-57510691028058330142016-01-02T00:03:00.001+09:002016-01-02T00:03:53.363+09:00HTMLでテキストの入力、ボタンなどのタグHTMLで使用できるテキストの入力やボタンなどのタグをすぐ忘れるので、備忘録。<br />
<br />
<input type="text"/><br />
<input type="text" />
<br />
<br />
<input type="button" value="ボタン" /><br />
<input type="button" value="ボタン" /><br />
<br />
<input type="range" /><br />
<input type="range" /><br />
<br />
<input type="color" /><br />
<input type="color" />
<br />
<br />
<input type="radio" /><br />
<br />
<br />
<input type="file" /><br />
<input type="file" />Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-6311063974028784885.post-82809361974327589712015-12-03T18:13:00.000+09:002015-12-25T10:57:12.795+09:00Python リスト内包表記の入れ子など 2つのリストやタプルなどがあり、それらを組み合わせて新しいリストを作成するときにリスト内包表記を使用することができる。これによりコードを短くできる。<br />
<b><br /></b>
<b>X = range(6)</b><br />
<b>Y = range(4)</b><br />
<br />
<b>[(x, y) for x in X for y in Y]</b><br />
<i>[(0, 0),</i><br />
<i> (0, 1),</i><br />
<i> (0, 2),</i><br />
<i> (0, 3),</i><br />
<i> (1, 0),</i><br />
<i> (1, 1),</i><br />
<i> (1, 2),</i><br />
<i> (1, 3),</i><br />
<i> (2, 0),</i><br />
<i> (2, 1),</i><br />
<i> (2, 2),</i><br />
<i> (2, 3),</i><br />
<i> (3, 0),</i><br />
<i> (3, 1),</i><br />
<i> (3, 2),</i><br />
<i> (3, 3),</i><br />
<i> (4, 0),</i><br />
<i> (4, 1),</i><br />
<i> (4, 2),</i><br />
<i> (4, 3),</i><br />
<i> (5, 0),</i><br />
<i> (5, 1),</i><br />
<i> (5, 2),</i><br />
<i> (5, 3)]</i><br />
<i><br /></i>
<b> [[(x, y) for x in X] for y in Y]</b><br />
<i>[[(0, 0), (1, 0), (2, 0), (3, 0), (4, 0), (5, 0)],</i><br />
<i> [(0, 1), (1, 1), (2, 1), (3, 1), (4, 1), (5, 1)],</i><br />
<i> [(0, 2), (1, 2), (2, 2), (3, 2), (4, 2), (5, 2)],</i><br />
<i> [(0, 3), (1, 3), (2, 3), (3, 3), (4, 3), (5, 3)]]</i><br />
<i><br /></i>
<b>{x : y for x in X for y in Y</b>}<br />
<i></i><br />
<i>{0: 3, 1: 3, 2: 3, 3: 3, 4: 3, 5: 3}</i>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-6311063974028784885.post-51680500239197606672015-12-02T22:29:00.002+09:002015-12-08T11:11:28.226+09:00pythonのリスト内包表記、関数型、手続き,numpypythonで1から100までの自然数うち、3の倍数のみを10倍して合計を求める。<br />
<br />
<u>手続き</u><br />
<b>res = 0</b><br />
<b>for n in range(1,101):</b><br />
<b> if n%3==0:</b><br />
<b> res += n*10</b><br />
<b><br /></b>
<u>関数型</u><br />
<b>res = sum(map(lambda n : n * 10, filter( lambda n : n%3==0, range(1,101)))</b><br />
<b><br /></b>
<u>リスト内包表記</u><br />
<b>res = sum([n * 10 for n in range(1,101) if n%3==3])</b><br />
<b><br /></b>
<u>numpy</u><br />
<b>import numpy as np</b><br />
<b>N=np.arange(1,101)</b><br />
<b>res = np.sum(N[N%3==0]*10)</b><br />
<br />
<u>関数型と二項演算子</u><br />
<div class="p1">
</div>
<div class="p1">
<span class="s1"><b>res = sum(map(lambda n : n * 10 if n%3==0 else 0, range(1,101)))</b></span></div>
<div class="p1">
<span class="s1"><b><br /></b></span></div>
<div class="p1">
<span class="s1"><u>関数型(ハードコア版)</u></span></div>
<div class="p1">
<span class="s1"></span></div>
<b>res = reduce(lambda n1,n2: n1+n2,</b><b>(map(lambda n : n * 10, filter( lambda n : n%3==0, range(1,101)))))</b><br />
<div>
<b><br /></b></div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-6311063974028784885.post-8403616417900969762015-12-01T22:36:00.000+09:002015-12-02T21:38:06.856+09:00IPythonのクラスターについてIPython.Parallel(ipyparallel)で、ハマったので(ハマりまくった)ので、ここに備忘録としてメモしておきます。<br />
<br />
手元にあるPCから、リモートにあるPCでipengineを起動して使用したい場合、以下の手順で可能である。<br />
<br />
<b>ipython profile create --profile=parallel --parallel</b><br />
<br />
~/.ipython/profile_parallel/ipcluster_config.pyを編集し以下を追記する。<br />
<b>c.IPClusterEngine.engine_launcher_class = "SSH"</b><br />
<b>c.SSHEngineSetLaucher.engines = {</b><br />
<b> "hostname1" : 10,</b><br />
<b> "hostname2" : 10,</b><br />
<b> "hostname3" : 10,</b><br />
<b>}</b><br />
<br />
~/.ipython/profile_parallel/ipengine_config.pyを編集し以下を追記する。<br />
<b>c.HubFactory.ip = "*"</b><br />
もしくは、<br />
<b>c.RegistrationFactory.ip = "*"</b><br />
<br />
これで準備完了で、ssh-agentなどでパスワードなしでリモートにログインできるようにしておいて、以下のコマンドで各ホストのエンジンを起動する。<br />
<br />
<b>ipcluster start --profile=parallel</b><br />
<br />
これで、リモートホストにprofileを自動で転送され、エンジンが自動で起動する。<br />
<br />
別のシェルで、プロファイルを指定してipythonを起動する。<br />
<br />
<b>ipython --profile=prallel</b><br />
<b><br /></b>
<b>from ipyprallel import Client</b><br />
<b><br /></b>
<b>c = Clinets()</b><br />
<b><br /></b>
<b>c[:].ids</b><br />
<br />
を実行し、指定エンジンの数だけ表示されればOKである。<br />
<br />
これだけである。<br />
<br />
==<br />
<br />
しかし、これだけをするのにハマりまくった。<br />
<br />
まず、ハマった原因として起動コマンドを実行した時に<br />
engines appear to have started successfully と表示されても、実際にはリモートでEngineが起動していな事があった。この原因としては、リモートにおけるipengineの実行環境が整っていなことが原因だった。これは、リモートに個別にログインしてipengineを実行し、起動できるか確認すればわかる。<br />
<br />
また、ipengine_config.pyに、c.RegistrationFactory.ip = "*"を書いておかないと、リモートからエンジンをcontroller?に登録しようとしても出来ないようなので、うまくエンジンが起動出来ないようだ。<br />
<br />
最近?IPython.Parallelが4.xにバーションアップし、ipyparallelモジュールとして独立?したようだ。ハマっている時には、環境中に4.x系と3.x系が混在していた。これ原因かは分からないが、一度確認してみると良いかもしれない。 confingファイルの説明の記述もかなり変わっている。<br />
<br />Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-6311063974028784885.post-24849746906513948462015-11-13T11:08:00.001+09:002015-11-13T11:08:28.689+09:00pythonの表記法Pythonの表記法について<br />
<br />
例えば、以下のようなコードがあるとある。<br />
上下のコードは、PySideでウイジェットのイベントにコマンドを接続するという、同じ働きをもつ。<br />
<br />
list.model.itemChanged.connect( setData )<br />
search_box.button_exec.clicked.connect( setData )<br />
<br />
このコードは、<br />
<div>
<br /></div>
<div>
list . model . itemChanged . connect ( setData )<br />
search_box . button_exec . clicked . connect ( setData )<br />
<br />
と表記してもでも動作する。<br />
<br />
対象ウイジェット->子ウイジェット->イベント->connect (コマンド)の順番で概念が表のような形式で整理されて良い気がする。コーディングスタイルとしては良くないかもしれないが.プロパティやメッソドの連鎖が続く時にこんな感じに書いている。VimやEmacsなんかにあるAlignの機能使えば簡単できますし。</div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-6311063974028784885.post-85214293897266913042015-11-03T09:35:00.001+09:002015-11-03T09:38:44.431+09:00Unityでアニメーションと音声を同期させるUnityで、アニメーションと音声を同期させる方法でハマったのでここにメモしておきます。<br />
<br />
アニメーションで、特定のサイクルに同期させて音をだす必要がり、スクリプトを書いたりしてみた。1日ハッまた結果、スクリプト無しでとりあえずできた。<br />
<br />
<ol>
<li>同期させたいGameObjectにAudio Sourceを加える。</li>
<li>Audio Sourceの「PlayOnAwake」のチェックを外す。</li>
<li>AnimationでAudio Sourceの「Enable」と「Play On Awake」を加える。</li>
<li>Aminationの設定で、Audio Sourceの「Enable」のどこかをチェックを外しておく。アニメーションの1ループ毎にどこかで「Enable」をオフにすると、ループの度に再生されるようだ。</li>
</ol>
<div>
このやり方が、正しいかどうか分かりませんが、とりあえず動作しました。</div>
<div>
<br /></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_cpkBe8Em-NRg7H3AqhGBhk-ZwEFnyshbgP9VxIOFo4K-UTBYLtP2VG_TnLnWhJx_26-5hfOziGVO0_3f8DAZqXdV4U97tSIgqiV9G4BOgV7BrxpjSy3j1kYzvgb77EbfSsapjOHezcE/s1600/unity_sound_animation2.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="168" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_cpkBe8Em-NRg7H3AqhGBhk-ZwEFnyshbgP9VxIOFo4K-UTBYLtP2VG_TnLnWhJx_26-5hfOziGVO0_3f8DAZqXdV4U97tSIgqiV9G4BOgV7BrxpjSy3j1kYzvgb77EbfSsapjOHezcE/s400/unity_sound_animation2.png" width="400" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3V4UVHNS89Kj-q4dnrNCOH1eVj-TADGu2hceNV2k_WpktjbDlk2_3OC8BrL3OYGZzWrwRC4pE4tPJNzkZS9kKhGKJa-GLV4901EGtnXtcqkFOhQ0Psv8EXAntSisARuVRzyV67kctcdo/s1600/unity_sound_animation.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="167" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3V4UVHNS89Kj-q4dnrNCOH1eVj-TADGu2hceNV2k_WpktjbDlk2_3OC8BrL3OYGZzWrwRC4pE4tPJNzkZS9kKhGKJa-GLV4901EGtnXtcqkFOhQ0Psv8EXAntSisARuVRzyV67kctcdo/s400/unity_sound_animation.png" width="400" /></a></div>
<br />Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-6311063974028784885.post-47090518058820091102015-10-20T22:35:00.000+09:002015-10-20T22:38:09.768+09:00ChucK => 音声プログラミング言語を発見以前より、音声のプログラミングをしてみたいと思っていたが、自分にとっては通常のプログラミング言語では敷居が高すぎた。
<br />
<br />
ChucK (最後のKも大文字)という音声プログラミングに特化したプログラミング言語を発見した。これはすごい!<br />
<br />
左右のスピーカーでそれぞれ音量、周波数、位相を調整して音が出せる!!なおも超簡単!!!!<br />
<br />
<a href="http://chuck.cs.princeton.edu/">http://chuck.cs.princeton.edu/</a>Unknownnoreply@blogger.com0