http://windowsxp.mvps.org/


http://windowsxp.mvps.org/
'
'내문서등 특수폴더 변경 프로그램
Posted by [czar]
,
기아 야구 경기 일정

http://www.cyworld.com/planner/main/myplanner.asp?minihp_id=60639447


http://www.cyworld.com/planner/main/myplanner.asp?minihp_id=60639447
Posted by [czar]
,
Posted by [czar]
,
miniwini.com 의 후이즈 정보
Welcome to DOREGI.COM's WHOIS data service.

The Data in Doregi' WHOIS database is provided by Doregi
for information purposes, and to assist persons in obtaining
information about or related to a domain name registration record.
Doregi does not guarantee its accuracy. By submitting a WHOIS query,
you agree that you will use this Data only for lawful purposes
and that, under no circumstances will you use this Data to:
(1) allow, enable, or otherwise support the transmission of mass
unsolicited, commercial advertising or solicitations via e-mail(spam);
or (2) enable high volume, automated, electronic processes that apply to
Doregi (or its systems). Doregi reserves the right to
modify these terms at any time. By submitting this query,
you agree to abide by this policy.

Domain Name: MINIWINI.COM
Registrar: HANGANG Systems,Inc. dba doregi.com

Registrant:
Hyoung Ock
102-1006 Songsan Apt., Dongsomun-dong 4-ga Seongbuk-gu Seoul
mellany@gmail.com
02-6227-5077



Administrative Contact:
Hyoung Ock
mellany@gmail.com
02-6227-5077


Technical Contact:
Hyoung Ock
mellany@gmail.com
02-6227-5077


Billing Contact:
Hyoung Ock
mellany@gmail.com
02-6227-5077


Record created on.......: Mar 09, 2002
Record last updated on..: Mar 12, 2009
Record expires on.......: Mar 09, 2009

Domain name servers in listed order:

ns.sshel.com
ns2.sshel.com

IP Address: 211.234.63.226
Maximum Daily connection limit reached. Lookup refused.

Whois Server Version 2.0

Domain names in the .com and .net domains can now be registered
with many different competing registrars. Go to http://www.internic.net
for detailed information.

Domain Name: MINIWINI.COM
Registrar: HANGANG SYSTEMS, INC. D/B/A DOREGI.COM
Whois Server: whois.doregi.com
Referral URL: http://www.doregi.com
Name Server: NS.SSHEL.COM
Name Server: NS2.SSHEL.COM
Status: clientHold
Status: clientTransferProhibited
Updated Date: 12-mar-2009
Creation Date: 08-mar-2002
Expiration Date: 08-mar-2010

>>> Last update of whois database: Thu, 12 Mar 2009 10:01:51 EST <<<

NOTICE: The expiration date displayed in this record is the date the
registrar's sponsorship of the domain name registration in the registry is
currently set to expire. This date does not necessarily reflect the expiration
date of the domain name registrant's agreement with the sponsoring
registrar. Users may consult the sponsoring registrar's Whois database to
view the registrar's reported date of expiration for this registration.

TERMS OF USE: You are not authorized to access or query our Whois
database through the use of electronic processes that are high-volume and
automated except as reasonably necessary to register domain names or
modify existing registrations; the Data in VeriSign Global Registry
Services' ("VeriSign") Whois database is provided by VeriSign for
information purposes only, and to assist persons in obtaining information
about or related to a domain name registration record. VeriSign does not
guarantee its accuracy. By submitting a Whois query, you agree to abide
by the following terms of use: You agree that you may use this Data only
for lawful purposes and that under no circumstances will you use this Data
to: (1) allow, enable, or otherwise support the transmission of mass
unsolicited, commercial advertising or solicitations via e-mail, telephone,
or facsimile; or (2) enable high volume, automated, electronic processes
that apply to VeriSign (or its computer systems). The compilation,
repackaging, dissemination or other use of this Data is expressly
prohibited without the prior written consent of VeriSign. You agree not to
use electronic processes that are automated and high-volume to access or
query the Whois database except as reasonably necessary to register
domain names or modify existing registrations. VeriSign reserves the right
to restrict your access to the Whois database in its sole discretion to ensure
operational stability. VeriSign may restrict or terminate your access to the
Whois database for failure to abide by these terms of use. VeriSign
reserves the right to modify these terms at any time.

