Visual Studio 에서 임시 파일 제거하기 위한 레지스트리입니다.


인터넷에서 발견한 것에서 .lib 파일까지 삭제하도록 추가하였습니다.



Delete_Temporary_Files_for_SVN.reg


,

deltacopy 다운로드


DeltaCopy.zip


## deltacopy server 는 저장소이고

## deltacopy client 는 자료를 보내주는 곳이다.



윈도우에서 사용할 때에는



1. 방화벽, 포트포워드 체크

2. 퍼미션 문제 해결 -> 아래 참조.




## deltacopy 나 rsync 로 작업을 하면 퍼미션이 SYSTEM 으로 잡혀있어서 수정이 어렵다.



이를 해결하기 위해서는


1. 암호가 있는 사용자 계정 (adminstrator) 으로 deltacopy server service 를 실행해야 한다.


-> services / 서비스에서 사용자 계정으로 log on 등록


cf) 암호가 있는 계정이어야 한다. -> 계정에 암호 만들기 / user account

cf) 로그인시 암호 입력 안하기 / netplwiz



2. 기본적으로 deltacopy 에서 rw 권한만 준다. X 까지 주도록 옵션을 주는게 좋다. deltacopy option 에서


1) changes permissions on the server, read&write 옵션을 끈다.


2) additional parameter 에 아래를 입력


--chmod=a=rwX 

(읽기 쓰기 모두 권한 주겠다는 것)



이 방법이 복잡하다면 아래 그림에처럼 Fix file permission 을 실행해도 된다. 이 방법은 그 때 그 때 해야한다.

 



Question:

I am running into permission problems when accessing files copied through DeltaCopy Server.
Answer:One very important thing to remember is the DeltaCopy uses rsync in the background, which came from UNIX. Therefore, the concept of ACL on Windows does not translate very well with Linux/UNIX. This causes some permission problems when using DeltaCopy.

Work Around

To avoid any permission problems, run the DeltaCopy Server Service under the Administrator's account rather than System account. Go toWindows Control Panel/Administrative Tasks/Services, select DeltaCopy Server service and go to Properties. Select the "Log On" tab and specify Administrator as the login name.

Every copied file on the server machine will be owned by the user who runs the DeltaCopy Server Service. Therefore, using Administratorwill allow the admins to access these files.

What happens if I already have used the System Account

Quite often users use the Built-in System Account initially and then switch the user at a later time. In this case all files that were copied under the System Account will be owned by "System Account" and no one else will have permission to access them. In that case follow the steps below.

If you are running an older version of DeltaCopy, you might not have this "Fix File Permissions" menu item. In that case you will have run the following command in CYGWIN to change the ownership.

chmod 777 *.*


,

사진을 날짜별로 정리해 주는 프로그램인 GomPhoto 입니다. (동영상도 가능)


공식홈페이지

http://whria.net

http://gomphoto.com

 

 



 

날짜 + 이름 으로 정리해주는 프로그램입니다.


사진뿐 아니라 동영상까지 안에 있는 정보를 얻어내서 정리해줍니다.

 

setup.exe


,

GMA500 은 DXVA 를 지원해서 넷북으로 720p 재생이 가능하다.


하지만 DXVA 가 켜져도 팟플레이어나 곰플레이어 기본 셋팅으로는 PowerDVD 10,12 등 상용 코덱을 사용해도 1024*768 에서는 15~20 fps, 800*600 에서는 25~30 fps 정도 밖에 안나온다.


이래저래 고생을 하다가 아래와 같은 조건에서 1024*768 에서 30 fps 재생에 성공하였다.


Windows 7, Intel 의 정식 최신 정식드라이버 (2010)

http://downloadcenter.intel.com/SearchResult.aspx?lang=eng&ProductFamily=Graphics&ProductLine=Laptop+graphics+drivers&ProductProduct=Intel%C2%AE+Graphics+Media+Accelerator+500


MPC-HC , Fullscreen 옵션에서 D3D On

http://mpc-hc.sourceforge.net/downloads/



