Flash Professionalで配置したオブジェクトをActionScript側(Flash Builderとか)で利用する (CS6, AS3)
メモメモφ(..)
1. Flash Professionalで作った.flaファイルにオブジェクトを配置する
例)Buttonを配置する
2. 配置したオブジェクトをマウスで選択、右側のパレット?の"Properties"の"Instance Name"の部分にインスタンス名をつける。
例) testButton
3. Actionscript側のMainクラス的なところで、こんな感じに書く
public class Main extends Sprite { public function Main() { var testButton:Button = Button(this.getChildByName("testButton")); function onClick(event:Event) { trace('hello!'); } testButton.addEventListener(MouseEvent.CLICK, onClick); } }
getChildByName()がミソ。かな。ここで指定したインスタンス名を引数に入れてオブジェクトを取得できる
4. 配置したボタンをクリックしてみる。イベントが発生して、コンソールに文字が表示されていたら成功!
FlashはIEでも動くから嬉しいよ(´・ω・`)
IE爆発しろっ(・∀・)
さくらVPSにVPN(PPTP)を構築 (Ubuntu 12.04)
漢は黙ってVPNにつないどけっ!って夢で誰かがささやいていたのでVPNの構築をやってみた。
VPNにしておけば開発するときも捗るし、VPN経由でサーバーからネットサーフィンすれば、パブリックなネットワークにつないでも盗聴されるリスクが減るしね。
今回はさくらVPSにUbuntu12.04をインストールしてPPTPを使ったVPNを構築!
いざっ(`・ω・´)!
1. pptpdのインストール
sudo apt-get install pptpd
2. confファイルの編集
ファイルは全部インストールした時に生成されるので、
下記ファイルたちをこんな感じで編集。
/etc/pptpd.conf
今回は 192.168.200.xxx らへんでipを設定。
localip 192.168.200.11 remoteip 192.168.200.128-238
○ /etc/ppp/chap-secrets
# client, server, secret, IP addresses username pptpd "password" *
"client, server, secret, IP addresses" の順番で入力
server の名前は "/etc/ppp/options.pptpd" のnameといっしょにすること。
デフォルトでpptpdになってるのでそのまま使う。
IPはとりあえずどっからでも受け付けるようにしときます。
3. NATの設定
4. IPv4のフォワーディングの有効化
/etc/sysctl.conf
net.ipv4.ip_forward=1
5. 設定のリロード
sudo sysctl -p
Skymarkの入力フォームを半自動化する
あれ毎回入れるのめんどくさい!
なんで会員登録してログイン->予約ができないのー!
それで少しでも楽しようと考えた結果が、”Javascriptでフォームを入力するスニペットをつくったらいんじゃない?”ということでした。
*もし使うときはくれぐれも自己責任でお願いします!
何が起きても一切責任は取りませんよ(´・ω・`)
script
HTMLを解析した結果こうなった。
document.getElementsByName('aLastName0')[0].value = "YOUR"; document.getElementsByName('aFirstName0')[0].value = "NAME"; document.getElementsByName('aAge0')[0].value = 18; document.getElementById('aSex_M0').checked = true; document.getElementsByName('tel')[0].value = 012345678; document.getElementsByName('mailAddressPC')[0].value = "test@example.com"; document.getElementsByName('mailAddressMB')[0].value = "test@example.co.jp"; document.getElementById('callerSame').checked = true;
やってみる
まず、この画面まで行く。
そして、
さっきのスクリプトを貼り付けて実行!
結果
いぇーい( ・∀・)
SQLAlchemyで動的にテーブルを作る2
うーん、いいのかなぁー。もっとリファレンス読まないと。。。
Create
engine = sqlalchemy.create_engine(engine_str, echo=True) def create_test_table(table_name): test_info = TestInfo.__table__ test_info.name = table_name test_info.create(engine) tablename = 'test001' create_test_table(tablename)
Insert
TestInfo.__table__.name = 'test001'
info = TestInfo(info_name, description)
db_session.add(info)
db_session.commit()
Query
TestInfo.__table__.name = 'test001' for row in db_session.query(TestInfo).all(): print row
SQLAlchemyで動的にテーブルを作る
Base.create_all(engine)とすると定義されてるテーブルが全部作られちゃう。
定義してあるけど後でテーブルを動的に作りたい!と思ってやってみた。
一応動いたけど正しいのかどうかは不明。。。
リファレンスに、
Base = declarative_base() class TestInfo(Base): ...
みたいに作ったクラスの中には__table__という属性が作られるよーと、
書いてあった(http://docs.sqlalchemy.org/en/rel_0_7/orm/tutorial.html)
>>> User.__table__ Table('users', MetaData(None), Column('id', Integer(), table=<users>, primary_key=True, nullable=False), Column('name', String(), table=<users>), Column('fullname', String(), table=<users>), Column('password', String(), table=<users>), schema=None)
これを使って、
"Creating and Dropping Database Tables" http://docs.sqlalchemy.org/en/rel_0_7/core/schema.html#metadata-describing
"Column, Table, MetaData API" http://docs.sqlalchemy.org/en/latest/core/schema.html?highlight=table#sqlalchemy.schema.Table
のところを見つつ、書いてみた。models.py
モデルを定義する。
Base = declarative_base() class TestInfo(Base): __tablename__ = 'test_info' info_name = Column(String(128), primary_key=True) description = Column(String(256)) def __init__(self, info_name, description): self.info_name = info_name self.description = description def __repr__(self): return "<TestInfo('%s','%s')>" % (self.info_name, self.description)
db.py
この中でTableを持ってきて、名前を変更してcreateしてる。
def init_db(): image_info = models.TestInfo.__table__ image_info.name = 'test001' image_info.create(engine) engine_str = 'mysql+mysqldb://%s:%s@%s:%d/%s?charset=utf8' \ % (user, password, host, port, db_name) engine = sqlalchemy.create_engine(engine_str, echo=True) if __name__ == '__main__': init_db(engine)
実行
実行結果はこんな感じ。
$python db.py mysql+mysqldb://root:root@localhost:3306/test?charset=utf8 2012-07-04 15:32:31,059 INFO sqlalchemy.engine.base.Engine SELECT DATABASE() 2012-07-04 15:32:31,059 INFO sqlalchemy.engine.base.Engine () 2012-07-04 15:32:31,061 INFO sqlalchemy.engine.base.Engine SHOW VARIABLES LIKE 'character_set%%' 2012-07-04 15:32:31,061 INFO sqlalchemy.engine.base.Engine () 2012-07-04 15:32:31,061 INFO sqlalchemy.engine.base.Engine SHOW VARIABLES LIKE 'lower_case_table_names' 2012-07-04 15:32:31,061 INFO sqlalchemy.engine.base.Engine () 2012-07-04 15:32:31,062 INFO sqlalchemy.engine.base.Engine SHOW COLLATION 2012-07-04 15:32:31,062 INFO sqlalchemy.engine.base.Engine () 2012-07-04 15:32:31,066 INFO sqlalchemy.engine.base.Engine SHOW VARIABLES LIKE 'sql_mode' 2012-07-04 15:32:31,066 INFO sqlalchemy.engine.base.Engine () 2012-07-04 15:32:31,068 INFO sqlalchemy.engine.base.Engine CREATE TABLE test001 ( ... )
”CREATE TABLE test001”になった( ・∀・)
でもこれ使い方おかしいかもしれない。
opencvでWeb上のイメージを読み込み (Python)
φ(..)メモメモ。
こんな感じで書いたら動いた。
import cv2 import numpy import urllib2 img_url = 'http://www.universe-s.com/img/news/2004/0520_01.jpg' req = urllib2.Request(img_url) data = urllib2.urlopen(req).read() img_buf = numpy.fromstring(data, dtype='uint8') img = cv2.imdecode(img_buf, 1) cv2.namedWindow('test', cv2.CV_WINDOW_AUTOSIZE) cv2.imshow('test', img) cv2.waitKey(0)
macにSphinx & Blockdiag環境を整える
そろそろドキュメント書きながら開発できる人間になりたい(´・ω・`)
ということで、SphinxとBlockdiagを使える環境を作る。
Sphinxはドキュメント生成ツールで、reST記法?で書くとhtmlとかpdfとかに簡単に出力できる。
ソースコードのdocstringも読み込んでドキュメントを作ってくれる便利ツール。
BlockdiagはPython製のブロックダイアグラムを生成してくれるツール。
ドキュメントプロジェクト作成
sphinx-quickstart
と打って質問に答えていく。
conf.py
生成されたconf.pyにblockdiagを使うための設定を追加。
blockdiagで日本語を使いたかったら.ttfが必要らしい。IPAのサイトからフォントをDLして設定。
extensions = ['sphinx.ext.autodoc', 'sphinx.ext.doctest', 'sphinx.ext.todo', 'sphinx.ext.viewcode', 'sphinxcontrib.blockdiag'] # これ追加 blockdiag_fontpath = '/path/to/ipag.ttf'
サンプル
index.rstにBlockdiagのサンプルを書いてみる。
sphinx-quickstart on Wed Jun 20 17:32:10 2012. You can adapt this file completely to your liking, but it should at least contain the root `toctree` directive. Welcome to TestSystem's documentation! ======================================== Contents: .. toctree:: :maxdepth: 2 てすとー Indices and tables ================== * :ref:`genindex` * :ref:`modindex` * :ref:`search` .. blockdiag:: :desctable: blockdiag { 'あ' -> 'い' -> 'てすと' ; }
ビルド
➜ docs make html sphinx-build -b html -d build/doctrees source build/html Running Sphinx v1.1.3 loading pickled environment... done building [html]: targets for 1 source files that are out of date updating environment: 0 added, 1 changed, 0 removed reading sources... [100%] index looking for now-outdated files... none found pickling environment... done checking consistency... done preparing documents... done writing output... [100%] index Exception occurred: File "/Users/ogata/.pythonbrew/pythons/Python-2.6.7/lib/python2.6/site-packages/PIL/ImageFont.py", line 34, in __getattr__ raise ImportError("The _imagingft C module is not installed") ImportError: The _imagingft C module is not installed The full traceback has been saved in /var/folders/mx/jx26pzv53tx7dgw_ftg_vyk00000gn/T/sphinx-err-FClZmw.log, if you want to report the issue to the developers. Please also report this if it was a user error, so that a better error message can be provided next time. Either send bugs to the mailing list at <http://groups.google.com/group/sphinx-dev/>, or report them in the tracker at <http://bitbucket.org/birkenfeld/sphinx/issues/>. Thanks! make: *** [html] Error 1
あれー?
と思ったら、ここ(http://blockdiag.com/ja/blockdiag/introduction.html)にこう書いてあった。
~MacOSX (homebrew) の環境でインストールされる PIL パッケージは freetype2 に対応していないためそのままでは blockdiag を利用することはできません。また、freetype2 用の Foluma (パッケージ)は提供されていないため、 以下の内容で /usr/local/Library/Formula/freetype2.rb ファイルを作成します。
ということで手順どおりにやってPILをインストールしなおし!
$brew install freetype2 ... $pip install PIL -I ... -------------------------------------------------------------------- PIL 1.1.7 SETUP SUMMARY -------------------------------------------------------------------- version 1.1.7 platform darwin 2.6.7 (r267:88850, Jan 17 2012, 20:23:21) [GCC 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00)] -------------------------------------------------------------------- --- TKINTER support available --- JPEG support available --- ZLIB (PNG/ZIP) support available --- FREETYPE2 support available <== これでOk *** LITTLECMS support not available --------------------------------------------------------------------
よっしゃ!
再びmake
make html
うごいたー!
ライブラリのドキュメントでよく見るスタイルになっとる
これで快適ドキュメント生活ができるかもしれない( ・∀・)