The Registry database contains ONLY .COM, .NET, .EDU domains and
Registrars.



whois.co.kr 정보
Record created on.......: Mar 09, 2002
Record last updated on..: Mar 12, 2009
Record expires on.......: Mar 09, 2009   <========= 기한이 9일까지였어?

Updated Date: 12-mar-2009
Creation Date: 08-mar-2002
Expiration Date: 08-mar-2010    <====== 2010년 3월9일로 업데이트 됐네~~~
hosting.kr 에서

고 몇분 사이에 업데이트 된건가?
낼이면 접속되겄지~~






Posted by [czar]
,
 

십자수 기초 질문

 

1. 카운터란

? <1인치 = 2.54센티> 안에 아이다 몇칸이 들어가느냐에 따라 나뉨

? 14카운터는 2.54에 14칸, 11카운터는 11칸

? 숫자가 클수록 도안은 작아지겠죠...^^
 
2. 아 이 다

  ① 종   류
    천 아이다 : 쿠션, 액자용등 일반적으로 사용

    비닐아이다: 핸폰쿠션 등에 이용

    프라스틱아이다: 흔들이주차 등에 이용

    웨스트캔버스: 일반 옷 등에 보조용으로 임시고정한 후 수를 놓고 나중에

    올을 뽑아내는 방식으로 제거함
 
  ② 필요원단

   계 산 법
    도안칸수/카운터*2.54+여유분

    예)100칸/14카운터*2.54+여유10센티=28센티
 
3. 세   탁

(세탁기 NO)
  일단은 맹물에 담가 수성펜 등의 자국을 없앤다

  울샴푸등 중성세제를 이용 조물조물 손세탁한다.

  찌든때등은 액상용 옥시크린등을 이용하여 세탁(넘 오래 담가두진 마세여)

  밀힐구슬이나 메탈릭사등은 세탁 후에 작업하심이 좋을 듯

  핸폰쿠션 등의 비닐아이다도 똑같은 방법으로 세탁
 
다림질
  세탁 후 다림질은 완전히 마르지 않은 상태에서 뒷면을 다림질

  오로라 아이다는 손수건 같은 것을 덮고 다림질-고열에 눌어 붙을수 있음



십자수에 관해 작성하는 두번째 포스트 !!

      전 포스팅때엔 십자수에 관한 아주 기초적인 이야기들을 해놓았는데요옷

      순서대로 차근차근.

      십자수의 가장 기본적인 배경. 정의.. 등등을 말씀드렸었다면 이젠.


      십자수 처음할 때 필요한 것들에 대해서 말씀해 드릴까 해요옷.


      그래서. 요번 포스팅은 원단에 대해 작성하기로 했습니당. !!


     십자수 원단 준비하기.


     


원단


보통 십자수에서는 "천"이라는 표현보다는, "원단"이라는 말을 사용합니다. "아이다"라고도 하구요.

말씀드렸다시피 바늘이 통과하는 구멍일정한 간격으로 나있구요.

구멍이 나있는 간격에 따라, 원단의 종류가 나뉘지용.

또한, 색깔이나, 무늬, 혹은 펄이 섞여있는 등등. 여러가지로 원단이 나뉜답니다. !! ^ ^


 종류. (by. 구멍 간격)

 원단에 나있는 구멍의 간격에 따라 종류가 나뉘어집니다.

이때 원단의 종류를 Count(줄여서 ct)라는 단위를 사용해 표현하는데요.

이때 count수란 =  사방 1인치 내에 포함되어 있는 구멍의 수를 나타냅니다.


14count = 1인치 내에 구멍이  14개 나있음.(가장 무난하게 많이 쓰이는 원단입니다!!)

16count

18count

11count

9count

28count(드물긴 하지만.. 있어요. 구멍이 굉장히 촘촘하겠죠 ^ ^ 수놓다가 기절할듯.  흐억 !! =ㅁ=)


종류(by. 원단 크기.)


 1/4 마 = 45 X 75Cm
1/2 마 = 90 X 75Cm
1 마 = 90 X 150Cm

 

