Hello World / plɹoM ollǝH

Programmers Live in Vain

Uncategorized

pythonのreversedはイテレータを返す

反転したリストを複数回使うときにハマった a = reversed([1, 2, 3]) # イテレータを返す for x in a: print(x) for x in a: print(x) # ここは呼ばれない reverseなどでリスト自体を反転させておくか a = [1, 2, 3] a.reverse() for文ごとにreversedを呼べ…

プログラマのためのMaya攻略法

Mayaの内部構造をgoogle先生をウロウロしながら理解するのは効率が悪いので次の方法がおすすめ Complete Maya Programmingを読む devkitのサンプルを覗く MELコマンドの仕様はリファレンスを読む Complete Maya Programmingは分厚く読むのは疲れるが、ツール…

Raspberry Piでトイレにクラシック音楽を流す

人がきたら音楽を流す装置をトイレに設置しました(割と好評) ケースはRaspberry Piの箱に100均で買った折り紙を貼って作成 本体のUSBでBluetoothスピーカーを充電 必要なもの Raspberry Pi 3 Model B SDカード 電源アダプター 人感センサー Bluetoothスピ…

Haskell環境構築メモ

これは自分のためのメモだから良い子は見ちゃダメ OS: Windows10, IDE: Atom インストール 1. Haskell PlatformからインストーラをDLして実行 www.haskell.org 適当にNext押してたら%APPDATA%\local\binにインストールされてパスが通った stackのセットアッ…

Python3でSkypeにメッセージ送信

skpyを使います 準備 pip install skpy 最近のイベントからグループチャットを検索してメッセージ送信 from skpy import Skype def send(user, password, topic, message): sk = Skype(user, password) for c in sk.chats.recent(): chat = sk.chats[c] if h…

RaspberryPi 3 RPIOでサーボモーターを動かす

RPIOをインストール モーターは デジタル・マイクロサーボ SG90 を使いました 下記サイトを参考に github.com こんな感じでインストール cd ~ git clone https://github.com/metachris/RPIO.git --branch v2 --single-branch cd RPIO sudo python3.4 setup.p…

ラズパイ起動時にBluetooth接続してwav再生

自分の環境でちゃんと動く記事が無かったのでメモ。設定ファイルをあちこち編集するのは好きじゃないのでbash_profileで頑張った。Linuxめんどい。 環境 Raspberry Pi 3 Model B OS 2016-11-25-raspbian-jessie 1. モジュールインストール sudo apt-get inst…

Python lambda式の落とし穴

Pythonのクロージャ内部で使われている変数は通常、実行時に値が評価されます。for文などと組み合わせてlambda式やローカル関数を使うときは、ちょっと気を付けないといけません。 例えば、0~4まで出力する関数を5つ用意したいとき # 関数作る functions = …

C++構造体のXmlシリアライザを自動生成したい

C#だったら属性を書くだけで済むけれど、C++はそういうわけにはいかないのでXMLで定義したフォーマットからコードを生成するスクリプトを書いた。 まずはデータフォーマットをXmlで表記する。 <Root> <Type name="Scene"> <Type name="Material"> <Type name="Property"> <value name="Name" type="String"/> <value name="Value" type="Float[]"/> </Type> </type></type></root>

TransBook T90Chi T90CHI-32G を買ったあとやった事

コード書き専用マシンとして ¥30,000 で購入 不要なソフトウェアを削除 Kingsoft office iフィルタ McAfee Asus Live Update Asus Web Storage Asus Screen Saver Asus Splendid Video Enhancement Technology Asus ATK Package Windows10 にアップグレード…

ffmpeg flv to mp4

ffmpegを使ってflvをコンバートしたら動画がカクカクになってしまったのでメモ 環境 Windows 8.1 + ffmpeg static build 現象 WMPではカクカクする GOM Playerで見ると普通の動画に見える Chromeではスローモーション再生 詳細情報を見るとフレームレートが1…

Node Graphでテクスチャ生成

Substance買うお金無い Python # conding: utf-8 import math from PIL import Image PI = 3.1415926536 # 正弦 class Sin: def __init__(self, in_x): self.x = in_x def __call__(self): return math.sin(self.x()) # 余弦 class Cos: def __init__(self, …

Perlin Noise Marble

noiseモジュールをインストールしてPerlin Noiseを使ってみた。 Python # conding: utf-8 from PIL import Image import math import noise w = 128 h = 128 pn_freq_u = 10.0 pn_freq_v = 10.0 pn_octave = 3 wv_freq_x = 3.1416 * 2.0 * 10.0 wv_noise_sca…

Turing Patterns

Gray-Scottモデルの反応拡散式で模様を自動生成してみました。 C++ pythonでは処理速度が厳しいため反応拡散の計算はC++で書きました。 #define BOOST_PYTHON_STATIC_LIB #include <boost/python.hpp> #include <vector> #include <algorithm> boost::python::list Create(int in_w, int in_h, flo</algorithm></vector></boost/python.hpp>…

テキストから Node Graph 作成

Node Graph のデータをテキストにしてみます。 テキストデータ 各行でノードを定義する。 左辺に名前、右辺に定義を書く。 右辺がリストとして解釈された場合、第一要素には型名、第二要素には接続元のリストを記述する。 リスト型で解釈されない場合は値を…

Node Graph Architecture

Substance Designer www.youtube.com 巷で流行りの設計。 Python 入出力が定義された各ノードを連結してグラフを作成し、グラフの値がほしいときにノードを辿って必要な解決をおこなう。 # conding: utf-8 # 値を保持するだけのノード class Value: def __in…

boost::pythonでC++のコードをpythonから呼んでみる

まずは単純な関数やクラスを自作してpythonから読んでみます。 C++ いつものようにdllプロジェクトを作成してboostとpythonのlibをリンクします。 出力されるファイルの拡張子をdllからpydに変更しておきます。 #define BOOST_PYTHON_STATIC_LIB #include <boost/python.hpp> c</boost/python.hpp>…