참고로 MPC-HC 에서도 DXVA 가 on 이더라도 D3D 옵션이 없으면 Full screen 모드에서 30 fps 이 나오지 않는다.


,

 KT 를 포함한 인터넷 사업자(이하 KT)에서 공유기로 여러 컴퓨터를 사용하다보면 인터넷 익스플러어에서 인터넷 제한이 되고 돈을 더 내라는 메세지가 뜹니다.

 

 

# KT 에서는 어떻게 집에 있는 컴퓨터에 대한 정보를 수집할까? 

 

 KT 에서는 사용자가 http://daum.net 이라고 치면 http://daum.net 만 보여주는 것이 아니라 아래같은 방법으로 안보이는 프레임내에서 자신들의 자바프로그램을 실행시켜서 사용자의 정보를 빼갑니다. 이러한 작업은 인터넷 익스플로어(IE) 를 포함한 모든 인터넷 브라우저(크롬, 사파리 등)에서 기술적으로 가능합니다.

 

 KT 는 자신들의 자바스크립트를 몰래 실행시켜서 사용자의 운영체제, 브라우저, 내부 IP 등의 정보를 가져갑니다. 인터넷 검색을 할 때 인터넷 브라우저는 User Agent String 이라고 하는 정보(http://useragentstring.com)를 보내는데 이 정보 안에 사용자 환경이 들어가 있고 자바스크립트를 통해 사용자의 내부 IP 를 알아낼 수 있습니다. 

 

 정보 수집은 항상 실행되는 것은 아닌것 같고 토렌트 등으로 트래픽을 많이 유발하는 사용자를 중심으로 이루어지는 것 같습니다. 그리고 정보 수집도 항상 이루어지기보다는 가끔씩 이루어지고 통계를 내서 어느 수준이상 넘어가면 제제를 하는 것 같습니다.

 

 

<html>
<frameset rows='0,*' border='0'>
<frame src='/xs_btn/uxcn.asp?n=2&u=8825&i=0&y=0&m=0&k=0&t=N&b=78&s=600&x=www.daum.net&d=2008-01-01'>
<frame src='http://www.daum.net/?' name='rosea'>
</frameset>
<body oncontextmenu="return false" onselectstart="return false" ondragstart="return false">
</body>
</html>

 

 

# 회피 방법 

 

1) User Agent String 을 속여서 KT 의 정보 수집을 방해한다.

 

UAPickSetup.exe

 

사용법

http://www.howtogeek.com/howto/18450/change-the-user-agent-string-in-internet-explorer-8/

 

 첨부한 파일은 인터넷 익스플로어(IE8, IE9) 에서 User Agent String 을 속이는 프로그램입니다. User Agent String 을 Chrome 이나 Firefox 로 바꾸면 IE 를 사용하지 않는 것처럼 속일 수 있습니다. 현재는 KT에서 IE 를 사용하는 컴퓨터만 대수를 세는 것 같습니다.

 운영체제도 Linux, Mac 이나 안드로이드, 아이폰같은 스마트폰 OS 를 쓰는 것으로 속일 수 있습니다. 운영체제까지 User Agent String 로 속이면 KT 에서는 컴퓨터를 쓰는지 스마트폰을 쓰는지 확인할 방법이 없습니다. 하지만 운영체제까지 속이면 컴퓨터에서 인터넷 브라우저를 띄워도 스마트폰 전용 화면이 보이는 경우가 있으므로 테스트 해보고 사용하길 바랍니다.

 집에 컴퓨터가 2대 이상이 있다면 자주 안 쓰는 컴퓨터의 User Agent String 을 속여주면 됩니다. 컴퓨터가 아닌 휴대폰으로 속일 수도 있고 Linux 컴퓨터로 속일 수도 있습니다.


 cf) 첨부한 파일 UAPickSetup 에는 몇가지 User Agent String 이 예제가 들어있다. 하지만 좀 더 자세히 고치기를 원한다면 아래 site 를 참조해서 자신이 원하는 User Agent String 을 만들어서 넣어도 된다.