십자수 원단은  1/4마를 구입하는 것이 기본이에요.

물론, 집에 걸어놓을 커다란 그림 같은 것을 목적으로 큰 작품을 하시는 분들은 더 큰 사이즈로 구입하시겠지만. ^ ^

일반적으론, 주차쿠션, 열쇠고리, 등을 많이 하시기 때문에. 1/4마를 구입하신답니당.

가격은 오프라인 매장에서 구입하신다면 보통 3000~4000원 정도 선이에요. 솔직히 싼 편은 아니죠.

지난 포스팅 때도 말씀드렸지만. 오프라인매장보다는.  자주가시는 단골 온라인 쇼핑몰을 하나 만드시는게 좋아요. ^ ^

가격차이가 정말 엄청나요...;; 조금 차이 난다면 또 모르지만.

인터넷으로 구입하시는것이 두세배 이상 이득입니다.


또한, 십자수 하실때 여러모로 알뜰하게 하시는 습관을 들이시는게 좋지요옷.

원단을 자를때도 신중하게 잘라서 쓸데없는 낭비를 줄이구요오. 나중에 남은 원단을 잘 사용할 수 있게 보관도 성의껏. ^ ^


아껴써서 나쁠건 없지 않겠어용? 요거 쬐금 아낀다고 뭔 차이가 있것어~ 하실지도 모르지만.

그 조금 생각하셔서 아끼시는 것이, 결과적으로 많은 이득이 된다는 것. !!^ ^


어째 원단 정보 포스팅이 결론은. 아껴쓰자로 끝나버리네요. =_=




담아가실 때에는 덧글. 아시죵?

궁금하신 점도 덧글/쪽지로 알려주세요오. ^ ^


Posted by [czar]
,
Posted by [czar]
,

로컬자원을 서버에 전송하기 위해 우리는 FileReference Class를 사용하면 된다.
FileReference로 파일을 서버에 전송하는 방법은 많이 공개가 되어 있다.
알다시피 FileReference의 browse()함수를 호출한 뒤, select 이벤트가 발생시 upload() 함수를 이용하여 선택한 로컬자원을 서버로 보낸다.

서버에서는 아주 단순하게 서버 임시 저장소에 저장된 파일을 원하는 곳에 복사하기만 하면 된다.
php의 경우 move_uploaded_file() 메소드를 사용하면 되겠다.

그럼 Flex 시행도중 캡쳐한 화면을 저장하는 경우에도 위와 같은 방법으로 저장이 가능할까?

답은 "된다"


