http://www.redmine.org/projects/redmine/wiki/PluginScreenshotPaste



'Programming > ITS' 카테고리의 다른 글

Image Uploader of CKEditor plugin (CKFinder)  (0) 2013.01.01
Redmine & WIN32OLE(excel) 성공 - ruby  (0) 2013.01.01
Redmine - Issue statuses(원본)  (0) 2012.01.28
Posted by 세모아
,

할일 : 아래 링크의 doc 파일을 다운받아서, 첨부하기.

-> 이미 ucloud에 넣었네... ^^;


-------------------------------------------

출처: http://blog.naver.com/ansysda/10028865422


SQL Server 전문 컨설턴트가 DB 운영의 문제를 안고 있는 중소기업체를 방문, 진단하여 성능향상과 효율적인 DB 관리 방안에 대한 최적의 방안을 제시해 드리고 있습니다. 현장의 DB 관리자들이 현업에서 겪는 실제 문제점에 실제 사례를 통해서, 시스템 진단에서부터 해결책 제시까지 문,답식으로 구성되어 쉽게 이해할 수 있으며, 현업에 적용이 가능하도록 구성이 되어 있습니다.

1. 중소기업을 위한 SQL Server 기본 모니터링


2. 성능향상을 위한 SQL Server 튜닝의 정석


3. 데이터베이스 관리 노하우 업그레이드 하기


4. 온라인 서비스 기업을 위한 DB 운영 가이드


5. 성능 저하? 아니 뗀 굴뚝엔 연기 안난다


6. SQL Server 2005로 마이그레이션 후 운영 가이드

더 많은 자료들은 이곳에서..



Posted by 세모아
,

내가 등록한 것.

http://www.redmine.org/plugins/ckfinder_for_redmine


Plugins Directory » Image Uploader of CKEditor plugin (CKFinder)


Author: Joshua Lee
Website: -
Code repository: -
Registered on: 2012-11-26 (약 한달)
Current version: 1.0.0
Compatible with: Redmine 1.4.x, 1.3.x

