2011-01-01から1年間の記事一覧

std::stringに関するメモ

C++

メンバ関数 http://diary.overlasting.net/2011-02-16-1.html

文字列に関するメモ

C++

http://victreal.com/Junk/_T/index.html 後で読む。

CStringに関するメモ

C++

メンバ関数 http://www.page.sannet.ne.jp/mtoga/lang/cv/bih-m_11.htm http://hanbeeonline.web.fc2.com/MFC_Tips/CString.htm http://typea.info/tips/wiki.cgi?page=MFC+CString http://www.kab-studio.biz/Programing/PragmaTwice/Main/222.html

Pythonのリスト

C++

Pythonのリストは、Cで配列で実装されている。C++でこれをやるには以下などがある。 std::vector (STL) CArray (MFC) std::vectorが一番速かったので、これを使うことにする。 CArrayでサイズ指定しても遅かったし、リンクリストのCListなどもやはり遅かった…

C++11のVS2010対応状況

C++

C++11の機能で、どこまでVS2010で対応しているか少し調べた。 以下対応しているもの。 ラムダ式 std::shared_ptr std::unordered_map 以下対応していないもの。 コンテナの初期化 (vector v = {1,2,3];) foreach メンバー初期化子 以下、ラムダ式の例(注:MF…

CMapのサンプル

C++

FEMで使う場合、ユーザー定義クラスとハッシュを組み合わせる必要がある。友人からサンプルをもらったので、メモしておく。 私は、FemNode2が気に入ったので、そちらを流用することにする。 #pragma once #include "stdafx.h" class FemNode { public: int i…

文字列型

C++

基本は、文字セットが2つ。UnicodeとMultiByte。 VisualStudioでは、デフォルトで、Unicodeの設定になっている。 例えば、VS2010では、メニューから「プロジェクト - ...のプロパティ - 構成プロパティ - 全般」の文字セットで、どちらかを選択出来る。 多…

ハッシュ

C++

C++でハッシュ(もしくはマップ)として使えそうなのは以下のもの。 STL: std::hash_map (マップ、SGIのSTLでありC++標準ではない) STL: std::map (マップ) MFC: CMap (ハッシュ?) C++11: std::unordered_map (ハッシュ、正式にはVS2010から) hash_mapよりCM…

YAGNI

YAGNIは以前から聞いたことあったが、今さらながら再度勉強になる。 http://ja.wikipedia.org/wiki/YAGNI バグを減らすために最も良い方法も、あまりコードを書かないことである。 あまりコードを書かない方法は以下の通り。 Pythonなどの「動的言語を使う」…

メモ

C++

shared_ptrのメモ http://d.hatena.ne.jp/haru-s/20081231/1230716657 参照カウントだから、もちろん循環参照には使えない。。。 auto_ptrは非推奨。 自分でnew、deleteするなら、積極的に使うべき。 typdedefで別名付けは、ケースバイケースでソースが読み…

自作プリポスト開発

FEM

自作プリポスト開発で、スマホのアプリみたいに、機能はプラグインとして、1機能100円とろうと考えていたが、短時間で広まる速度を考えたら、Donation方式の方が良いという結論に至った。やはりスマホはユーザ数が多いから、薄利多売で行けるが、FEM業界…

自作FEMプリポストの設計

FEM

以下の仕様で、自作FEMプリポストの今後の開発を検討。 基本機能は無料(モデルの表示、BDFファイルの入出力、結果処理) ネット上のAsset Storeからプラグインのダウンロードは有料(1機能100円〜500円程度) (プラグインがバージョンアップされた場合には、自…

C++最高!

自作FEMアプリのベースの部分をC言語で作成してみたが、ベースの部分を作るのさえ苦労したし、そのベースを使う部分も汚いコードになってしまう。よく考えてみると、GUIはC++になるので、それならば初めからC++で作ってしまった方が速いし、統一性もある。GU…

PySideの記事

PySideによるQtプログラミング入門 (http://morchin.sakura.ne.jp/pyside_qt/index.html) 公開した。

ビルトインであってほしい関数群

Lua

メモとして貼り付けておく。 function string.strip(self) return (string.gsub(self, "^%s*(.-)%s*$", "%1")) end function string.split(self, delim) if delim == '' then error("empty separator") end local is, ie local t = {} -- タブ・空白で分割 i…

自作アプリC言語化計画

プログラミング言語を以下の基準で分類してみよう。 高級 or 低級 高速 or 低速 高級言語の代表格はPythonでしょう。高速言語の代表格はC/C++でしょう。逆もその通り(低級=C/C++、低速=Python)。 JavaやC#などのVM言語は、その中間と言えるでしょう。 しかし…

リスト

QListView、QStandardItemModelを使用する。QAbstractListModelを使用するのは面倒なので利用しない。 QAbstractListModelの例は以下を参考に。 三次元日誌: PyQt練習 (http://d.hatena.ne.jp/ousttrue/20071123/1195837279) import sys from PySide import …

フリーFEMプリポスト

FEM

フリーFEMプリポストの最新版をリリースした。 http://morchin.sakura.ne.jp/fem_prepost2/calamari0.2.html これは、Python版だが、C#版は廃止する予定。今後はPython版のみ開発を続ける予定。

32bitのビルド

64bitマシンで、32bitのPythonと64bitのPython両方をインストールして、両者をビルドしたら、32bitで動くexeと64bitで動くexeを作成できた。結局、64bitマシンだから64bitのexeしか作れないということではなかった。逆に、32bitマシンだと64bitのexeは作れな…

ライセンスに関して

PyQtとPySideのライセンスに関して少し調べた。PyQtはGPLで、PySideはLGPLらしい。ライセンスの概要は以下が参考になる。 GPLやMITやCCなど主要ライセンスの内容と意味のまとめ (http://smkn.xsrv.jp/blog/2009/03/summary_for_gpl_mit_cc_etc/) 以下のサイ…

3Dを扱うGUI

3Dを扱うGUIアプリを作る場合、以下の4通りの組合せが考えられる。 Python2.x, 32bit Python2.x, 64bit Python3.x, 32bit Python3.x, 64bit 以下のライブラリを使用するものとする。 PyQt PyOpenGL PyOpenGLは、Python3.xに対応していないので、Python2.xで…

ツリー

ツリーには、QTreeViewを使う。モデルは、QStandardItemModelとQAbstractItemModelの2つがある。とりあえず、簡単な前者の方を使用する。 import sys from PyQt4 import QtCore, QtGui class TreeView(QtGui.QTreeView): def __init__(self, parent=None): s…

タブ

import sys from PyQt4 import QtGui class TabWidget(QtGui.QTabWidget): def __init__(self, parent=None): super (TabWidget, self).__init__(parent) self.setTabsClosable(True) self.tabCloseRequested.connect(self.removeTab) self.addTab(QtGui.QLa…

ファイルのドラッグ&ドロップ

None is None is None: PyQtでファイルのドラッグ&ドロップ (http://d.hatena.ne.jp/doloopwhile/20100108/1275174371) を参考に。 import sys from PyQt4.QtGui import * class MainWidget(QWidget): def __init__(self, parent=None): super(MainWidget, …

glOrthoとgluLookAt

glOrthoとgluLookAtは以下が参考になる。 シミュレーション屋のためのOpenGL入門プログラミング (http://www.nda.ac.jp/cc/users/iwase/OLD/COMP/OpenGL/glhowto.html#22) MFCによるOpenGLプログラミング (http://odalab.spub.chitose.ac.jp/~oda/lang/openg…

PyQt4でOpenGL

とりあえず、簡単なサンプルを作成した。 # coding: cp932 import sys from PyQt4 import QtCore, QtGui, QtOpenGL from OpenGL import GL, GLU, GLUT r = 0.0 light_ambient = [1.0, 1.0, 1.0, 1.0] # 環境光(白色) light_diffuse = [1.0, 1.0, 1.0, 1.0]…

PyQt4メモ

The PyQt4 tutorial (http://zetcode.com/tutorials/pyqt4/) saito's memo (http://memo.saitodev.com/home/python_pyqt4) Pythonのスクリプティング (http://www.cuc.ac.jp/~minohara/lecture/iseminar/python/index.html)

デフォルト引数の奇妙な挙動

http://webtech-walker.com/archive/2010/10/13191417.html を見ていて、ふと疑問に思った。 def foo(x=[]): print '--1', x if x: print '--2', x x = [] x.append(1) print x foo() foo() foo() 出力: --1 [] [1] --1 [1] --2 [1] [1] --1 [1] --2 [1] [1]…

メモ

インストールされているモジュール一覧を表示。 >>> help('modules')

メモ

Python Scientific Lecture Notes (http://www.ike-dyn.ritsumei.ac.jp/~uchida/scipy-lecture-notes/)