나는 예전에 ImageSnapshot 클래스를 이용해 base64로 변환해서 서버로 전송한 뒤에 base64를 decode하여 저장하는 방법에 대해서 언급한적이 있다. (http://blog.jidolstar.com/301 참고)
이 방법의 단점은 이미지가 큰 경우 base64로 encode, decode 하는 과정에서 서버성능 및 클라이언트 성능에 따라 속도 및 부하에 영향을 준다. 그러므로 이 방법으로는 PNGEncoder 및 JPGEncoder로 PNG, JPG 파일 형식에 맞는 데이타를 만들었다고 해도, FileReference와 같이 데이타를 전송을 할 수 없었다.

하지만 Google을 열심히 돌아다녔다니 이 문제점에 대한 해결의 실마리를 찾을 수 있었다.
(역시 Google!!!)

간단히 방법을 요약하자면
화면을 BitmapData로 만들어 PNGEncoder나 JPGEncoder를 이용하여 encode한 다음, 그 결과값인 byteArray값을 서버에 전송한다. 전송된 데이타는 FileReference에서 upload()을 이용해 보낸 파일을 저장할때와 동일하게 저장하면 되겠다.

1. BitmapData로 캡쳐해라.

아래 target은 캡쳐할 UIComponent와 같은 DisplayObject 객체이다.

BitmapData로 캡쳐
var bitmapData:BitmapData = new BitmapData(target.width, target.height, true, 0xFFFFFF);
var drawingRectangle:Rectanglenew Rectangle(0, 0, target.width, target.height);
bitmapData.draw(target, new Matrix(), null, null, drawingRectangle, false);

단, BitmapData를 이용해서 화면을 캡쳐할 대상이 외부 동영상이나 사진같은 거라면 crossdomain.xml 에 대한 check가 있어야 한다. 컨텐츠 로드시 checkPolicyFile 속성을  true로 설정할 필요가 있겠다.
그리고 2880px 이상의 크기는 BitmapData로 만들 수 없다.



2. JPG나 PNG로 Encode 하여 ByteArray를 얻는다.


Flex 3 SDK에는 mx.graphics.codec 패키지에 JPGEncoder와 PNGEncoder가 있다. 인터넷을 뒤져보면 GIFEncoder등도 있을것이다. Flex 2 환경에서 작업한다면 Google code에 Adobe AS3 Corelib에 이들이 제공된다. 만약 JPGEncoder를 사용한다면 다음과 같이 하면 되겠다.

JPGEncoder를 이용하여  JPG  ByteArray값 만들기
import mx.graphics.codec.JPGEncoder;

var byteArray:ByteArray = new JPGEncoder().encode(bitmapData);


Flex 3 SDK는 이러한 Encoder가 IImageEncoder로 구현되었다. 필요하다면 언제 어디서나 Encoder를 바꿔야 하는 경우 IImageEncoder를 사용하는 것이 좋을 수 있겠다.
가령 아래 예제처럼 말이다.

다양한 Image Encoder 사용하기
import mx.graphics.codec.*;

var imageType:String = "jpg";
var imageEncoder:IImageEncoder;
if( imageType.toUpperCase() == "JPG" ) imageEncoder= new JPEGEncoder();
else if( imageType.toUpperCase() == "PNG" ) imageEncoder= new PNGEncoder();
var byteArray:ByteArray = imageEncoder.encode(bitmapData);



 

3. 서버에 ByteArray를 전송한다.

데이타를 전송할때는 FileReference를 사용하지 않는다.
바로 URLLoader와 URLRequest만 이용해서 전송이 가능하다. 참고 데이타는 POST방식으로 URLVariable을 이용해서 보낼 수 있다.

Flex/AIR 데이터 전송 방법
//assumed variable declarations
//var byteArray:ByteArray = 2번째 단계에서 JPG 데이타를 얻었다.
//var fileName:String = "desiredfilename.jpg" //저장할 파일 이름이다. 아무거나 적자!
//var uploadPath:String = "저장할 때 사용되는 서버측 script 경로"
//var parameters:URLVariables = 이미지 이외에 다른 보낼 다른 데이타가 있다면 이것을 이용한다.
//function onComplete(eventObj:Event):void {  성공적으로 데이타를 전송했을때 핸들러 함수 정의
//function onError(eventObj:ErrorEvent):void {  이미지 전송을 실패했을때 핸들러 함수 정의

var urlRequest:URLRequest = new URLRequest();
urlRequest.url = uploadPath;
urlRequest.contentType = 'multipart/form-data; boundary=' + UploadPostHelper.getBoundary();
urlRequest.method = URLRequestMethod.POST;
urlRequest.data = UploadPostHelper.getPostData(file, byteArray, parameters);
urlRequest.requestHeaders.push( new URLRequestHeader( 'Cache-Control', 'no-cache' ) );

var urlLoader:URLLoader = new URLLoader();
urlLoader.dataFormat = URLLoaderDataFormat.BINARY;
urlLoader.addEventListener(Event.COMPLETE, onComplete);
urlLoader.addEventListener(IOErrorEvent.IO_ERROR, onError);
urlLoader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onError);
urlLoader.load(urlRequest);


위에 진한 부분에 대한 클래스는 아래에 정의되어 있다. 당신은 이 클래스가 어떻게 구성되었는가 열심히 공부할 필요가 없다.(원한다면 해도 된다. 말리지 않음 ^^)

