2021年12月5日日曜日

[メモ] PostgreSQL serial型チート

 興味がないからすぐに忘れて毎回検索してるの面倒くさいのでここにメモ代わりに置いておく。


[作成]

テーブル名 xxx, カラム名 yyy としてテーブルを生成するとシリアル列"xxx.yyy"用に暗黙的なシーケンス"xxx_yyy_seq"が自動生成される

  CREATE TABLE xxx (

    yyy serial not null,

    dummy text

  );


> foobar=# \d

>                        リレーションの一覧

>  スキーマ |            名前            |     型     |   所有者

> ----------+----------------------------+------------+------------

>  public   | xxx                        | テーブル   | foobar

>  public   | xxx_yyy_seq                | シーケンス | foobar

 

[削除]

テーブルxxxを破棄(DROP TBALE)すれば、自動生成された xxx_yyy_sql も破棄される。


[シーケンス確認]

シーケンスをSELECTすると、現在の値が取得できる。

last_valueが現在値。


>  foobar=# SELECT * FROM xxx_yyy_seq;

>  sequence_name | last_value | start_value | increment_by |      max_value      | min_value | cache_value | log_cnt | is_cycled | is_called

> ---------------+------------+-------------+--------------+---------------------+-----------+-------------+---------+-----------+-----------

>  xxx_yyy_seq   |          1 |           1 |            1 | 9223372036854775807 |         1 |           1 |       0 | f         | f


[シーケンスの値の設定]

SETVAL関数でシーケンスの値を任意に変更できる。

> SELECT setval('xxx_yyy_seq', 1, false);


第3引数でlast_valueに対してどのようにカウントアップするか設定できる。

> SELECT setval('xxx_yyy_seq', 1000, true);   --1001からカウントアップ

> SELECT setval('xxx_yyy_seq', 1000, false);  --1000からカウントアップ


[直近のシーケンスの値の取得]

同一セッション内なら自動処理したシーケンスの値を取得できる。

> foobar=# SELECT setval('xxx_yyy_seq', 1000, false);

> foobar=# INSERT INTO xxx (dummy) VALUES ('ddami-');

> foobar=# INSERT INTO xxx (dummy) VALUES ('ddami-');

> foobar=# SELECT currval('xxx_yyy_seq');

>  currval

> ---------

>     1001


2011年8月22日月曜日

なんとまー、一年ぶり?

忘れた頃に更新されるブログ?

えっと、(株)ケロン軍の運転資金稼ぎに某社で働いていましたが、7月末をもって契約が終了しました。
また、今月からは開発の請負業務を再開です。

で、この丸1年間の間にiPhone(iOS搭載機)アプリ開発のスキルもいろいろ上がりましたよ。
External AccessoryやExternal Displayの経験もしましたので、iPhoneへの外部機器接続プログラミングもイケます!

個人的にスマートフォンと外部機器の接続ってとても興味のある分野なので、この分野のお仕事なら、ばんばん受けたいとおもっています。

OTOduino/SoftModemのような簡易接続からMFiばりばりのI/Fまでなんでもござれ!w

2010年8月2日月曜日

で、リアルタイムキャプチャ

というわけで、リアルタイムでキャプチャして、そのキャプチャデータのbitmapへアクセスする方法を調べたさ。

これ、Appleがサンプルを出しているんだけど、うちの環境だとちゃんと動かない。
なにがダメかってと、captureOutputメソッド(delegate)で取得したUIImageをそのdelegateの外(メインスレッド)から使おうとすると、データの中身がなくなっているのです。
原因はよくわかんないんだけど、これはdelegateを呼び出すタイミングと外側から使おうとしてオブジェクトへアクセスするタイミングでうまく噛み合わなくてダメなんじゃないかと憶測。delegate内で処理を完結させればいいのかもしれない。

AbrViewerで使うならdelegate内で処理を終わらせればいいんだけど、 別アプリで使おうとしているアイディアではキャプチャしたデータを外側で使いたいから、これじゃダメ。
 なので、いろいろ試行錯誤で実験してみた。

で、最終的にどうしたかというと、delegateの中で sampleBufferからCGBitmapContextCreateでbitmapを作って、そこから CGImageを作る。
そこから定番のCGImageGetDataProvider/CGDataProviderCopyDataでCFDataRefを作って、そのコピーをメンバ変数に設定して全体で使えるようにしておく。

使う側では、そのコピーからCGImageを作って、UIImageにしてやる。
っと、ここまでやればキャプチャされたデータをメインスレッド側で好き勝手に使えるようになるみたいだ。