http://user-agent-string.info/list-of-ua 

 

 

 

 2) 프락시(proxy) 를 사용한다.

 

 KT 의 정보 수집은 인터넷 브라우저 (80 포트) 를 통해 이루어집니다. 80 포트를 프락시 프로그램을 이용해서 사용하면 KT 는 정보 수집을 할 수 없습니다. 인터넷 대수 제한이 없는 컴퓨터나 리눅스 서버에 프락시 프로그램 ( Squid 등 ) 을 실행하는 방법이 있습니다. 하지만 이 방법은 사용자 대수에 자유로운 외부 서버가 있어야 합니다.

,

http://www.howtogeek.com/howto/18450/change-the-user-agent-string-in-internet-explorer-8/


IE 를 다른 브라우저로 속이는 애드온입니다.

잘하면 KT 의 공유기 제한 푸는데 이용가능할 것 같네요.



UAPickSetup.exe



아래는 사용법



Change the User Agent String in Internet Explorer 8

Do you need on-demand user agent string switching while browsing with Internet Explorer 8? If so then you will want to have a look at UAPick User-Agent Switcher.

A User Agent String identifies your browser and system details to sites you go to. It will identify your browser, version number, and details about your system. This allows a web server to use the information to provide content specific to your browser. If you want to change the value of the data being sent, using the UAPick User-Agent Switcher will do the job in IE 8.

Installing UAPick User-Agent Switcher

We chose to install UAPick User-Agent Switcher from the IE Add-ons gallery but it can also be installed/downloaded from the homepage (link provided below).

ie-user-agent-switcher-01

Click on Run when the appropriate window appears.

You will need to confirm the installation once the temporary installation file has downloaded.

The default install location will be in the Program Files area.

Once the installation has finished you will see a message about where to find the switch command and that it will be available the next time you start Internet Explorer.

UAPick User-Agent Switcher in Action

Before changing the user agent string on our browser we did a quick I.D. check to verify our settings.

To change the user agent string go to the tools menu and select the Set UA String listing.

Note: The user agent string will automatically switch back to the original default each time you restart Internet Explorer.

A new temporary window will open with details for the current string visible.

Open the drop-down menu and select the desired user agent string.

For our first example we chose “Konqueror, Debian”. Click on the save button when you are finished.

You will be presented with a new window showing the details for the new user agent string.

Refreshing our browser displayed a successful switch.

For our second and final example we chose the “Netscape 3, Win 95” listing. Another success…

Conclusion

Whether out of necessity or just for fun UAPick User-Agent Switcher provides you with a nice assortment of user agent strings to use while browsing.

Links

Add UAPick User-Agent Switcher to Internet Explorer 8 (IE 8 Add-ons Gallery)

Add UAPick User-Agent Switcher to Internet Explorer 8 (UAPick Homepage)

Learn More About User-Agent Strings

,

아래글이 원본입니다.


간단히 설명하면 http://prettygom.com 으로 접속해도 KT 에서 prettygom.com + 자신들의 프로그램 을 동시에 보내주는거죠. 자신들의 프로그램을 실행시켜서 내부 IP 정보를 얻는다고 합니다.



http://www.mapoo.kr/entry/%EC%82%AC%EC%95%85%ED%95%9C-KT%EB%8A%94-%EC%96%B4%EB%96%BB%EA%B2%8C-%EA%B3%B5%EC%9C%A0%EA%B8%B0%EB%A5%BC-%EA%B2%80%EC%B6%9C%ED%95%98%EB%8A%94%EA%B0%80?category=30


KT 공유기 이용제재 조치 개념도

2005 년 KT는 자사의 인터넷 라인에 공유기를 꼽아 여러 대의 IP를 따서 사용하는 유저를 식별할 수 있는 시스템, 즉 공유기 검출 시스템 개발에 성공했다고

발표

했습니다.

하지만 이것이 기술적으로 완벽하지 않다는 반론과 함께, 기존 사용자들의 거센 반발로 인해 사용 가능 PC를 2대로 제한한다는 정책으로 선회한 뒤 이 문제는 그대로 묻히나 했는데... 작년부터 KT와 하나로 사용자들을 중심으로 인터넷 연결 중 이상한 현상에 대한 보고가 들어오기 시작합니다. 참고1,참고2