UploadPostHelper Class (Language : java)
package {

    import flash.events.*;
    import flash.net.*;
    import flash.utils.ByteArray;
    import flash.utils.Endian;

    /**
     * Take a fileName, byteArray, and parameters object as input and return ByteArray post data suitable for a UrlRequest as output
     *
     * @see http://marstonstudio.com/?p=36
     * @see http://www.w3.org/TR/html4/interact/forms.html
     * @see http://www.jooce.com/blog/?p=143
     * @see http://www.jooce.com/blog/wp%2Dcontent/uploads/2007/06/uploadFile.txt
     * @see http://blog.je2050.de/2006/05/01/save-bytearray-to-file-with-php/
     *
     * @author Jonathan Marston
     * @version 2007.08.19
     *
     * This work is licensed under a Creative Commons Attribution NonCommercial ShareAlike 3.0 License.
     * @see http://creativecommons.org/licenses/by-nc-sa/3.0/
     *
     */

    public class UploadPostHelper {

        /**
         * Boundary used to break up different parts of the http POST body
         */

        private static var _boundary:String = "";

        /**
         * Get the boundary for the post.
         * Must be passed as part of the contentType of the UrlRequest
         */

        public static function getBoundary():String {

            if(_boundary.length == 0) {
                for (var i:int = 0; i < 0x20; i++ ) {
                    _boundary += String.fromCharCode( int( 97 + Math.random() * 25 ) );
                }
            }

            return _boundary;
        }

        /**
         * Create post data to send in a UrlRequest
         */

        public static function getPostData(fileName:String, byteArray:ByteArray, parameters:Object = null):ByteArray {

            var i: int;
            var bytes:String;

            var postData:ByteArray = new ByteArray();
            postData.endian = Endian.BIG_ENDIAN;

            //add Filename to parameters
            if(parameters == null) {
                parameters = new Object();
            }
            parameters.Filename = fileName;

            //add parameters to postData
            for(var name:String in parameters) {
                postData = BOUNDARY(postData);
                postData = LINEBREAK(postData);
                bytes = 'Content-Disposition: form-data; name="' + name + '"';
                for ( i = 0; i < bytes.length; i++ ) {
                    postData.writeByte( bytes.charCodeAt(i) );
                }
                postData = LINEBREAK(postData);
                postData = LINEBREAK(postData);
                postData.writeUTFBytes(parameters[name]);
                postData = LINEBREAK(postData);
            }

            //add Filedata to postData
            postData = BOUNDARY(postData);
            postData = LINEBREAK(postData);
            bytes = 'Content-Disposition: form-data; name="Filedata"; filename="';
            for ( i = 0; i < bytes.length; i++ ) {
                postData.writeByte( bytes.charCodeAt(i) );
            }
            postData.writeUTFBytes(fileName);
            postData = QUOTATIONMARK(postData);
            postData = LINEBREAK(postData);
            bytes = 'Content-Type: application/octet-stream';
            for ( i = 0; i < bytes.length; i++ ) {
                postData.writeByte( bytes.charCodeAt(i) );
            }
            postData = LINEBREAK(postData);
            postData = LINEBREAK(postData);
            postData.writeBytes(byteArray, 0, byteArray.length);
            postData = LINEBREAK(postData);

            //add upload filed to postData
            postData = LINEBREAK(postData);
            postData = BOUNDARY(postData);
            postData = LINEBREAK(postData);
            bytes = 'Content-Disposition: form-data; name="Upload"';
            for ( i = 0; i < bytes.length; i++ ) {
                postData.writeByte( bytes.charCodeAt(i) );
            }
            postData = LINEBREAK(postData);
            postData = LINEBREAK(postData);
            bytes = 'Submit Query';
            for ( i = 0; i < bytes.length; i++ ) {
                postData.writeByte( bytes.charCodeAt(i) );
            }
            postData = LINEBREAK(postData);

            //closing boundary
            postData = BOUNDARY(postData);
            postData = DOUBLEDASH(postData);

            return postData;
        }

        /**
         * Add a boundary to the PostData with leading doubledash
         */

        private static function BOUNDARY(p:ByteArray):ByteArray {
            var l:int = UploadPostHelper.getBoundary().length;

            p = DOUBLEDASH(p);
            for (var i:int = 0; i < l; i++ ) {
                p.writeByte( _boundary.charCodeAt( i ) );
            }
            return p;
        }

        /**
         * Add one linebreak
         */

        private static function LINEBREAK(p:ByteArray):ByteArray {
            p.writeShort(0x0d0a);
            return p;
        }

        /**
         * Add quotation mark
         */

        private static function QUOTATIONMARK(p:ByteArray):ByteArray {
            p.writeByte(0x22);
            return p;
        }

        /**
         * Add Double Dash
         */

        private static function DOUBLEDASH(p:ByteArray):ByteArray {
            p.writeShort(0x2d2d);
            return p;
        }

    }
}



