2007年2月18日日曜日

キャプチャ部分作成_002【実況中継】

というワケで


今からCで書くわけですが

また後からこのblog書くのがマンドクサイので
例のごとく実況中継でいきたいと思いますw


とりあえず今はいってるCのコンパイラは

MinGW
Borland C++

この二つ


つかよくコンパイラでググってるとRAD環境と純粋なコンパイラを比較して
しかも貧弱とか言ってるけどあれってすげーナンセンスじゃね?ww

まぁそんな事はどうでもいい

とりあえず今回はボーランドでいくか


とりあえずWindowsプログラミングのHello World的なソースをググって
動かして見るw(だってそうでもしないとわかんねしw)

こんなのね

/***************************************************/
#include <windows.h>

#define MSG "WindowsAPIはじめますた。"
#define TTL "Begin API"

int WINAPI WinMain(
  HINSTANCE hInstance ,
  HINSTANCE hPrevInstance ,
  PSTR lpCmdLine ,
  int nCmdShow )
{
  MessageBox( NULL, MSG, TTL, MB_OK );

  return 0;
}

/***************************************************/

でこれをコンパイルと



C:\widget>bcc32 begin.c
Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
begin.c:
警告 W8057 begin.c 15: パラメータ 'hInstance' は一度も使用されない(関数 WinMain)
警告 W8057 begin.c 15: パラメータ 'hPrevInstance' は一度も使用されない(関数 WinMain )
警告 W8057 begin.c 15: パラメータ 'lpCmdLine' は一度も使用されない(関数 WinMain)
警告 W8057 begin.c 15: パラメータ 'nCmdShow' は一度も使用されない(関数 WinMain )

Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland
Error: 外部シンボル '_main' が未解決(C:\BORLAND\BCC55\LIB\C0X32.OBJ が参照)




あ、ちょと「爆笑レッドカーペッド」見てきます・・・

MVPの子がすげーツボww

あ、どうも


でコンパイルの結果ワーニングは引数がないから無視するとしてw
エラーでちゃってるよコレ

_mainが未解決だぁ?

ワガンネww


そもそも普通のコンパイルの仕方でいいのかと思いググってみる

やっぱり・・・


windowsプログラミングのバヤイちゃんとコンパイルオプションがあるんだねぃ


-w

ほー!




C:\widget>bcc32 -W begin.c
Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
begin.c:
警告 W8057 begin.c 15: パラメータ 'hInstance' は一度も使用されない(関数 WinMain)
警告 W8057 begin.c 15: パラメータ 'hPrevInstance' は一度も使用されない(関数 WinMain )
警告 W8057 begin.c 15: パラメータ 'lpCmdLine' は一度も使用されない(関数 WinMain)
警告 W8057 begin.c 15: パラメータ 'nCmdShow' は一度も使用されない(関数 WinMain )

Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland

C:\widget>begin

C:\widget>














きたーーーーーー(・∀・)ーーーーーーーーーーーー!