結構、めんどくさいね。。。。(^^;

2010年7月30日金曜日

もう先週の話だが、、、

UIGetScreenImageがまたもや非公開API扱いになった。


一応、iOS4からリアルタイムでカメラキャプチャデータを取得するAPIができたので、それを使ってくれとAppleからメールが来てた。いまいま公開されてるアプリを非公開にするわけではないらしい。
んま、iOS4からしか対応できないから、しかたない。

つかさー、こんなAPI、最初から用意しとけってーの! > Apple

で、どうするかだ、、、
ま、そんなに難しくはないようなので組み込んでみることにしますよ。まったく、もうっ。

2010年7月17日土曜日

はてさて、

夏もだいぶ本格的になってきつつある梅雨の後半、猛ダッシュ。
(株)けろんぐん も東京に越してきてから早2ヶ月が過ぎました。

その後、けろんぐんはなにをやっているかって?
いや、はい、もちろんiPhoneアプリの開発はやってますよ、、、やってるはず、、、やってたっけな?、、あれれ???



ahaha!

ええっとですね、、、、資金不足です。運転資金ありません!!
もともと貧乏会社なので運転資金なんてものはないのですが、さらに貧乏になりました。

なので、けろんぐんの代表、わたくしことohnetaは働きにでています!w


いやぁ、もちろん、この仕事もけろんぐんとして受注した仕事なので、立派にお仕事ではあるのですが、iPhoneアプリを作っているわけではないのです、、、
まぁなんというか、、、SIerな感じの仕事をして、ちょっと食いつないでいます(^^;

で、普通にお仕事なので、けっこうフルタイムで時間を拘束されるわけで、終業時にはけっこうクタクタ。iPhoneアプリを作るパワーが、もう、ほんの少ししか残っていません。

そのほんの少しのパワーを寄せ集めて、バージョンアップやら新アプリやらを、ちまちまとやってますので、この年末年始でいっきにアプリを作ったようなスピードでは、いまはできてません。トホホ。

 などと、いいわけを書いてみる昨今です。

いくつかおもしろいアプリのアイディアはあるので、 やってみたいのだけどなー。
だれかプログラムつくってくれる人おらんかな?けろんぐんで雇えるかな?という問題もあるのだが。。。w

2010年5月10日月曜日

移転したよー!

まだインターネットへは仮アクセスしかできないのだけど、(株)けろんぐんは実質的に東京に引越しましたよー。
いや、登記上はまだ本社は和歌山にあるのだけど、実際の会社機能は東京に移りました。
今月末に登記上も東京にもってくるつもりです。

いやぁ、ながかった。。。。
けろんぐん設立前年に和歌山に移住して、勢いで会社をつくって、、、、ん、、実に丸3年間、縁もゆかりもないど田舎生活でした。


で、これから、東京でなにしていけばいいですかねぇ、、、やっぱまだiPhoneアプリ開発なのかなー、、、、ちょいとばかし悩んでみます。

2010年4月6日火曜日

iPhoneで任意のオンラインストレージを使ってファイルのやり取りをしたいのさ!

iPhoneでもiPadでもそうなんだけど、基本、MacなりPCを母艦としてiTunes経由でデータのやりとりがされているけど、それってカッタるくない?
世の中、クラウドだとか騒いでいるんだから、ファイルのたぐいはオンラインストレージでいいんでないの?と思うのだけど、Appleはそう考えていないようなのよねー。

 いや、Appleが MobileMeでストレージスペースを提供しているのは知ってるけど、あれって有料だし。DropboxやSugerSyncなんかの無料なサービスがあるんだから、そっちを使いたいのが消費者の気持ちってもんだよね。べつにそんな貴重なデータを残しておきたい訳じゃない場合とかならなおさら。
つか、すでに使っているサービスがあるなら、そっちを使いたいじゃない?
 ま、オンラインスストレージベンダーさんたちもiPhone用アプリを提供してたりするんだけど、あれも自分ち専用だったりするから、どうしたものかと。

いろんなアプリがデータのやり取りしたいしたがってるとおもうのよねー。私のAbrViewerだって履歴のエクスポートをファイルでやりたかったもの。もし、ファイルが取り込めるならウィッシュリストの取り込みとかやりたいもの。。。


そんなこんなで、アプリを提供する側からいえば、ユーザがどこのオンラインストレージを使ってもかまわないんだけど、いちいちそれらのサービスに対応したコードを用意するのは面倒なので、共通ライブラリがあれば便利じゃね?と思うわけですよ。
重要なのはアプリが出し入れするファイルであって、そのファイルを置いておくサービスなんかどこでもかまわないわけ。でも、広くサポートはしたい。てか、ストレージ業者じゃないんだからヘタに囲い込みたくないわけです。Evernoteじゃあるまいしw 

ライブラリ1つで、ユーザがどこでも好きなサービスを使ってもらってかまわない。自由な選択にしたい。
今でも、多くのオンラインストレージサービスってAPI持ってたりするから、それらアクセスするための共通I/FをもったライブラリをiPhoneなりAndroidなりなんなりに提供できれば、デベロッパーもハッピー、ユーザもハッピー、ストレージベンダーもハッピー(かな?w)になって、いいんじゃね?
 と、思いついた、とある4月の午前中。


こういうアイディアに資金だしてくれるとこないかなぁー? ひと月もあれば立派なもの作れる気がする。速攻作りたいよなー。
それに、ライブラリ販売すれば、それなりに売れるとおもうんだけどねぇ。