이를 정리하면, KT등의 ISP(인터넷 서비스 공급자, Internet Service Provider) 라인을 사용하는 유저들이 웹브라우저로 특정 사이트에 접속할 때, KT에서는 임의로 공유기 검출을 위해 특정 서버로 먼저 요청을 보낸 다음, 사용자가 요청한 페이지로 다시 이동시킨다는 것입니다.참고3

명목상 이런 과정은 "접속 환경 개선을 위한 속도 테스트"나 "불량 사이트 차단"을 위한 것이라는 설명을 많이 하는데, 실제로 앞에서 얘기한 KT 서버에서 하는 일은 사용자가 공유기를 사용하는지를 체크하는 것입니다. 그럼 이런 과정이 어떻게 일어나는지 한 번 추적해 보겠습니다.

로직 추적

보통의 경우라면 바로 www.jinbo.net으로 요청이 전달되어 진보넷 페이지가 브라우저에 뜨게 됩니다. 하지만 공유기 검출 로직이 실행되는 중이라면 요청한 주소는 다음과 같은 HTML로 치환되어 보내집니다.

<HTML>
 <HEAD></HEAD>
  <FRAMESET border=0 frameSpacing=0 rows=0,* frameBorder=0>
  <FRAME name=dolla src="http://221.147.67.202/headseed.asp">
  <FRAME src="http://221.147.67.202/xs_btn/uxcsdo.asp?n=2&u=8825&i=0&y=0&m=0&k=0&t=N&b=78&x=www.jinbo.net&s=600&d=2008-01-01">
</FRAMESET>
</HTML>