あぁもう今日はこれができればいいやww(オイ

キャプチャ部分作成_001【Cでバッチで?】

せっかくの休日なのに某絵チャットに入ることができなくて悲しいんです。ぇぇ

入れない

って言ってるのは、サーバにつながらないんです。
でもまぁ、たまにあることだしな・・・

いつも入れない人になってしまいます。

どうやら入れる人は、キャッシュで入れるんじゃないかという噂が・・・

あ・・・

キャッシュ しない設定だわ・・・



どうもlunchfreakです。


つーわけで、PGでもすっかと
つかやれよとwww


放置イクナイ(・д・)


とりあえず、ランタイムエンジンを決められないので、
キャプチャ部分だけ先につくってしまおうかと


キャプチャ機能のロジックは

[PrtScn]押下される
 ↓
クリップボードから画像を取得
 ↓
画像ファイルとして保存



キャプチャ部分は参考にさせて頂いたwidgetがいくつかあるんですが、
みなさんキャプチャ部分はJavaとかexeで走らせてるみたいなんで
自分もそうしようかなと

で、まぁその際になんの言語で書くかプログラマきどりで悩んでみたんですが
(いや、本職もマなんですが)

 
クリップボードの操作は、JavaScriptにも用意されているみたいですが、
あんま豊富ではなさそうなのでWindowsAPI使っちゃったほうがはやそう

ということでwinAPIつかえる言語

なんかスクリプトが多いなぁ・・・


まぁこれも色々あるみたいですね。


Ruby
Delphi
VB
C/C++

つかほとんどできそうなきがするw

この中でやったことあんのは、VBとCか・・・

まぁ、Cを一番最初に学んだ自分としては当然C言語選ぶわなw
処理早いし

なんかバッチっぽいしww

でもCでWindowsプログラミングすんのははじめてww


まぁ、どちらにしろよく知らない言語でやるよりかは
なじみのあるCでAPI部分はググってどうにか対応できるレベルのほうがいいかなとww


なわけでCでキャプチャ処理今から書こうと思います。
まぁバッチにするかはわからないけど

2007年2月12日月曜日

ちょっと仕様検討

どうもlunchfreakです。



Yahoo! Widget Engineをつかって開発を考えていたんですが、
ちょっと問題が発生・・・

あれって

swfを表示できないんっすよねwwww


まったくもって気が付きませんでしたww


今作ろうとしてるのが、某絵チャットのまぁ専ブラみたいなもの
で、その絵チャットはFlashでできていると・・・

ためしにimegeタグのsrc="ファイ名.swf"とかやってみたけどだめだった・・・orz


Flashを表示するためには、HTMLをレンダリングできるランタイムエンジンが必要なわけで
どうしようかと・・・


とりあえず要件定義を考えてみた

まず、アプリケーションの仕様は
・絵チャットを表示する
・キャプチャ機能がある
・画質をボタンで制御できる
・windowの拡大縮小可能
(もしくは縮小、通常、最大化の3サイズを固定)
・スクロールでパレット部分の拡大⇔縮小

まぁちょっと贅沢に欲のまま書いてしまったので、
最低でも上位3つがととのえばいいかな。
あとの機能はおいおいバージョンアップとともに考えるつもり

で要件
絶対的な条件としては
・クロスプラットフォームであること
・swfが表示できること
・HTMLとJavaScriptをレンダリングできる
・GUIがリッチ


とりあえずYahoo! Widgetみたいなランタイムエンジンを
さがしてみたらこんなサイトみつけた

http://diaspar.jp/node/117

W3Cは地味に条件満たしてる気がする・・・なんせ世界標準だし
でもブラウザが対応してるのかを調べないとな・・・
XULRunnerつかってるアプリ(SongBird)を使ってみたけど、
なんかXULRunnerが原因で落ちたしww
もう使う気にならんwww

とりあえずのものならユーザにOperaさえおとしてもらえば作れそう
ついでにXULで書けばFirefox用も作れそう・・・

ちなみに一番Flashと相性が良いのはFlex2だろうな・・・
でもローカル実行環境が実質ないな・・・

Flash Playerって書いてるケド、Adobeでは「Apollo」っていう実行環境を
用意してるみたい

HTMLとFlashとPDFをレンダリングするらしい

でも、

まだリリースしてない・・・orz

でもちょっと期待してFlex2 SDKでも落としてこようかな
と思ったらこのマシン必要スペックみたしてないwwwwww(;д;)

  • 512MB以上のRAM(1GB以上を推奨)
今256Mしかないの・・・
メモリ増設するか・・・mjd・・・


とういワケで今のところ実現できるとしたら
・Opera、FireFox
・W3C(実質全ブラウザ?・・・ブラウザ立ち上げ時のみなのかしら・・・)
・Apollo(リリース待ち&増設待ち)

という状況・・・


でもYahoo! Widget開発してみたいな・・・

キャプチャ機能だけYahoo! Widgetでつくろうかな・・・

2007年2月10日土曜日

Notepad++まとめ

ついでなんでBlogがてら開発中に気づいた使いかたのメモw

Notpad++
とりあえずデフォでは日本語環境ではきつい・・・

文字化け
設定→スライダー設定
フォントスタイルを日本語対応のフォントに汁

コメント関連は特にフォントが設定されてたりするので
コメントも日本語対応のフォントに設定汁

関連付け
Widgetの.konファイルとか、関連付けがされてないファイルは
黒一色でみづらくなるので関連付け汁

設定→スライダー設定
関連付けしたい言語を選択(.konファイルはxmlなのでxmlを選択)
下の方に「ユーザ拡張子」というのがでてくるので拡張子を登録汁

Widget開発仕様
widgetを作ろうって考えるならこれはすごく重要だった
君の書いたWidgetをもしもYahoo! Widget Engine で動かしたかったら
エディタのフォーマットは「UTF-8」に汁

フォーマット→UTF-8フォーマットを選択汁

とりあえずGIMPをインストールしてみる

どうもlunchfreakです。

アプリケーションのGUI作成用にGIMPを使ってみることにしたワケで
今ちょうどインスコ中なんでもうBlog後から書くのがマンドクサイので(ヲイ
実況中継がてらまとめちゃおうかと

なんだかいろんな人がパッケージ化して公開してるみたいなんですが、
なんだかよくわかんないので本家のものを落とすことにします。
以下GIMP(本家のパッケージ)のインストールの仕方です。




りんく
・GIMP本家
http://www.gimp.org/

・GIMP for Windowsダウンロードページ
http://gimp-win.sourceforge.net/stable.html


Download
GIMPを使うにはどうやら GTK+っていうツールキッドがないと実装しないようで
ダウンロードしなきゃいけないのは

・GIMP本体
・ GTK+ らんたいむなんちゃら

インストール
とりあえずふたつのZIPを解凍
セットアップファイルがでてきたので

本体の方からインスコしようとしたらなんか警告が・・・

ちょw

ちゃんと読まなかったけどなんかGTK+がなんちゃらってかいてあるので
GTK+がないとだめなんだと勝手に解釈してGTK+からインスコ

・GTK+
GTK+をインストーラにしたがってセットアップ
最後に言語を選べるみたいなチェックボックスがでてきたのでチェック

言語設定らしきものがでてきたんで
とりあえずカレントユーザとAll User両方日本語にしてみる。


・GIMP本体
で本体のインストール
インストーラに従っていくと、ライセンスやらディレクトリやら見慣れた内容なので
サクサク[Next]を押してると
なんだかチェックボックスがイパーイが画面が・・・

ん?

せれくとふぁいるたいぷあそしえーしょん・・・

多分ファイルの関連付けかと思うのでとりあえずスルーw
GIMPってフォトショのファイルがみれるんだね(・∀・)

ショートカットが嫌いなのでデスクトップアイコン作成のチェックもはずす。

あとはインストーラーに従って終了。


ユーザインストール
これで終わりかとおもいきやなんかまだあんだねw
GTK+の言語設定のおかげなのかちゃんと日本語でかかれてます。

なんかユーザ単位の設定っぽい

なんかディレクトリの説明とかでてきたけど
とりあえずスルーw



途中でパフォーマンスチューニングという画面が

・タイルキャッシュサイズ
・スワップ用ディレクトリ

ディレクトリとかデフォのまんまでいいとして

タイルキャッシュサイズ
これは重要そうだ

なんせ今使ってるマシンはメモリ256Mしかないんで
メモリ関連の設定となると敏感です、えぇ
さすがUNIXのソフトだけあって
アプリケーションがメモリ管理とかしちゃうのか・・・

とりあえずデフォでは128M

多分作業中はfirefoxとiTunesが起動してるので
その二つのプロセスをみてると

iTunes 30M
Firefox 50M

えぇ

どちらもメモリ喰らいなアプリですね・・・
ほんとうにありg(ry

とりあえずFirefoxは見るページによってもっと増えるだろうし
他のプロセスも考えて

つかマンドクセぃので
100Mぐらいと考えて

残り156か・・・

とりあえずこの数値で[次へ]


あ、もう起動しちゃうのね













そしてとてもフレンドリーww


ちなみにタイルキャッシュサイズについてもうちょっとググってみたら
メモリの2/3ぐらいでいいそうです。

2007年2月7日水曜日

とりあえず何のwidget開発するんでつか

最近YAMAHA音楽教室のCMを見てるとつい
そっふぁみそふぁみれ~♪

を一緒に口ずさんでしまいます。
寒いです。



どうもlunchfreakです。




さすがにどんな内容のwidgetをつくるつもりなのか書かないまま話を続けるのはけっこう至難の業かと


lunchfreakは絵チャットによくいるんですが
要はその絵チャットを表示するwidgetをつくろうかと・・・


重くなんない程度に便利そうな機能をつけるつもりです。

専ブラって感じですね。

これをwidgetで実現できればかなり軽いアプリケーションができるかと

2007年2月4日日曜日

とりあえずHello World的な








今このblogを編集中このエラーが出た後、ブラウザが落ち・・・ちょww

いや、おちつけ!
Firefox2.0からセッションの回復が出来るようになったんだ
いつもウザイと思ってたけど、今日はさすがに回復ボタンをポチっとな・・・

問題は途中まで書いたキャッシュが残っているかどうかだ・・・

ハッ!タイトル残テル(・∀・)

本文は・・・


ア・・・(・д・)キャッシュ残さない設定にしてたんだ・・・


ほんとうにあ(ry



さすがに256じゃ限界か・・・
メモリ増設も考えたケドいつもマシン自体を買い換えたいという誘惑に吸収されていく・・・
なもんで最近はいかにメモリをつかわせないか、考えながら使おうかなぁと
思っているだけです、えぇ



もうあれだ



ローカルでエディタで書いてから投稿しよw
こういうときこそ超軽量アプリケーション「メモ帳」を使ってあげないとねw



あ、どうもlunchfreakです。




とりあえず開発環境は整えた(?)ので、もうコード書くしか道はないんだぜ?


でも、みんなどんな書きかたしてるかぐらいはみておきたい
というかそうでもしないと、ワカリマセン>д<



まずは.konファイル

xmlって自分で勝手にタグを定義していいんでつねww
はじめて知った(・∀・)

どうりで検索かけてもでてこないww

みんささんリファレンスに書いてあるのを駆使しつつ、
やっぱデータ定義としてうまく使っている様子です。

こうやって使うのかぁ(∀`

xmlからjsファイルとか呼び出すには、

<action trigger="onLoad" file="ファイル名">

とかやってまつね。


フムフム(ー`


とりあえず、windowタグだけでうごきそうなんで、こんな.konファイルを作ってみた。

/********************************************

<?xml version="1.0" encoding="UTF-8"?>
<widget debug="on">
 <window
  name="test"
  height="120"
  width="120"
  visible="true"
 />
 <text
  name="test_txt"
  data="Widgetはじめますた。"
  alignment="center"
 />
</widget>

*********************************************/


んで、まんまできた.konファイルをダボークリク(・д・)ウゴケー

結果↓


















えぇっと・・・


なんでしょうwww
水色の枠は説明用に画像に書き込んだので、
これどうみても

やっちゃった感がwww

とりあえずにオフセットを設定してみる。
どうやら
 vOffsetが上からの位置で
 hOffsetが左からの位置のよう


あ!よく見たら警告でてるwww

なんだかエンコーディングがだめらしいw
英語わかんないけど、最後こんな状態でリリースすんなって書いてある気がするのは気のせい?w

ほぉ・・・

とりあえず、xml自体はUTF-8を宣言しているので
あとはエディタ?


ということでNotepad++の設定とか見たが、エンコーディングの設定らしき項目がない・・・
困って数秒エディタを眺めていると、「フォーマット」というメニューがるではないか(・∀・)
選択してみると、案の定エンコーディングが「ANSI」になっとりますたw


つーわけで
あとはオフセットの位置やら、フォントサイズやらを調整してできたのがコレ↓

/********************************************

<?xml version="1.0" encoding="UTF-8"?>
<widget debug="on">
 <window
  name="test"
  height="120"
  width="256"
  visible="true"
 />
 <text
  name="test_txt"
  data="Widgetはじめますた。"
  size="14"
  vOffset="20"
  hOffset="120"
  alignment="center"
 />
</widget>

********************************************/



うんでこれを実(ry

















キター(・∀・)ーーーー!!



つか、widgetって実はこの.konファイルだけで動くってことだなw



よし!


今日はもういいやw

2007年2月1日木曜日

とりあえず開発環境をなんとか【後編】

Firefoxの検索ツールバーの結果を新しいタブで開くように設定にしたのに、
ついつい新しいタブを開いてからググってしまいます。
結果、無駄なタブを開いています。


どうもlunchfreakです。


後半ということで、何を書くつもりだったか本人が思い出せていませんww

前回実はもう寝る時間が迫っていたので途中で区切ったわけで・・・


なんか読み返すとたいして続きとか書く事ないような・・・


とりあえずwidgetの開発環境としてどんな環境になったのか書いておくか



Yahoo! Widget Engine
 これは必須っすね
 ついでにリファレンスとチュートリアルも必読!
 widgetのための構文とかjavascriptのバージョンとか色々のってます。
 iTunes用のメソッドとかあるしw(∀`Appleめ

仕様検討につき(ry

ウィジェットコンバータ
 これはwidget開発用のwidget
 D&Dでフォルダをwidgetしてくれる。
 また、その逆でwidgetをフォルダにできる。
 つまりwidgetの逆コンパイル(・∀・)

Notepad++
 エディタ
 なんかスゲー対応してる言語がいっぱいあるので、とりあえず使ってる。
 でもあんま使いこなせていない・・・orz
 あんま日本語に完全対応してなくてたまに文字化けとかする。
 (設定>スライダー設定で日本語対応のフォントを選ぶよろし)
 GNUオープンソース 
 つい最近バージョンが4.0になったらしい。



とりあえず現状こんなもん。
あとはjavascriptのデバッグツールを導入しようかなと・・・
あとは、GUI用になんかフリーの画像処理できるのがあればいいかな。

widgetを逆コンパイルしてみてるとみんなPNGファイルなんだよね。
多分透明とかに出来るからなんだろうな。

なんかGIMPとかいうオープンソースの画像処理ソフトがあるとか。(・∀・)GUNキタ!
まだ落としてないけど期待大


あとはデバッグはとりあえず、XML側でデバッグモードをonにしておくと、コンソールが出てくるので、

print("messege")

とか書くとコンソールに出力するみたいなので今のところそれで確認してる。

でもやっぱ、


ステップ実行したい・・・


つかやっぱeclipseがすごすぎんのかな(ー`



やっぱjavascriptって性質上デバッグとかやりづらいのかなぁ



なんか良いのがあったら教えてくだせぃ(ー`

2007年1月31日水曜日

とりあえず開発環境をなんとか【前編】

Vistaに買い換えるメリットがよくわかりません。



どうもlunchfreakです。



widget開発



とりあえずまだコード書いてないので、準備段階って感じです。

とりあえず、開発環境どうしようかなぁって


widgetを動かすには、Yahoo! Widget Engine(以下YWE)ってのが必要なわけで
このエンジン上で動くアプリケーションをツクルわけで


で、Yahoo!が用意してる資料をよんでみると、必要なファイルは

・*.kon
・*.js
・*.xml
・その他画像など


で、YWEが一番最初に呼び出すファイルが、.konファイル

って言っても中身xml


要はこの.konファイルさえ書けば、単純なのだったらなんとか動きそうな感じ



で、xmlとかjavascriptとか、あんまよくワガンネという状況です実はww
わかるのはCとかJava


なもんで色々ググってみると、JavaでAjax開発とか言ってる(・∀・)何コレ
その名もGoogle Web ToolkitGWT



なにやらJavaをjavascriptに変換してくれるとか
なにやらブラウザのちがいも気にせんでえぇとか
なにやらeclipseのプラグインもあるとか(・∀・)つ[googlipse]

確かにJavaでAjax開発でつね(ー`

とまぁ


テンションあがっておりましたが、いざ落として使ってみたんですがね・・・


ワガンネwwww



GWTで用意されてるライブラリって、要はSWTみたいな感じなんだけど・・・
CもJavaも初級をマスターしますたぐらいの知識しかないので(´・ω・`)


GUIの知識がからんでくるクラスとか(д`ヨメマセン

orz


ガンガレ新人(`・ω・´)


まぁ、GWT自体最近なのか、まだ日本語に訳されてなかったり
とりあえずサンプルとか見てるとエントリポイントを実装して、そのメソッド
onModuleLoad()ってのがCで言うmain()なのかなっていう解読をしてみたんだが・・・


そもそもソース自体ああいう書き方初めてみたなぁ・・・


これ公式にあったサンプルコード
/************************************************************************/
package com.google.gwt.sample.hello.client;

import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.ClickListener;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.Widget;

public class Hello implements EntryPoint {

public void onModuleLoad() {
  Button b = new Button("Click me", new ClickListener() {
    public void onClick(Widget sender) {
      Window.alert("Hello, AJAX");
     }
  });
  
  RootPanel.get().add(b);
  }

}

/************************************************************************/

な!

いや、やってることはわかるよ!


メソッドの中にメソッド(д`キバツデスネ

});
↑コレ何ww

いみわかんねwww
import多すぎwww




もうなんかJavaでeclipseつかえるならとか思ったけど、GWT自体があんまよくわかんねのと、
ちょっと自分自身が不甲斐ないのと、まぁその他色々不都合(Eclipse3.2の起動がモッサリとかwww)
なんでもう普段使ってるエディタでいいや(ω`)ノ~[eclipse]


よくよく考えたら


ブラウザの違いなんて気にしなくていいんジャマイカ(・д・)


widgetすなわちYWE上でうごくものを書けばいいんだ(・∀・)!
無理やりなじみのないJavaのクラスに悪戦苦闘すんなら
純正Ajaxで悪戦苦闘すんのが筋じゃろがぁ(・д・)<フクザツイクナイ


widgetって実はAjaxを取り入れつつ、web開発のネック
すなわちjavascriptとかcssとかでweb開発者を悩ますブラウザの実装の違い

まんまとクリアしてネ?

つーことは、まぁ、気にするのはプラットフォームの違いぐらいでいいということで
そうとなればjavascriptなんてしょせんスクリプトさ


関数は全部functionで変数は全部varなんだろ?(・∀・)シンプルイイwww


とまぁ遠回りして結局いつもつかってるエディタという開発環境とすら呼べない状況で
javascriptを習得してみようかと心にきめた次第でございます。
後編へつづく

2007年1月29日月曜日

自己紹介とか

どうもlunchfreakと申します。


プログラマです。


今ちょっとwidgetをつくってみたい と思って、どうせなら開発過程をblogしようかなぁと
ちまたで話題のAjaxですね。


あまり読み手を意識しないで書いちゃうんで、知らない単語がでてくるかもしれません。
気が向いたら用語も説明するけども・・・

プログラマとか言っても新人なんで、わかんねぇとか愚痴が多くなるかもです。
あまり知識をご披露できることはすくないかも・・・(・д・;)


あと個人情報うかつにかかんように気をつけたいとおもいます。