いっぽんの猟銃のむこうに (DAIZOじいさんとGun)

ヌルめの技術メモとか。フリーランスやってます (http://acez.jp/)

特定桁数での丸め込み(切り上げ、切り捨て)する

切り上げとか切り捨てってJavaならMath.floor()とかMath.ceil()だよね?と思ってたんだけど、該当メソッドは小数点以下の切り捨てしかしてくれないことを今更。そういやそうでした。たとえば時間計算とかでありがちな、出勤は15分単位で切り上げ、退勤は15分…

投げやりにSIer特有の画面ポップアップ&ファイルダウンロードコンボを実装する

「クリックしたらポップアップウィンドウが出て、自動的にファイルのダウンロードが始まり、終わったらファイルの保存ダイアログを出して、ダウンロードが終了したらポップアップのウィンドウ自体は自動的に閉じる(ただし途中でエラーが発生した場合は表示…

Homebrewの中のgit pullでこける

Mac

なんか内部的にコンフリクトしちゃったりした場合に。http://d.hatena.ne.jp/YuhoYo/20110528/1306547056リポジトリが/usr/local/の下なんですね。なるほどー

緯度・経度をメートル法に換算して距離を求める場合の定数

なんか本当はすっごい複雑な計算が必要らしくて、本来は場所によって違ったりもするらしくて正直よくわからなかった(なんかもういろんな意味であきらめた)のですが、ざっくりとした値で良い場合は、・緯度 × 111319.491 ・経度 × 91187.208で求めるらしい…

/etc/mongodb.conf が凄い適当

Debianではapt-getでinstallできてあら簡単ですね、素晴らしいですね。 ……とおもいきや設定ファイルが凄い適当で笑った。 # Disable the HTTP interface (Defaults to localhost:27018). #nohttpinterface = true nohttpinterface が true でデフォルト設定…

cx_Oracleをcygwin上のPython(2.6)に入れる

ベンチマーク比べするためだけにWin上で動かしたいなーなんて場合はとりあえずCygwinなんですけど、この場合setup.pyスクリプトに手でパッチ当てないとうまく動いてくれません。詳細は以下のとおり。 http://permalink.gmane.org/gmane.comp.python.db.cx-or…

Super-Smackの--with-oracleオプションはダミー

最近ではDBのサンプルデータベースを作るのに専らSuper-Smackを使ってたんですが(使い方は http://thinkit.co.jp/cert/article/0707/2/2/2.htm (自分メモ))久しぶりにconfigureしたらOracle指定ができたので、「あれ?Oracle対応してるのかな?」とか…

@ITでコラム書き始めました

こんな感じの。 http://el.jibun.atmarkit.co.jp/fatalstaynight/大丈夫なのかこれ、って常に心配しながら書いてます。 お目通し頂けますと幸いです。 あ、服は自前です。

cx_Oracleのインストール(pip編)

最近だとvirtualenv切ってPIPで入れるのがお作法的に綺麗な感じがするので、その手順をメモ。 ■前提条件 ・Pythonの比較的新しめな奴(2.5以降系) ・Oracle Instant Clinetが導入され、sqlplusでの接続確認済 ・Oracle環境変数等設定済 [oracle@oracle11g ~]$…

Oracle表領域、ユーザの追加をSQLベースで

OEMで手でポチポチやってらんねえーって時に。スクリプトとかにしておくと吉。 ・まずはSYSDBAでログイン $ sqlplus sys/test as sysdba ・表領域追加 create BIGFILE tablespace TEST_20110930 datafile '/opt/oracle/oradata/TEST_20110930.ORA' size 5000…

SYSDATEをSYSDATE()で置き換えるのはNG

結論から言うと「OracleのSYSDATEをMySQLに移行する場合はNOW()使え」ということらしい。 http://nippondanji.blogspot.com/2009/04/sysdatenow.html 以下検証ソース。 SQL> CONN / AS SYSDBA SQL> GRANT EXECUTE ON DBMS_LOCK TO SCOTT ; // 権限あげないと…

多段SSHのメモ

いつも忘れちゃうので。 scpでfumidai_serverを踏み台にhonban_serverに配置する例。 $ scp -o 'ProxyCommand ssh test@fumidai_server nc %h %p' test.data.gz sample@honban_server:~ 多段かましてコマンド叩く場合はこんな感じ。 $ ssh -o 'ProxyCommand …

Oracle11g(release2) Enterpriseを入れるときのメモ

CentOSに入れるとなんだかんだで13GBくらい食う。なのでVMの場合でも20GBくらいは確保しておいたほうがよい。 MBAだからセコセコやってたら3回くらいやり直すはめに。LVMとか切り直せばいいんでしょうけどめんどくて。 手順は以下の通りやるのがおすすめ。 h…

VMWareからVirtualBoxに乗り換える

Mac

VMWare Server(ただし1.0系統に限る)は導入も簡単で仕組みも簡単で気に入ってたんですけどWin7で動かねえしそろそろ無理目な感じですよね。 で、MBAだしVirtualBoxあたりを入れてみたんですが、標準でNATも聞いててネットワークインストールもすんなり行くの…

General error: 1449 The user specified as a definer ('test'@'10.100.%') does not exist

トリガをmysqldumpすると謎のdefinerとやらが含まれてしまい、それが原因になりimportに失敗することがある。(例のエラーメッセージのように接続元IPアドレス体系が異なるとか) じゃあどうすりゃいいの、というと、--skip-triggersオプションを指定してmys…

ストアド設定しようとしたらCannot load from mysql.proc. The table is probably corrupted

どうも5.1系から5.5系でMySQLのテーブル構造が変わるのが原因らしい。 http://readit.l8r.in/2011-06-22/mysqlcannot-load-from-mysql-proc/書いてある通りmysql_upgradeの実行で治ったんだが、サーバ自体は全部5.5系なのになんで?と思ってたら理由は古いmy…

別databaseに対してトリガをしかけることはできない

たとえばTEST1というdatabaseで、 create trigger TRIGGER_SAMPLE after UPDATE on TEST2.TESTTABLE for each row みたいなことをするとエラーになるので、無理。 「そんなことしねーよ」って普通思いますけど、やる人がいるかもわからんので。。。 というか…

ファイル中の特定文字列数をカウントする

いろいろやり方はあるけどPythonでやるのが楽ちん。 文字列読み込んでstr.count('hoge')で一発。 以下、改行文字として[#@@@@#]という頭の悪い文字列を使ったCSVデータの改行文字数=列数をカウントするサンプル。count_line.py #!/usr/bin/python import sy…

ERROR 1347 (HY000): 'DBNAME.TABLENAME' is not BASE TABLE

なんでこうなるのかはわからないが、トリガ中でデータ型が違うSQLを書くと (例: SYSDATE()をvarcharカラムに叩きこむ)このエラーが出る。 にしてもMySQLは謎のエラーメッセージが多い。

MySQLではDELETE文のfrom句で指定する表名に別名はつけられない

Oracleだとできるし、当然SELECT文の場合は問題なくできる。 なんだかよくわかんない制限。

暗黙的トランザクション

MySQLストアドがautocommit = 0にして単体で呼んだ時にはrollbackできないが、 INSERT文発行した直後だとrollbackできる、のはなんで?と質問されてわけがわからないよ(◕‿‿◕)ってなったんですが、どうもMySQL(というかInnoDB)が「INSERT文を発行するときに…

SystemError: Objects/stringobject.c:3565: bad argument to internal function

gomiなのでPythonでメモリ上にがっつり乗っけるスクリプト書いたら見慣れないエラーで落ちた。 test.py ---- str = "" while True: str += "a" * 1024 * 1024 print len(str) ----これをCentOS 5.6(64bit)上のPython 2.4.3とかで流すと 2144337920 214538649…

load dataによるBLOB型の扱い

今回のsgtでは運良く使わなかったんだけど、万が一使うことになったときのメモ。・load data infile 文で指定することはできない(と、マニュアルには書いてあるが) ・基本的にはBinary句がついたTEXT型と同じ http://www.hi-ho.ne.jp/illusia/nif/mysql_2nd_…

てっとり早く10gのOracleダンプデータを取得する

Oracleのdmpファイルは上位互換はあるが下位互換はないので、11gのexpコマンドで10gに接続してdmp吐こうとすると怒られる。 かといって今更RHEL4(CentOS4)入れて10g入れて、、、なんてやってらんない。 そんなときにdmpを吐くだけならXEを入れてみるのもあり…

MySQLトリガの制限

Oracleのように特定のカラムが更新された場合のトリガ、というのは設定することができない。(MySQL 5.5) 下行でいえば、OF [XXXX]の部分。 create trigger TRI_TEST after UPDATE OF [XXXX] on TEST for each row どこのカラムでもレコードが更新されたら強…

ファイル・サイズ が最大値4194303ブロックを超えています。

ビッグサイズ表領域を使うのが手っ取り早い。 create BIGFILE tablespace TEST_BIGSIZE datafile '/opt/oracle/oradata/TEST_BIGSIZE.ORA' size 50000M AUTOEXTEND ON next 100M maxsize unlimited segment space management AUTO; EnterpriseManagerからも…

Oracleで予約語をカラム名に使う

Oracleで予約語をカラム名に使うには以下のように" " でくくる。 SQL> select MAX("mode") from TEST; MAX("MODE") ----------- 1ちなみにMySQLの場合は``でくくる。そもそも予約語なんだから最初から使うなよって感じがしますが。

FileMergeを良い感じにする

Mac

個人的なメモ。基本的には以下の通りなんですけど、 http://logic.moo.jp/memo.php/archive/492nkfはsudo brew install nkfで入れるのが楽ちんです。 あとフィルタの追加がわかりづらいんですけど、空白の列をクリックすると追加できます。拡張子ごとっての…

Oracleの波ダッシュ(〜)問題に対処する

まず、UTF-8とSJISで文字コードを変換したときに化けやすい文字、ってのがある。 http://ja.wikipedia.org/wiki/Unicode#.E6.B3.A2.E3.83.80.E3.83.83.E3.82.B7.E3.83.A5.E3.83.BB.E5.85.A8.E8.A7.92.E3.83.81.E3.83.AB.E3.83.80.E5.95.8F.E9.A1.8Cそんなか…

Mac OS X LionにOracle instantclientを入れる

(Oracle Instantclient Version 10.2.0.4 の場合です)相変わらず変なコツがいるので。まず32bit版を落とす。解凍してライブラリに別名をつける $ ln -s libclntsh.dylib.10.1 libclntsh.dylib $ ln -s libocci.dylib.10.1 libocci.dylib 環境変数の設定~/.ba…