화면이 두 개의 프레임으로 나뉘고, 둘 다 특정한 KT 서버에 요청이 갑니다. 이 중 첫 번째 요청(http://221.147.67.202 /headseed.asp)은 서버에서 정확히 어떤 일을 하는지 알 수 없고 단지 빈 HTML이 돌아올 뿐입니다. 여기서 주목해야 할 것은 두 번째 요청입니다.

<html>
<frameset rows='0,*' border='0'>
<frame src='/xs_btn/uxcn.asp?n=2&u=8825&i=0&y=0&m=0&k=0&t=N&b=78&s=600&x=www.jinbo.net&d=2008-01-01'>
<frame src='http://www.jinbo.net/?' name='rosea'>
</frameset>
<body oncontextmenu="return false" onselectstart="return false" ondragstart="return false">
</body>
</html>

응답의 결과로 역시 두 개의 프레임을 나눠서 줍니다. 첫 번째 프레임은 hidden 처리되어 특정 코드를 수행하고, 두 번째 프레임은 요청한 주소의 페이지를 보여줍니다. 결과적으로 화면에는 진보넷 페이지가 보이게 되니까 사용자는 크게 문제점을 인식하지 못할 가능성이 높습니다. 하지만 실제로는 사용자가 눈치채지 못하게 첫 번째 프레임의 동작이 실행되는 셈입니다. 그럼 첫 번째 프레임의 요청을 따라가 봅시다.

<input type='hidden' id='PTe' value='http://www.jinbo.net' target='_top'>

<script language='javascript'>
  var tcheck = document.cookie;
  window.onload = gonogo;

  function gonogo() {
    if (tcheck == ) {
      if (navigator.appName == 'Microsoft Internet Explorer') {
        document.all.PTAe.click();
      }
      if (navigator.appName == 'Netscape') {
        self.location.href=document.getElementById('PTe').value;
      }
    } else {
      today = new Date();
      var YY, MM, DD;
      YY = today.getYear();
      MM = today.getMonth()+1;
      DD = today.getDate();
      self.location.href='uxcn01.asp?mode=SSL3H&n=2&ha='+YY+'&ba='+MM+'&ya='+DD+'&x=www.jinbo.net&i=0&y=0&m=0&k=0&t=N&b=78&u=8825&d=2008-01-01';
    }
  }
</script>
<html>
<head>
  <title></title>
  <meta http-equiv="Content-Type" content="text/html; charset=euc-kr">
</head>
<body oncontextmenu="return false" onselectstart="return false" ondragstart="return false">
</body>
</html>

특정한 스크립트가 응답으로 날아옵니다. 페이지가 로드되면서 스크립트를 실행시켜 쿠키가 있는 경우 날짜와 기타 정보들을 파라미터로 심고 특정 사이트로 다시 보내버립니다. 다시 페이지로 따라가 보겠습니다.

<SCRIPT LANGUAGE="JavaScript">
</SCRIPT>
<input type='hidden' id='PT' value='http://www.jinbo.net' target='_top'>

<script language='javascript'>
  if (navigator.appName == 'Microsoft Internet Explorer') {
    window.onload = function() {
      document.all.PTA.click();
    }
  }
  if (navigator.appName == 'Netscape') {
    window.onload = function() {
      self.location.href=document.getElementById('PT').value;
    }
  }
</script>

역시 다른 페이지로 보내버립니다. 또 따라가 봅시다.

<HTML><HEAD><TITLE>Untitled Document</TITLE>
<META http-equiv=Content-Type content="text/html; charset=euc-kr">
<SCRIPT language=javascript>
<!--
//오늘은 더이상 팝업 윈도우를 띄우지 않습니다 
function GetCookie( name )
{
  var nameOfCookie = name + "=";
  var x = 0;
  while ( x <= document.cookie.length )
  {
    var y = (x+nameOfCookie.length);
    if ( document.cookie.substring( x, y ) == nameOfCookie ) {
      if ( (endOfCookie=document.cookie.indexOf( ";", y )) == -1 )
        endOfCookie = document.cookie.length;
      return unescape( document.cookie.substring( y, endOfCookie ) );
    }
    x = document.cookie.indexOf( " ", x ) + 1;
    if ( x == 0 )
      break;
  }
  return "";
}

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

popup();

function popup()
{
  var g1 = "78";
  var n_type = "2";
  var u_idx = "8825";
  var cnt_g = "0";
  var cnt_i = "0";
  var msgUrl = "";
  var width = "";
  var height = "";		
  var msgUrl2 = "";
  var width2 = "";
  var height2 = "";
  var total = "0";
  var xt = "www.google.com";
  var dsa = "2008-01-01";
  var mainsvIP = ""; //임시 (공유기 서비스가입)

  var tmpwin = "";
  var tmpwin2 = "";
  var param = "";
  param = "g1="+g1+"&u_idx="+u_idx+"&cnt_g="+cnt_g+"&cnt_i="+cnt_i+"&total="+total+"&xt="+xt+"&mainsvIP="+mainsvIP+"&dsa="+dsa;

  if (n_type != 2 && msgUrl != "") // 유도
  {
    url = "evsol.asp?n_type="+n_type+"&"+param+"&msgUrl="+msgUrl;
    tmpwin=window.open(url,"pop1","width="+width+",height="+height+",top=0,left=0");
  }

  if (msgUrl2 != "") // 일반
  {
    //오늘은 더이상 팝업 윈도우를 띄우지 않습니다 if 문
    var erer = GetCookie("Notice");
    if ( erer != "done" )
    {
      url2 = "evsol.asp?n_type=1&"+param+"&msgUrl="+msgUrl2;
      tmpwin2=window.open(url2,"pop2","width="+width2+",height="+height2+",top=0,left=370");
      //tmpwin2.focus();
    }
  }

  if (n_type == 2)
  {
    var strHTML = "<APPLET CODE='fnqlxmfhvl.class' WIDTH='1' HEIGHT='1' name='Internet_Loading'>";
    strHTML += "<PARAM NAME='URL' VALUE='dotori_app.asp?b=78&n=2&u=8825&i=0&y=0&t=0&x=www.daum.net&re_ip='>";
    strHTML += "<PARAM NAME='TARGET' VALUE='_self'>";
    strHTML += "</APPLET>";	
    document.write (strHTML);
  }
} // popup() end

//-->
</SCRIPT>
</HEAD>
<BODY oncontextmenu="return false" onselectstart="return false" ondragstart="return false"></BODY></HTML>

드디어 정말 하고 싶었던 일을 하는 페이지가 나왔습니다. 이 복잡한 과정의 목적은 결국 공유기 사용자에게 경고 팝업을 띄우고, fnqlxmfhvl.class란 java 애플릿을 실행시키는 것입니다. 일단 fnqlxmfhvl.class가 무엇을 하는지 다운받아 리버스 컴파일해 보았습니다.

  • fnqlxmfhvl.java
import java.applet.Applet;
import java.applet.AppletContext;
import java.net.*;

public class fnqlxmfhvl extends Applet
{
  public fnqlxmfhvl()
  {
    flema = "";
    mkbro = "unknown";
    fx0073 = "";
  }

  public void init()
  {
    mkbro = rusianxx();
    if(getParameter("URL") != null)
    {
      fx0073 = getParameter("URL");
      fx0073 = fx0073 + mkbro;
      if(getParameter("TARGET") != null)
        flema = getParameter("TARGET");
    }
  }

  public void start()
  {
    try
    {
      URL url = new URL(getDocumentBase(), fx0073);
      getAppletContext().showDocument(url, flema);
    }
    catch(Exception exception) { }
  }

  private String rusianxx()
  {
    String s = "";
    String s1 = getDocumentBase().getHost();
    int i = 80;
    if(getDocumentBase().getPort() != -1)
      i = getDocumentBase().getPort();
    try
    {
      s = (new Socket(s1, i)).getLocalAddress().getHostAddress();
    }
    catch(Exception exception) { }
    return s;
  }

  String flema;
  String mkbro;
  String fx0073;
}

이 프로그램이 하는 일은 매우 간단합니다. 사용자의 내부 IP를 알아낸 다음, 이 IP를 dotori_app.asp로 전송해 줍니다. dotori_app.asp로 요청을 보냈을 때 특별한 응답은 날아오지 않았지만, 짐작으로는 아마 dotori_app.asp에서 사용자의 내부 IP를 받아 공유기를 사용한 IP인지, ISP에서 정상적으로 발급한 IP인지를 판단할 것입니다.

로직 설명

일반적으로 KT나 하나로텔레콤 등의 ISP는 사용자에게 유동 IP를 발급합니다. 유동 IP는 모뎀이 ISP에 접속할 때마다 일정 범위 내에 있는 IP를 발급해 주는 IP입니다. 사용자가 ISP에서 제공하는 라인을 컴퓨터에 바로 꽂아 쓰는 경우에는 사용자 PC의 IP는 외부에서나 내부에서나 ISP가 발급한 유동 IP로 동일하게 됩니다.

하지만 공유기를 사용하게 되면 약간 다른 상황이 발생합니다. 공유기는 하나의 외부 IP를 여러 개의 내부 IP로 분할해 사용 가능하게 해 줍니다. 이 경우 유동 IP는 공유기가 갖게 되고 사용자의 PC는 공유기가 발급한 내부 IP를 사용하게 됩니다. 따라서 사용자 PC의 IP는 10.0.0.2나 192.168.0.2 같은 형태의 내부 IP가 됩니다. 하지만 외부에서 볼 때 사용자 PC의 IP는 공유기가 가지고 있는 IP, 즉 ISP가 발급한 외부 IP로 보이게 되죠. 따라서 이 경우는 외부 IP와 내부 IP가 달라지는 현상이 발생합니다.

어쨌든 ISP는 사용자들이 공유기를 사용하여 여러 대의 PC가 한 개의 라인에 물려있는지 판단할 수 있는 작업을 사용자 몰래 하고 있는 셈입니다. 현실적으로 집에서 2~3개의 PC를 공유기로 사용하는 경우는 크게 문제를 삼고 있지 않지만, 사무실 등에서 10개 이상의 PC가 한 개의 공유기를 통해 사용하는 경우는 적발하여 추가적으로 라인을 구매하도록 유도하고 있다고 합니다. 이런 경우를 알 수 있는 것도 이러한 공유기 검출 시스템이 있기 때문이죠. 아마 사용자의 약관 어딘가에 사용자 동의 없이 하는 이런 작업을 정당화 하는 문구도 넣어놨으리라 생각됩니다.

결론

현실적으로 ISP에서 제공하는 망을 사용하는 이상, 개인 PC에 침입하여 벌어지는 이런 일들을 막기가 매우 어렵습니다. 어떻게 보면 인터넷 세상의 진정한 지배자는 ISP가 아닐까요...

(글이 너무 길어져서 공유기가 어떻게 IP를 분배하는지는 다른 글에서 다루도록 하겠습니다.)

,

1. CKEditor, FCKEditor

사이트 :: http://ckeditor.com/

데모 : http://ckeditor.com/demo

현존현존 하는 위지윅 에디터 중 가장 많이 사용되고 있으며 강력한 기능을 가진가진 CKEditor와 FCKEditor입니다. 이름에서 알 수 있듯이 CKEditor는 FCKEditor의 업데이트 버전으로 웹표준과웹표준과 접근성향상 그리고 디자인적인 발전등 날로 발전해 나가고 있는 프로그램입니다.

특징 : 툴바, 스킨등 개인에 맞게 설정 가능. 크로스 브라우징 가능.
언어 : 기본 영어, 한글 가능.
라이센스 : 오픈소스 라이센스 및 상업용 라이센스.
최종버전 : ckeditor - 3.0.1, fckeditor - 2.6.5
추천도 : ★★★★★

2. TinyMCE

CKEditor와 함께 가장 많이 사용되고 있는 위지윅 에디터  하나로 개인설정과 플러그인 설정으로

아주 강력한 기능을 가진 에디터입니다. jQuery버전도jQuery버전도 따로 존재하며 wiki도 존재하여 개인설정과 사용이 아주 간편한 편입니다.

사이트 : http://tinymce.moxiecode.com

데모 : http://tinymce.moxiecode.com/examples/full.php

특징 : 툴바, 스킨,플러그인등 개인에 맞게 설정 가능. jQuery 버전 존재. 크로스 브라우징 가능.
언어 : 기본 영어, 한글 가능.
라이센스 : 오픈소스 라이센스
최종버전 : 3.2.7
추천도 : ★★★★★


3. 다음 오픈 에디터에디터

얼마 전 다음이 구글코드를 통해 공개한 공개용공개용 다음 오픈 에디터입니다. 개발자들에 의하면 시멘틱 정보 웹 에디터라는 개념을 도입하여도입하여 사용자가 생산하는 콘텐츠에 데이터간 상호 연결성을 더해주는 웹 정보를 포함시켜 시멘틱시멘틱 검색 기술과 데이터 연결이라는 데이터 생태계를 구현했다고 합니다. 구글 코드 포럼을포럼을 통해 사용자들의 의견을 수렴하여 계속해서 업데이트되고 있어 미래가 기대되는 에디터  하나입니다.

사이트 : http://code.google.com/p/daumopeneditor/

데모 :: http://uie.daum.net/openeditor/sample/5.2.0/editor.html

특징 : 국내 최대 포탈사이트중 하나인 다음에서 공개한 오픈 에디터. 초보자가 사용하기 용이함.
언어 : 한글
라이센스 : 오픈소스 라이센스
최종버전 : 5.3.0 
추천도 : ★★★★☆

4. 스마트 에디터

네이버에서 공개한 위지윅 에디터인 스마트 에디터입니다. 웹폰트 지원, 초보 사용자가 사용하기 용이한 점등이 특징이지만 웹표준 및 브라우저 접근성에서 떨어져 원성을 사고 있기도 합니다.

사이트사이트 : http://dev.naver.com/projects/smarteditor

미리보기 : http://dev.naver.com/projects/smarteditor/wiki/SmartEditorBasicUserInterfacePreview

특징 : 웹폰트 사용가능(IE전용). 초보자가 사용하기 용이함.
언어 : 한글
라이센스 : 오픈소스 라이센스
최종버전 : 0.3.17
추천도 : ★★★☆


5. 알디터

사이트 : http://www.alik.info/

데모 : http://www.alik.info/alditor/sample.html

알릭님께서 제작한 알디터입니다. 간단한 인터페이스와 심플함으로 제로보드 및 그누보스 사용자들이사용자들이 많이 사용하고 있으며 비표준 및 접근성이 떨어지는 점만 제외하면 쓸만한 에디터입니다.에디터입니다. 그러나 따로 소스를 배포하지 않고 업데이트가 끊긴 점을 생각해 볼때 그리그리 추천하지는 않습니다.

특징 : 심플함.
언어 : 한글
라이센스 : 비영리목적 사용가능. 소스 수정/배포 금지. 상업적 목적 사용시 제작자에 연락.
최종버전 : 06년 9월 23일
추천도 : ★★

6. Xinha

사이트 : http://trac.xinha.org/

데모 : http://xinha.raimundmeyer.de/x_examples/ext_example.html

이번에 위지윅 에디터에에디터에 관해 알아보면서 알게된 Xinha 라는 에디터입니다. 한글사용은 안되는듯 보이지만 크로스 브라우징도브라우징도 지원하며 플러그인도 사용가능한듯 보이며 위지윅 에디터로 사용하기엔 좋은듯 싶습니다.

특징 : 위지윅 에디터 기능에 충실, 플러그인 사용가능.
언어 : 영어
라이센스 : 오픈소스 라이센스
최종버전 : 0.95
추천도 : ★★☆

7. openWYSIWYG

사이트 : http://www.openwebware.com/

데모 : http://www.openwebware.com/wysiwyg/demo.shtml

사용이 간편하면서도 다양한 언어를 지원하는 위지윅 에디터입니다.

특징 : PHP, Perl, ASP, ASP.net, Java 등 다양한 언어 지원. 사용이 간편함.
언어 : 영어
라이센스 : 오프소스 라이센스
최종버전 : 1.4.7
추천도 : ★★☆


8. Richtext Editor

사이트 : http://rtef.info

데모 : http://rtef.info/demo.htm

가볍고 쓸만한 위지윅 에디터입니다. 다양한 브라우저에서 사용가능하다는게사용가능하다는게 장점입니다.

특징 : 가벼운 인터페이스. 크로스 브라우징 지원.
언어 : 영어
라이센스 : 오픈소스 라이센스(MIT)
최종버전 : 0.007
추천도 : ★★☆

,


1. Windows 7 에서는 localhost 를 번역(?)하느라 시간을 많이 잡아먹는다.


localhost 대신 127.0.0.1 을 사용하고

C:\Windows\System32\drivers\etc 안의 host 파일에


127.0.0.1 localhost


부분의 주석을 제거한다.



2. 안티 바이러스 프로그램이 httpd.exe , php 파일 부분을 검색하지 않게 설정한다.


약간 위험한 방법이긴 하지만 요즘의 대부분 바이러스는 exe, php 감염은 적다. 특히 서버에서 잦은 실행 하는 부분은   바이러스 검사에서 빼주자.



3. Log 를 확인한다.


php 버젼이 최신인 경우 xpressengine 과 같이 최신 php 를 지원하지 않는 경우 무수히 많은 warning 을 쏟아낸다. 이는 직접적인 속도 감소로 이어진다. Log 를 확인해서 log 파일이 빠르게 쌓이고 있지 않나 확인해본다.

,

XAMPP root 패스워드 변경


http://rskarthikmca.blogspot.kr/2011/07/reset-xampp-mysql-root-password-through.html



그누보드 에러 해결

http://sir.co.kr/bbs/board.php?bo_table=g4_qa&wr_id=201405


 short_open_tag = On 

XAMPP Virtual HOST 권한 문제 - apache 2.4 부터 Require all granted 로 변경되었음



 <VirtualHost *:80>
    DocumentRoot "C:\xampp\htdocs-nacaa"
    ServerName nacaa.local
    ErrorLog "logs/nacaa.localhost-error.log"
     <Directory "C:\xampp\htdocs-nacaa">
      Options Indexes FollowSymLinks Includes ExecCGI
      AllowOverride All
      Require all granted
     </Directory>
  </VirtualHost>


아래는 보안상 문제있을수 있음


<Directory />
    AllowOverride none
    Require all granted
</Directory>

,