You can use CKFinder to uploading images in CKEditor plugin.
Also you can browse images in CKEditor.

  • Requirements and tested versions :
    - Redmine 1.3.0.stable (installed by Bitnami)
    - PHP Version 5.3.8 (installed automatically by Bitnami)
    - CKEditor 3.4.2 (Redmine CKEditor plugin, http://github.com/ebrahim/redmine_ckeditor, 0.0.6-ebrahim)
    - CKFinder : ckfinder_php_2.2.2.1

I didn't test in redmine v2.x, but it will work.
(* CKFinder is not free.)

Installation notes

0. Stop apache server

1. Copy unzipped CKFinder folder into
C:\Program Files\BitNami Redmine Stack\apache2\htdocs

2. Copy helper.rb file into
C:\Program Files\BitNami Redmine Stack\apps\redmine\vendor\plugins\redmine_ckeditor\lib\redmine_ckeditor\wiki_formatting

3. Copy config.php file into
C:\Program Files\BitNami Redmine Stack\apache2\htdocs\ckfinder

4. Restart apache server

Changelog

1.0.0 (2012-10-12)

Compatible with Redmine 1.4.x, 1.3.x.

CKFinder_sample.png - How to upload image (191.58 KB) Joshua Lee, 2012-11-26 03:02

helper.rb Magnifier - helper.rb (2.46 KB) Joshua Lee, 2012-11-26 03:02

config.php Magnifier - config.php (10.308 KB) Joshua Lee, 2012-11-26 03:02


'Programming > ITS' 카테고리의 다른 글

redmine Plugin ScreenshotPaste  (0) 2013.02.22
Redmine & WIN32OLE(excel) 성공 - ruby  (0) 2013.01.01
Redmine - Issue statuses(원본)  (0) 2012.01.28
Posted by 세모아
,


Redmine & WIN32OLE(excel) 성공.xls


'Programming > ITS' 카테고리의 다른 글

Image Uploader of CKEditor plugin (CKFinder)  (0) 2013.01.01
Redmine - Issue statuses(원본)  (0) 2012.01.28
[Redmine] 단어 정의  (0) 2012.01.28
Posted by 세모아
,

Drones+ 아이폰앱 제작자인 Josh Begley의 작품.

(Drones+에 대한 한국기사: http://www.bloter.net/archives/136377)



출처: http://prisonmap.com/about


About

Prison Map is not a map -- it's a snapshot of the earth's surface, taken at various points throughout the United States. It was made by Josh Begley, a graduate student studying Interactive Telecommunications at New York University.

* * *

The United States is the prison capital of the world. This is not news to most people. When discussing the idea of mass incarceration, we often trot out numbers and dates and charts to explain the growth of imprisonment as both a historical phenomenon and a present-day reality.

But what does the geography of incarceration in the US actually look like? Prison Map is my attempt to answer that question.




The project came about in a Data Representation class with Jer Thorp at NYU. It begins from the premise that mapping the contours of the carceral state is important. A number of people and organizations have done excellent work in this regard. Among them are the Prison Policy Initiative and Prisoners of the Census. Over the past few years, they have culled together a database of seemingly mundane but hard-to-locate information: the latitude and longitude of every carceral facility in the United States (currently with the exception of WA, WV, WI, and WY). Their locator tool, which aims to identify correctional facilities counted in the 2010 census for the purposes of accuracy and redistricting, is the first database I know of to include state and federal prisons alongside local jails, detention centers, and privately-run facilities. You can explore their facility locator here.

When using the tool, however, it was hard for me to get a sense of volume -- what does it mean to have 5,000 or 6,000 people locked up in the same place? What do these carceral spaces look like? How do they transform (or get transformed by) the landscape around them?

In order to begin answering some of these questions, I started playing with satellite imagery. The Google Maps API allows you to pass any latitude and longitude into its Static Maps service, specifying parameters such as format and zoom level, and it will spit back an image of that particular location. With Jer's help, I wrote a simple Processing sketch that would grab image tiles at various lat/lons, save them as a .jpg file, and cycle through all 4,916 facilities:

String[] prisons;

void setup() {
}

void draw() {
  prisons = loadStrings("prisons-latlon.csv");
  for(int i = 0; i < prisons.length; i++) {
    String[] values = split(prisons[i], ",");
    String lat = values[0];
    String lon = values[1];
    String id = values[2];
    PImage test = getSatImage(lat,lon);
    test.save("facility" + id + ".jpg");
  }
  
}

PImage getSatImage(String lat, String lon) {
    String url = "http://maps.googleapis.com/maps/api/staticmap?center=" + lat + "," + lon + "&zoom=
    16&scale=1&size=640x640&maptype=satellite&sensor=false&junk=.jpg";
    return(loadImage(url));
}

Not all of the coordinates are perfect. Also, because there are so many images, the webpage takes quite a while to load. For this reason, I've only included about 700 (14%) of the best photos. If you want to see the entire data set, you can do so here.

Questions or comments? Email me: josh.begley[at]nyu.edu.


Posted by 세모아
,

참고 : http://support.microsoft.com/kb/321185/ko


1. 새 쿼리  선택


2. select @@VERSION 실행

   -> 쿼리 결과에서 버전은 R2 (SP2),

       Edition은 Enterprise Edition을 조회가능.

'Programming > Database' 카테고리의 다른 글

[펌] SQL Server 실전 묻고 답하기  (0) 2013.01.16
SQL문 예제 - MySQL  (0) 2012.11.29
MySQL inner join 예제  (0) 2012.09.07
Posted by 세모아
,

출처 [ASP,ASP.NET,PHP,JSP,JavaScript,Database 등 웹개발자 모임] | tlsgidgh

원문 http://cafe.naver.com/webdeveloper/4014

Taeyo's ASP.NET

   강좌 최초 작성일 : 2005년 07월 29일
   강좌 최종 수정일 : 2005년 08월 01일

   작성자 : Taeyo(김 태영)
   편집자 : Taeyo(김 태영)

   강좌 제목 : DataGrid를 간단하게 Excel로 변환하기

강좌 전 태오의 잡담>

세월은 정말로 빠릅니다. 어느덧 사이트를 운영한지도 만 7년이 훌쩍 넘어버렸네요.
7년 4개월째라니... 거 참..

과연 3년 뒤에도 사이트는 존재하고 있을까요? 그랬으면 하는 바램입니다.


저번 강좌에서 여러분은 ASP.NET 페이지가 이미지로 둔갑하는 멋진 액숀을 보셨습니다. 이번 강좌에서는 그 지식을 기반으로 해서, DataGrid의 내용을 아주 쉽게 Excel로 다운로드 시키는 방법에 대해서 알아보고자 합니다.

참고로, 이 글은 http://azamsharp.net/DataGridExport.htm의 컬럼을 참고로 하여 재 작성한 것임을 밝힙니다.

단, 이번 강좌에서 다루는 방법은 아주 단순하고 빠르게 DataGrid의 데이터를 추가적인 변경작업이나 필터링없이 Excel로 단순 출력하고자 하는 경우에만 유용한 방법입니다. 그 외의 추가적인 요구사항이 있을 경우에는 이 방법을 사용할 수 없을 것입니다. 어떤 추가적인 처리가 필요한 경우에는 www.codeproject.com과 같은 사이트에서 ASP.NET에서 엑셀을 제어하는 샘플 소스들을 구해서 그를 응용하여 구현하셔야 할 것입니다. 물론, 그 경우에는 구현이 간단하지도 않겠죠?

하지만, 간단한 수준의 엑셀 출력이라면 그런 복잡한 방법을 사용하지 않고도 가능합니다. 왜냐하면, 최신 Excel 어플리케이션은 HTML 태그를 인식하기 때문입니다. 근데, 말입니다. HTML을 지원하기 시작한 Excel의 버전이 몇 부터인지는 죄송하게도.. 잘 모르겠습니다. ㅜㅜ(아마도 Excel 2002부터가 아닌가 하는데..) 혹시, 아시는 분이 있다면 연락주시면 바로 여기에 추가적으로 기입하도록 하겠습니다.

먼저, 엑셀이 HTML을 지원한다는 것을 확인해보는 것으로 시작해 보도록 하겠습니다. 이를 위해서, 여러분이 매우 자주~ 습관적으로 편하게~ 임시 데이터를 저장하는 장소인 [바탕화면]에 다음과 같은 HTML 태그들을 갖는 html 페이지를 하나 만들어 주세요.     

<table>
    <tr>
        <td>아이디</td>
        <td>이름</td>
        <td>성별</td>
    </tr>
    <tr>
        <td>taeyo</td>
        <td>김태영</td>
        <td>남</td>
    </tr>
    <tr>
        <td>queeny</td>
        <td>욘쟈</td>
        <td>여</td>
    </tr>
    <tr>
        <td>hyunny</td>
        <td>김영현</td>
        <td>남</td>
    </tr>
    <tr>
        <td>vangelis</td>
        <td>성지용</td>
        <td>남</td>
    </tr>
    <tr>
        <td>dukyoung</td>
        <td>김덕영</td>
        <td>남</td>
    </tr>
</table>

그리고, 이 파일을 test.htm 이라고 저장합니다. ^^ 저장이 되셨다면, 이를 Excel 프로그램을 이용해서 열어보세요 ^^ 그러면, 다음과 같이 멋들어지게 Excel로 말끔하게 열리는 것을 볼 수 있을 것입니다.

멋지죠? 여기까지만 설명드려도... 오호라, 이렇다면 그리드의 데이터를 엑셀로 출력하는 것은 정말로 쉽겠구나 하시는 분들이 있죠? 여기 저기서 많이 보이네요.. 하~ 정말이지. 너무 쉬운듯 했네요. 이런 쉬운 내용을 강좌로 올리다니 배신이야 하시는 분들도 조금 보이고.. ㅠㅠ

그렇군요... 그렇다면, 굳이 더 진행을 하지 않아도 될 듯 합니다.






라고 끝을 내면... 허걱!!! 매우 곤란한 지경에 빠질 수 있다는 사실을 압니다. 잠깐의 장난에 대해서도 여러분의 강력한 포스가 느껴지는 군요..

그렇다면, 계속해 보겠습니다. ^^ 방법은 다음과 같습니다. 엑셀이 HTML을 지원하니, DataGrid의 결과 HTML을 얻어서 이를 엑셀로 둔갑시켜 다운로드 시키는 것입니다. 저번 강좌에서 ASP.NET 페이지를 이미지로 둔갑하는 것을 해 보았으니, ASP.NET 페이지를 Excel로 변환하는 것 또한 어렵지 않을 것이라는 것을 아실 것입니다. 문제는 DataGrid의 데이터를 HTML로 얻어내는 것이지요.

하지만, 이 또한 어렵지 않습니다. 왜냐하면, 모든 ASP.NET 서버 컨트롤들은 그 컨트롤이 보유하고 있는 데이터를 기본적으로 HTML로 출력하기 때문입니다. 우리는 DataGrid 컨트롤의 RenderControl()라는 메서드를 이용해서 그러한 데이터를 얻어낼 수가 있습니다. 그리고, 그것을 브라우저를 통해서 화면에 다운로드 시킬 수 있죠.

그렇다면, 소스를 한번 볼까요? 일단, 테스트를 위해서 작성한 웹 폼의 디자인은 다음과 같습니다. DataGrid 컨트롤 하나와 Button 컨트롤 하나죠~ 덜렁~

그리고, 제가 작성한 코드 비하인드 코드는 다음과 같습니다.     

public class GridExportTest : System.Web.UI.Page
{
    protected System.Web.UI.WebControls.DataGrid DataGrid1;
    protected System.Web.UI.WebControls.Button Button1;

    private void Page_Load(object sender, System.EventArgs e)
    {
        SqlConnection con = new SqlConnection();
        con.ConnectionString = "server=.;database=pubs;uid=***;pwd=***";

        SqlCommand cmd = new SqlCommand("Select * from Authors", con);
        SqlDataAdapter a = new SqlDataAdapter(cmd);

        DataSet ds = new DataSet();
        a.Fill(ds);

        DataGrid1.DataSource = ds;
        DataGrid1.DataBind();
    }

    private void Button1_Click(object sender, System.EventArgs e)
    {
        Response.Clear();
        Response.AddHeader("content-disposition", "attachment;filename=DataGrid.xls");
        Response.ContentType = "application/vnd.xls";

        System.IO.StringWriter stringWriter = new System.IO.StringWriter();
        System.Web.UI.HtmlTextWriter htmlWriter = new HtmlTextWriter(stringWriter);
        DataGrid1.RenderControl(htmlWriter);

        Response.Write(stringWrite.ToString());
        Response.End();
    }
}

설명을 일단 간단하게 드리자면, 페이지가 로드될 경우 DataGrid에다가 MS-SQL 서버의 Pubs 데이터베이스에 있는 데이터를 로드 하구요. Excel Download라는 버튼이 눌릴 경우, 포스트백과 동시에 DataGrid의 데이터를 얻어와서 그 것을 엑셀 형식으로 다운로드 시키는 것입니다.

코드를 모두 작성하셨다면, 실행하여 결과를 보도록 하세요 ^^

그러면, 위와 같이 엑셀 다운로드 창이 뜨구요. [열기] 버튼을 누르면 뜨거운 열기를 뿜어대며 다음과 같이 Excel 응용 프로그램이 뜨는 것을 보실 수 있을 것입니다.

멋지죠? 또한, 간단하죠?

오오.. 뭔가 뜨거운 기운이 느껴집니다.

그렇다면, 이제 코드를 살펴보도록 하겠습니다. 핵심이 되는 코드는 역시나 Button1_Click 이겠죠?

우선, 버튼이 클릭될 경우에는 저번 강좌에서 설명드렸던 것처럼, Response.Clear() 메서드를 통해서 버퍼에 존재할 지 모르는 모든 데이터를 제거합니다. 즉, 이제부터 작성되는 데이터만을 클라이언트의 브라우저로 내려보내기 위해서 기존 버퍼를 말끔히 비우는 것이지요. ^^

그 다음에는, Response.AddHeader("content-disposition", "attachment;filename=DataGrid.xls") 를 통해서 내려보낼 파일의 이름을 DataGrid.xls라고 지정합니다. 반드시 필요한 코드는 아니겠지만, 이렇게 명칭을 주는 것이 파일을 받아보는 사용자 입장에서는 더욱 분간이 쉬울 것입니다. 만일, 이 한 줄의 코드가 없다면 사용자는 aspx 파일 확장자를 갖는 Excel 파일을 보게 될테니까요 ^^

Response.ContentType = "application/vnd.xls"는 현재 내려보낼 데이터의 형식을 지정해 주는 부분입니다. 이 코드를 통해서 지금부터 내려보낼 데이터는 엑셀(Excel) 데이터라는 것을 클라이언트 브라우저가 인식할 수 있게 됩니다. ^^

자. 여기까지의 코드로 엑셀을 내려보내기 위한 환경적인 준비는 모두 된 것 같네요. 그렇다면, 이제부터는 실제로 Excel을 위한 데이터를 내려보낼 차례입니다.

무엇보다 먼저,데이터를 문자열로 기록하기 위한 클래스인 StringWriter의 개체가 필요할 것입니다. System.IO.StringWriter stringWriter = new System.IO.StringWriter()는 이를 위해 StringWriter 개체를 생성하는 코드입니다.

그리고, HTML 관련 문자 및 텍스트를 순차적으로 쓰기 위해 필요한 클래스인 HtmlTextWriter 클래스 인스턴스를 생성합니다. 이는 생성자의 인자로 방금 앞에서 만들어 둔 StringWriter 개체를 사용하게 됩니다.

DataGrid1.RenderControl(htmlWriter)는 DataGrid의 HTML 출력 렌더를 HtmlTextWriter에 기록하는 작업을 수행합니다. 이로써, 우리는 그리드의 출력을 HtmlTextWriter에 저장할 수 있게 됩니다. 이 작업이 핵심이라 볼 수 있겠네요 ^^

이제 마지막으로, DataGrid의 출력결과 HTML을 Response.Write(stringWrite.ToString())를 통해서 문자열로 브라우저의 화면에 출력합니다. 그러면, 이 모든 HTML 데이터는 실제로는 HTML 태그이지만, 엑셀 타입 형식으로 클라이언트에게로 내려가게 될 것입니다. ^^

생각보다 대단히 간단합니다. 원하는 컨트롤의 출력 HTML을 그대로 브라우저를 통해서 내려주면서, 파일의 형식만을 바꿔주면 되는 것이죠. 같은 방식으로 DataGrid의 출력물을 Excel이 아닌 Word 파일로도 내려보낼 수 있습니다. 왜냐하면, Microsoft Word도 HTML을 인식하거든요. ^^

말이 나온 김에 한번 해 볼까요?

기존의 코드에서 Response.AddHeader() 부분과 Response.ContentType을 주는 부분을 Excel이 아닌 Word 로 바꿔주기만 하면 간단하게 해결이 됩니다. ^^ 다음과 같이 말이죠 ^^     

    private void Button1_Click(object sender, System.EventArgs e)
    {
        Response.Clear();
//     Response.AddHeader("content-disposition", "attachment;filename=DataGrid.xls");
//     Response.ContentType = "application/vnd.xls";

        Response.AddHeader("content-disposition", "attachment;filename=DataGrid.doc");
        Response.ContentType = "application/vnd.word";


        System.IO.StringWriter stringWriter = new System.IO.StringWriter();
        System.Web.UI.HtmlTextWriter htmlWriter = new HtmlTextWriter(stringWriter);
        DataGrid1.RenderControl(htmlWriter);

        Response.Write(stringWrite.ToString());
        Response.End();
    }
}

코드를 모두 작성하셨다면, 실행하여 결과를 보도록 하세요 ^^. 그리드의 출력모습은 동일하겠지만, 버튼을 클릭할 경우 이번에는, 엑셀 다운로드 창이 아닌 워드 다운로드 창이 뜨는 것을 보실 수 있을 것입니다.

그리고, [열기] 버튼을 누르면 매우매우 뜨거운 열기를 마구마구 뿜어대며 다음과 같이 워드 응용 프로그램이 실행되어 그리드가 출력되는 것을 보실 수 있을 것입니다.

재미있죠???

다시 한번 강조하지만, 이 방법은 DataGrid의 출력 결과를 간단하게 엑셀이나 워드로 Export하고자 하는 경우에만 사용할 수 있습니다. 즉, 매우 제한적인 상황에서만 사용이 가능한 방법이라는 것이죠. 하지만, 그렇다 하더라도 상당히 유용하게 써먹을 수 있을 것입니다. ^^ 의외로 단순 엑셀 출력을 요구하는 경우는 많으니까요 ^^;

그런데, 안타까운 것은 대부분의 경우 프로젝트 시, 클라이언트들은 말입니다. 설계 시에는 단순 출력만 되면 된다고 말했으면서도, 막상 이렇게 만들어주면 더 추가적인 기능을 요구하는 경우가 많다는 것입니다. 쩝... ㅜㅜ 해서, 의외로 엑셀을 더 세밀하게 제어해야 할 필요가 있는 경우도 많을 것입니다. 그 때에는... 어떻게 해야 할까요?

그때는 홧팅을 해야 할 것입니다. ^^
마음을 가라앉히고, http://www.codeproject.com을 살펴주는 센스!!도 필요할 것이구요 ^^

그럼 다음 시간에 또 뵐께요~ 


Posted by 세모아
,

mysql> show variables like "%slow%";

+---------------------+-----------------------------------------------------------+
| Variable_name       | Value                                                     |
+---------------------+-----------------------------------------------------------+
| log_slow_queries    | OFF                                                       |
| slow_launch_time    | 2                                                         |
| slow_query_log      | OFF                                                       |
| slow_query_log_file | C:\ProgramData\MySQL\MySQL Server 5.5\Data\E01-1-slow.log |
+---------------------+-----------------------------------------------------------+
4 rows in set (0.00 sec)

Posted by 세모아
,

출처: http://blog.naver.com/zsssd/150021318263


옛날에 썼던 글이네요.. 어느 분이 퍼가셨던거 찾아서 올립니다.

 

 

김호 책을 보다가 전에 봤지만 써보지 않았던 mysqli 에 관한 이야기가 있길래 테스트해 보았습니다. 

1. mysql 함수로 사용했을 경우 

소스코드 : 

<? 
$start = microtime(); 
$link = mysql_connect($host,$user,$pw) or die(mysql_error()); 
mysql_select_db($db) or die(mysql_error()); 
$result = mysql_query("select * from member limit 10") or die(mysql_error()); 
echo "<xmp>"; 
while($row = mysql_fetch_assoc($result))$out[] = $row; 
for( $i=0,$cnt=count($out) ; $i < $cnt ; $i++ ){ 
        $rank = $out[$i]['rank']; 
        $name = $out[$i]['name']; 
        echo "$rank $name \n"; 

echo "</xmp>"; 
mysql_close($link); 
$end = microtime(); 
$time = $end - $start; 
echo $time; 
?> 
0.002698 



2. mysqli를 객체지향으로 사용했을 경우 

소스코드 : 

<? 
$start = microtime(); 
$my_db = new mysqli($host,$user,$pw,$db); 
if ( mysqli_connect_errno() ) { 
        echo mysqli_connect_error(); 
        exit; 

$result = $my_db->query("select rank,name from member limit 10") or die($my_db->error); 
while($row = $result->fetch_assoc())$out[] = $row; 
$result->close(); 
echo "<xmp>"; 
for( $i=0,$cnt=count($out) ; $i < $cnt ; $i++ ){ 
        $rank = $out[$i]['rank']; 
        $name = $out[$i]['name']; 
        echo "$rank $name \n"; 

echo "</xmp>"; 
$my_db->close(); 
$end = microtime(); 
$time = $end - $start; 
echo $time; 
0.001557 
?> 



10건을 쿼리했을 경우 
기존방식처럼 mysql 를 사용했을 경우 0.002698 
mysqli를 사용했을 경우 0.001557 

1000건 쿼리했을 경우 
기존방식처럼 mysql 를 사용했을 경우 0.156648 
mysqli를 사용했을 경우 0.052507 

결론 : mysqli를 사용하는 것이 속도가 훨씬 빠릅니다.


Posted by 세모아
,

출처 : http://serverfault.com/questions/329845/how-to-forcibly-close-a-socket-in-time-wait


/etc/init.d/networking restart

Let me elaborate. Transmission Control Protocol (TCP) is designed to be a bidirectional, ordered, and reliable data transmission protocol between two end points (programs). In this context, the term reliable means that it will retransmit the packets if it gets lost in the middle. TCP guarantees the reliability by sending back Acknowledgment (ACK) packets back for a single or a range of packets received from the peer.

This goes same for the control signals such as termination request/response. RFC 793 defines the TIME-WAIT state to be as follows:

TIME-WAIT - represents waiting for enough time to pass to be sure the remote TCP received the acknowledgment of its connection termination request.

See the following TCP state diagram: alt text

TCP is a bidirectional communication protocol, so when the connection is established, there is not a difference between the client and the server. Also, either one can call quits, and both peers needs to agree on closing to fully close an established TCP connection.

Let's call the first one to call the quits as the active closer, and the other peer the passive closer. When the active closer sends FIN, the state goes to FIN-WAIT-1. Then it receives an ACK for the sent FIN and the state goes to FIN-WAIT-2. Once it receives FIN also from the passive closer, the active closer sends the ACK to the FIN and the state goes to TIME-WAIT. In case the passive closer did not received the ACK to the second FIN, it will retransmit the FIN packet.

RFC 793 sets the TIME-OUT to be twice the Maximum Segment Lifetime, or 2MSL. Since MSL, the maximum time a packet can wander around Internet, is set to 2 minutes, 2MSL is 4 minutes. Since there is no ACK to an ACK, the active closer can't do anything but to wait 4 minutes if it adheres to the TCP/IP protocol correctly, just in case the passive sender has not received the ACK to its FIN (theoretically).

In reality, missing packets are probably rare, and very rare if it's all happening within the LAN or within a single machine.

To answer the question verbatim, How to forcibly close a socket in TIME_WAIT?, I will still stick to my original answer:

/etc/init.d/networking restart

Practically speaking, I would program it so it ignores TIME-WAIT state using SO_REUSEADDR option as WMR mentioned. What exactly does SO_REUSEADDR do?

This socket option tells the kernel that even if this port is busy (in
the TIME_WAIT state), go ahead and reuse it anyway. If it is busy, but with another state, you will still get an address already in use error. It is useful if your server has been shut down, and then restarted right away while sockets are still active on its port. You should be aware that if any unexpected data comes in, it may confuse your server, but while this is possible, it is not likely.


Posted by 세모아
,

1장의 이미지로 표현된 HTML5 역사


출처: http://walyou.com/html5-infographic/


TheHistoryofHTML5 4ffc89a1614e6 w650 The History of HTML5 in Infographic

Posted by 세모아
,

3개의 방법이 있다.

(아래그림들은 PID 324를 사례로 설명)


1. 명령 프롬프트에서 tasklist -svc

   - 별도의 툴없이 간단 확인용도



2. Process Explorer 사용

  - 특징:  내부서비스의 파일명과 위치까지 확인 가능


ProcessExplorer-v12.04.zip



3. Svchost Viewer 사용

 - 특징 : 위 1,2번과 달리 프로세스 중에서 Svchost만 보여주고, Description에서 상세설명 있음


Svchost Viewer Ver 0.5.0.1.zip





참고 url

http://www.orz.kr/tt/orz/entry/svchost-%EB%84%88%EB%A5%BC-%EB%A7%90%ED%95%B4%EC%A4%98?category=0

http://muzbox.tistory.com/m/189




Posted by 세모아
,



Posted by 세모아
,


open source guide.pdf


Posted by 세모아
,

32bit는 freeware.


http://www.eterlogic.com/Products.VSPE.html


VSPE main window

'Programming' 카테고리의 다른 글

오픈소스SW 라이선스 가이드 (정보통신부)  (0) 2012.10.10
[펌] OSI 7 layer - 설명최고.  (1) 2012.09.29
Dependency Walker 2.2  (0) 2012.07.25
Posted by 세모아
,

It's a permission-related error. Set write permissions for web user to the folder templates_c.
To set permissions in Windows:
- right-click on your folder, go to Properties -> Security
- add user named UISR_<machine name> (if don't exists)
- and assign Full Permissions for this user.
- Then click OK.

'Programming > Web' 카테고리의 다른 글

Firefox Add-in 설정 : Firebug  (0) 2012.10.26
javascript로 php 호출하여 파일 업로드하기  (0) 2012.10.01
JavaScript 공부  (0) 2012.08.27
Posted by 세모아
,

* 목적: redmine의 CKEditor plug-in에 image upload 기능 추가하기


* 테스트 항목

  : javascript에서 html 파일을 거치지 않고, php로 이미지 파일 업로드하기

 1. CKEditor에  파일(이미지) 찾기 기능 추가     -> 완료

 2. win7에서 IIS7에서 jquery 이용하여 php 호출

 3. php에서는  이미지 업로드




동적으로 jquery.js를 삽입하기


'Programming > Web' 카테고리의 다른 글

php- failed to open stream: Permission denied 발생시  (0) 2012.10.02
JavaScript 공부  (0) 2012.08.27
Eloquent JavaScript (Free ebook)  (0) 2012.08.10
Posted by 세모아
,

from:


이젠 기억도 잘 안나는 OSI 7계층...ㅠㅠ 인터넷에 돌아다니는 이미지들을 참고하여 정리해보았다. 먼저, 각 층별 데이터 단위를 살펴보면 다음과 같다. 


1계층 물리 계층: Bit

2계층 데이터링크 계층: Frame

3계층 네트워크 계층: Packet

4계층 트랜스포트 계층: Message, Segment

5계층 세션 계층: Message, Data

6계층 표현 계층: Message, Data

7계층 응용 계층: Message, Data

각 층은 아래 층의 데이터가 되며(Data Encapsulation), TCP/IP 에서 이러한 층간 관계를 나타내면 다음과 같다.


HTTP 의 경우라면 다음과 같다. 각 층이 헤더와 바디로 구성되었다고 볼때 바디 즉, 직전 층에 해당하는 부분을 Payload 라고 부른다.


OSI 7계층과 그 외 모델별 상관관계를 정리해보면 다음과 같다. 여기서 DoD 모델은 TCP/IP 모델을 의미한다.


ARP: 이더넷에서 IP Address 를 MAC Address 로 변환.
RARP: 이더넷에서 MAC Address 를 IP Address 로 변환.

다음은 응용 어플리케이션 관점에서 각 서비스들이 OSI 모델 내에서 어느 계층에 해당하는지를 보여주는 그림이다.



만약, 다른 네트워크 상에 존재하는 홈페이지를 불러오는 경우(브라우저 -> 서버)라면 어떻게될까? HTTP 프로토콜(GET 요청 등...)이 생성되어 TCP 세그먼트의 Payload 에 실리게된다. 그리고 TCP Segment 의 헤더는 아래와 같이 구성되는데...



Source Port 와 Destination Port 정도가 중요한 값이 된다. 그리고 이 TCP Segment 는 IP Packet 의 Payload 가 된다. 여기서 IP Packet 의 헤더는 아래와 같이 구성되는데...


Source IP address 와 Destination IP address 정도가 중요한 값이 된다.(이때 Destination의 IP 를 알기위하여 DNS 를 통하여 도메인 주소에 대한 요청이 발생한다.) 그 외 자세한 내용은 일단 패쓰~ 그리고 이렇게 생성된 IP Packet 은 Ethernet Frame 의 Payload 가 된다. 여기서 Ethernet Frame 헤더는 아래와 같이 구성되는데...


Source Address 와 Destination Address 값이 중요하며 이것은 MAC Address 이다. Ethernet Frame 은 헤더 외에 테일러가 존재한다.(아래 그림의 FCS 영역)


만약, 대상 서버가 라우터 외부에 존재(로컬 서브넷 마스크를 이용해서 상대방의 IP주소중에서 네트워크 ID를 구별해 내고, 자신이 속해있는 네트워크 ID와 비교작업을 한다.)한다면... 라우터의 MAC Address 를 찾는 ARP 브로드캐스트 요청을 한다.

이 를 통하여 라우터의 MAC Address 를 구하여 Destination Address 에 지정한다. 라우터 입장에서는 해당 프레임을 수신한 후, 자신의 IP 와 다른 Destination IP 를 확인하고~ 해당 IP 를 처리할 수 있는 최적의 경로를 판단하기 위하여 라우팅 테이블을 참고한다. 그리하여 Destination Address 에 해당 IP 를 처리할 수 있는 라우터 또는 서버의 MAC Address 를 할당하여Ethernet Frame 을 새로이 생성한다. 



라우터#1, 라우터#2, 라우터#3 을 거쳐 최종적으로 서버에 도달한다면 이러한 과정이 라우터 마다 발생하게되며 마지막 라우터#3 에서 최종 서버의 MAC Address 가 구해질 것이다. 즉, IP 레이어 이상에는 변화가 발생하지 않는다.


Posted by 세모아
,

DELIMITER $$
### PROCEDURE ------ ###
DROP procedure  IF EXISTS bitnami_redmine.proc1 $$


CREATE PROCEDURE bitnami_redmine.proc1(IN Process TEXT, IN Maker TEXT, IN ProbType TEXT)
BEGIN
#    DECLARE i INT DEFAULT 0;
#    DECLARE min_beforedate INT DEFAULT 0;


select a2.customized_id, a2.value, c.value from

(select a.customized_id, a.value, a.custom_field_id from
#(select customized_id, value, custom_field_id  from custom_values as a where (custom_field_id = 17 and value = 'BOSCH')) as a
(select customized_id, value, custom_field_id  from custom_values as a where (custom_field_id = 17 and value = Maker)) as a
inner join
#(select customized_id, value, custom_field_id from custom_values as b where (custom_field_id = 1 and value = 'PAINT')) as b
(select customized_id, value, custom_field_id from custom_values as b where (custom_field_id = 1 and value = Process)) as b
where a.customized_id = b.customized_id) as a2

inner join
#(select customized_id, value from custom_values as c where (custom_field_id = 3 and value = 'SFEM S/W')) as c
(select customized_id, value from custom_values as c where (custom_field_id = 3 and value = ProbType)) as c
where a2.customized_id = c.customized_id;


END $$

   
DELIMITER ;

'Programming > Database' 카테고리의 다른 글

SQL문 예제 - MySQL  (0) 2012.11.29
Table Join 소요시간 (MySQL)  (0) 2012.09.07
MySQL error code  (1) 2012.08.28
Posted by 세모아
,

* Table Join 소요시간 (MySQL)

inner join이 self join보다 빠름 : 테이블의 내부검색시(테이블 1개를 2개로 간주)


select a.customized_id, a.value, a.custom_field_id from
(select customized_id, value, custom_field_id  from custom_values as a where (custom_field_id = 17 and value = 'AMAT')) as a
inner join
(select customized_id, value, custom_field_id from custom_values as b where (custom_field_id = 1 and value = 'ETCH')) as b
/* 0 rows affected, 38 rows found. Duration for 1 query: 0.016 sec. */


select a.customized_id from custom_values a, custom_values b
where
    (a.custom_field_id = 17 and a.value = 'AMAT')
and (b.custom_field_id = 1 and b.value = 'ETCH')
and a.customized_id = b.customized_id
/* 0 rows affected, 38 rows found. Duration for 1 query: 0.124 sec. */

'Programming > Database' 카테고리의 다른 글

MySQL inner join 예제  (0) 2012.09.07
MySQL error code  (1) 2012.08.28
[펌] MySQL 튜닝 18 가지  (0) 2012.08.09
Posted by 세모아
,