한가지 중요한 정보를 언급하겠다.
URLLoader를 이용해 서버에 전송할때, 프로그램이 같은 도메인상에 있는 경우에는 보안문제가 없다. 하지만 다른 도메인에 위치한 서버로 이미지를 전송할때는 반드시 crossdomain.xml을 check해야한다.

1. Security.loadPolicyFile(http://다른도메인/crossdomain.xml); 를 URLLoader의 load()함수를 호출하기 전에 호출한다.

2. Flash Player 9.0.124.0 버전부터는 HTTP Header 보안취약점을 해결하기 위해서 cross domain 정책이 변경되었는데.... 서버측에 있는 crossdomain.xml에 allow-http-request-headers-from가 추가되어져야 한다. 이것은 HTTP 헤더 전송을 허용할지 결정해준다.

crossdomain.xml (Language : xml)
<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
      <allow-access-from domain="*.jidolstar.com" />
      <allow-http-request-headers-from domain="*.jidolstar.com" headers="*"/>
</cross-domain-policy>

위 처럼 서버측 crossdomain.xml에 allow-http-request-headers-from을 추가함으로 다른 도메인간에 HTTP 헤더 전송을 허용할 수 있다.

서로 다른 도메인에 SWF와 서버측 코드가 배치되어 있다면 반드시 이 사실을 숙지하길 바란다.
 

4. 서버측 코드 작성

만약 위 3번 코드에서 var parameters:URLVariables를 아래와 같이 작성했다고 하자.

URLVariables 설정 (Language : java)
var parameters:URLVariables = new URLVariables();
parameters.method = "id";
parameters.userId = "2000321";


그럼 PHP 코드로 아래와 같은 방법처럼 만들면 되겠다.(테스트는 안해봤음)

PHP 코드 예제 (Language : php)
<?php
$method = $_POST['method'];
$userId = $_POST['userId'];
$file_temp = $_FILES['Filedata']['tmp_name'];
$file_name = $_FILES['Filedata']['name'];
$file_size = $_FILES['Filedata']['size'];

if( $method == "id" )
{
  $movePath = "/home/myPath/images/$userId_$file_name";
}
else
{
  $movePath = "/home/myPath/images/time_".time()."_".$file_name;
}

move_uploaded_file($file_temp,$movePath);

echo "save Complete";
?>


마지막 save Comple 메시지를 받기 위해서는 Flex의 Complete 이벤트 발생시 아래와 같은 방법으로 받으면 되겠다. 이것을 알아내는데도 많이 힘들었다. 일종의 팁이다. ^^;

데이타 받기 (Language : java)
var loader:URLLoader = URLLoader(event.target);
var bytedata:ByteArray = loader.data;
var strData:String = bytedata.toString();
trace( strData)


실제 업무에도 잘 이용하고 있다.
이미지 에디터 등을 만들때 아주아주 유용한 자료가 될 것이다.

누가 예제 프로그램 만들어서 트랙백 걸어 주시면 고맙겠다.


자료 출처 
http://marstonstudio.com/2007/08/19/how-to-take-a-snapshot-of-a-flash-movie-and-automatically-upload-the-jpg-to-a-server-in-three-easy-steps/


지돌스타 블로그내 참고자료
 - ImageSnapshot 클래스에 대해 : http://blog.jidolstar.com/301
 - FileReference의 UploadCompleteData 이벤트 : http://blog.jidolstar.com/324
 - 동영상 캡쳐 방법 : http://blog.jidolstar.com/215


글쓴이 : 지돌스타(http://blog.jidolstar.com/352)

Posted by [czar]
,
Posted by [czar]
,

eclipse plugin

카테고리 없음 2009. 2. 24. 11:28
Posted by [czar]
,

eclipse plugin

카테고리 없음 2009. 2. 24. 11:27
Posted by [czar]
,