아래와 같이 localhost:6010에 대한 주소를 받아오지 못한다고 에러가 나면
/etc/hosts 파일이 존재하는지 확인을 해야한다.

$ gedit
_X11TransSocketINETConnect() can't get address for localhost:6010: Name or service not known
cannot open display:
Run 'gedit --help' to see a full list of available command line options.

파일이 존재한다 하더라도, 내용이 없다면 내용을 추가해준다.
$ cat /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
::1     localhost.localdomain   localhost

Posted by 구차니
expat-2.0.1 에 포함되어있는 예제파일인
elements.c를 약간 변형하여

XML tag로 출력되도록 약간 수정하였다.
컴파일에 필요한 libexpat.lib 파일과 expat.h 파일
그리고 테스트용 XML 파일(youtube page)가 포함되어있다.
(libexpat.lib는 내부적으로 libexpat.dll을 호출하는 것으로 보인다.)



/* This is simple demonstration of how to use expat. This program
reads an XML document from standard input and writes a line with
the name of each element to standard output indenting child
elements by one tab stop more than their parent element.
It must be used with Expat compiled for UTF-8 output.
*/

#include "stdio.h"
#include "expat.h"

#if defined(__amigaos__) && defined(__USE_INLINE__)
#include "proto/expat.h"
#endif

#ifdef XML_LARGE_SIZE
#if defined(XML_USE_MSC_EXTENSIONS) && _MSC_VER < 1400
#define XML_FMT_INT_MOD "I64"
#else
#define XML_FMT_INT_MOD "ll"
#endif
#else
#define XML_FMT_INT_MOD "l"
#endif

static void XMLCALL
startElement(void *userData, const char *name, const char **atts)
{
	int i;
	int *depthPtr = (int *)userData;
	for (i = 0; i < *depthPtr; i++)
		putchar('\t');
	printf("<%s>\n",name);
//	puts(name);
	*depthPtr += 1;
}

static void XMLCALL
endElement(void *userData, const char *name)
{
	int i;
	int *depthPtr = (int *)userData;
	*depthPtr -= 1;
	for (i = 0; i < *depthPtr; i++)
		putchar('\t');
	printf("</%s>\n",name);
	//	puts(name);
}

int
main(int argc, char *argv[])
{
	FILE *fp;
	char buf[BUFSIZ];
	XML_Parser parser = XML_ParserCreate(NULL);
	int done;
	int depth = 0;
	
	fp = fopen("GetRecentlyFeaturedVideoFeed.xml","r");
	
	XML_SetUserData(parser, &depth);
	XML_SetElementHandler(parser, startElement, endElement);
	do {
		int len = (int)fread(buf, 1, sizeof(buf), fp);
		done = len < sizeof(buf);
		if (XML_Parse(parser, buf, len, done) == XML_STATUS_ERROR) {
			fprintf(stderr,
				"%s at line %" XML_FMT_INT_MOD "u\n",
				XML_ErrorString(XML_GetErrorCode(parser)),
				XML_GetCurrentLineNumber(parser));
			return 1;
		}
	} while (!done);
	XML_ParserFree(parser);
	fclose(fp);
	return 0;
}

'프로그램 사용 > expat & XML' 카테고리의 다른 글

xml 트리 탐색 - XML tree navigation  (0) 2010.04.17
expat XML_SetCharacterDataHandler() function  (0) 2010.04.09
&amp; &lt; &gt; &quot; 는 머지?  (0) 2010.03.31
expat '간략한' 사용법  (0) 2010.03.28
expat  (4) 2010.03.21
Posted by 구차니
expat은 c언어로 작성된 XML 파서이다.
음.. c라고는 하지만, python 2.6 에서는 expat을 기본 XML 파서로 내장한다.

아래는 expat 홈페이지와, c에서 expat을 사용하는 예제들이 들어있다.
링크만 발견하고 실제로 사용해보진 못했지만,
handler역활을 하는 함수를 추가하여,
그 함수들을 태그의 시작이나 끝 그리고 데이터 부분에서 호출하게 되는것으로 보인다.

[링크 : http://expat.sourceforge.net/]
    [링크 : http://www.vivtek.com/xmltools/]
    [링크 : http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/XML/expat_xml]

python2.6의 expat 예제
실제로 windows에서 2.6으로 돌려보니 결과가 조금 다르게 나왔다.
원래 문서에는 출력된 문자열 앞에 u가 붙어있지 않다.(unicode 문자열을 알리는 접두?)
>>> p.Parse("""<?xml version="1.0"?>
... <parent id="top"><child1 name="paul">Text goes here</child1>
... <child2 name="fred">More text</child2>
... </parent>""", 1)
Start element: parent {u'id': u'top'}
Start element: child1 {u'name': u'paul'}
Character data: u'Text goes here'
End element: child1
Character data: u'\n'
Start element: child2 {u'name': u'fred'}
Character data: u'More text'
End element: child2
Character data: u'\n'
End element: parent
1

[링크 : http://docs.python.org/library/pyexpat.html]

'프로그램 사용 > expat & XML' 카테고리의 다른 글

xml 트리 탐색 - XML tree navigation  (0) 2010.04.17
expat XML_SetCharacterDataHandler() function  (0) 2010.04.09
&amp; &lt; &gt; &quot; 는 머지?  (0) 2010.03.31
expat '간략한' 사용법  (0) 2010.03.28
expat-2.0.1 example  (11) 2010.03.23
Posted by 구차니
프로그램 사용/synergy2010. 3. 20. 23:33
synergyc는 클라이언트 프로그램이다.
서버 프로그램은 좀 복잡하지만 클라이언트는 상당히 쉽게 구동이 가능하다.

아래는 리눅스 쪽 프로그램의 설명인데, 실제로 설정해야 할 것은
--name 과 필수값인 <server-addres> 두가지만 해주면 된다.

예를 들어 현재 컴퓨터의 스크린이름을 secondpc 라고 하고,
서버 아이피를 192.168.0.2 이라고 할때,

시작프로그램에
synergyc --name secondpc 192.168.10.2
라고 등록해주기만 하면된다.

$ synergyc --help
Usage: synergyc [--daemon|--no-daemon] [--debug <level>] [--display <display>] [--name <screen-name>] [--restart|--no-restart] <server-address>

Start the synergy mouse/keyboard sharing server.

  -d, --debug <level>      filter out log messages with priorty below level.
                           level may be: FATAL, ERROR, WARNING, NOTE, INFO,
                           DEBUG, DEBUG1, DEBUG2.
      --display <display>  connect to the X server at <display>
  -f, --no-daemon          run the client in the foreground.
*     --daemon             run the client as a daemon.
  -n, --name <screen-name> use screen-name instead the hostname to identify
                           ourself to the server.
  -1, --no-restart         do not try to restart the client if it fails for
                           some reason.
*     --restart            restart the client automatically if it fails.
  -h, --help               display this help and exit.
      --version            display version information and exit.

* marks defaults.

The server address is of the form: [<hostname>][:<port>].  The hostname
must be the address or hostname of the server.  The port overrides the
default port, 24800.

Where log messages go depends on the platform and whether or not the
client is running as a daemon.


'프로그램 사용 > synergy' 카테고리의 다른 글

barrier on ubuntu 22.04 실패!  (2) 2023.06.15
시너지 (Synergy) for linux  (4) 2010.01.15
시너지 (Synergy) - KVM 프로그램(?)  (4) 2009.11.13
Posted by 구차니
아직 msysgit는 cygwin을 기반으로 해서
native win32API를 사용하지 못해 다운로드 속도가 엄청느리다.

Git Bash 아이콘(GIT)과 Git Bash를 구동시킨 화면
상단의 MINGW32가 눈에 띈다(=cygwin)


이건 리눅스(Fedora Core 6)에서 받는 모습
$ git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
Initialized empty Git repository in /home/st7109/linux-2.6/.git/
remote: Counting objects: 1523321, done.
remote: Compressing objects: 100% (245141/245141), done.
Receiving objects:  43% (661258/1523321), 260.79 MiB | 2.10 MiB/s

이건 msysgit(WinXP Git Bash)에서 받는 모습
$ git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
Initialized empty Git repository in c:/Documents and Settings/morpheuz/temp/linux-2.6/.git/
remote: Counting objects: 1523321, done.
remote: Compressing objects: 100% (245141/245141), done.
Receiving objects:  17% (269063/1523321), 154.20 MiB | 42 KiB/s

이건 머.. ㄱ-
msysgit만 쓰고 리눅스에서 안해봤음
git를 엄청 욕할뻔 했다.

'프로그램 사용 > Version Control' 카테고리의 다른 글

svn / svnadmin 도움말  (0) 2010.04.23
CVS / SVN 장단점, 차이점 비교  (6) 2010.04.07
TortoiseGIT  (0) 2010.03.18
SVN repository 어떻게 구성하지?  (2) 2010.03.08
SVN의 장점  (0) 2009.09.19
Posted by 구차니
GIT는 병렬분산처리 어쩌구 저쩌구
...
간단하게 Linus Torvalds 가 커널 소스관리 편하게 하려고 만든녀석같다.


아무튼 아직 MS용은 없었던걸로 알았는데
오늘검색해보니 google code에서 진행되는 프로젝트로
git for windows / TortoiseGIT 란게 생겨났다.

로고가 흐린건, 빗방울 효과 때문임 ㄱ-

나처럼 msysgit를 먼저 안깐 사람을 위한 기본경로
C:\Program Files\Git\bin


msysgit는 일종의 cygwin 기반의 git 이다.

msysgit의 설정. 귀찮아서 그냥 Use Git Bash only로..

TortoiseGIT는 엄밀하게는 GUI Frontend 이고
이로인해 windows용 GIT를 별도로 설치해야만 한다.(이건 조금 불편)

[링크 : http://code.google.com/p/tortoisegit/]
[링크 : http://code.google.com/p/msysgit/]
Posted by 구차니
CIFSD는 PS라고 치면 나온다.
물론 FC6 같이 CIFS가 커널에서 지원되지 않도록 컴파일 된녀석은 안나온다


# ps | grep cif
   72 root         0 SW<  [cifsoplockd]
   73 root         0 SW<  [cifsdnotifyd]
  667 root         0 SW<  [cifsd]

아무튼, 이녀석은 [cifsd] 라고 되어있듯 1000번 이하의 데몬이고,
커널이 띄우는 것으로 예상된다.

   - CIFS: Made cifsd (kernel daemon for the CIFS filesystem) suspend aware.

[링크 : http://www.novell.com/linux/security/advisories/2005_67_kernel.html]



---
2011.05.06 추가

Common Internet File System (CIFS)
CIFS는 마이크로소프트에 의해 개발되고 사용된 프로토콜인 SMB의 공개된 변종

[링크 :  http://www.terms.co.kr/CIFS.htm]
 

 In computer networkingServer Message Block (SMB), also known as Common Internet File System (CIFS) operates as an application-layer network protocol[1] mainly used to provide shared access to filesprintersserial ports, and miscellaneous communications between nodes on a network. It also provides an authenticated inter-process communication mechanism. Most usage of SMB involves computers running Microsoft Windows, where it was known as "Microsoft Windows Network" before the subsequent introduction of Active Directory.
 

[링크 :  http://en.wikipedia.org/wiki/Server_Message_Block]

Posted by 구차니
프로그램 사용/VLC2010. 3. 17. 14:38
build server는 Fedora Core6를 쓰고  glibc2.5를 사용한다.
그리고 target 역시 glibc2.5를 사용한다.


그런데.. vlc-1.0.5는 glibc2.5-2.8은 thread-safe 하지 않다고 거부한다 ㄱ-

아래와 같은 에러가 발생하는데
libtool: link: warning: library `/opt/STM/STLinux-2.2/devkit/sh4/target/usr/lib/libdbus-1.la' was moved.
...
../src/.libs/libvlc.so: undefined reference to `__vasprintf_chk'
../src/.libs/libvlc.so: undefined reference to `__asprintf_chk'
collect2: ld returned 1 exit status
내가 사용하는 타켓의 경로도 아니고.
묘한 곳에서 묘한 녀석을 링킹하면서 에러를 발생한다.

간단한 해결책이라고 생각했던 녀석으로
위의 la 파일의 libdir 변수를 수정해도 libtool: link: warning 하나만 사라질뿐 여전히 컴파일은 되지 않는다.
# libdbus-1.la - a libtool library file
# Generated by ltmain.sh - GNU libtool 1.5.10 (1.1220.2.130 2004/09/19 12:13:49)
#
# Please DO NOT delete this file!
# It is necessary for linking the library.

# The name that we can dlopen(3).
dlname='libdbus-1.so.2'

# Names of this library.
library_names='libdbus-1.so.2.0.0 libdbus-1.so.2 libdbus-1.so'

# The name of the static archive.
old_library='libdbus-1.a'

# Libraries that this one depends upon.
dependency_libs='-lnsl'

# Version information for libdbus-1.
current=2
age=0
revision=0

# Is this an already installed library?
installed=yes

# Should we warn about portability when linking against -modules?
shouldnotlink=no

# Files to dlopen/dlpreopen
dlopen=''
dlpreopen=''

# Directory that this library needs to be installed in:
libdir='/usr/lib'

그리고 지뢰밭을 피하는 방법으로 자주 검색되던 아래의 글역시
결과적으로 모든 la 파일의 내용을 변경해주어야 하는 번거로움이 생긴다.

[링크 : http://www.metastatic.org/text/libtool.html]

그런데, 저 wasprintf 가 머하는 녀석인가 검색을 해봤더니
glibc2.8에서 지원하는 함수라고 한다. 현재 사용하는건 2.5 버전이니 당연히 저런 함수가 존재할리 없고
그런 이유로 glibc를 업그레이드 하기 전에는 딱히 방법이 없어 보인다.

[링크 : http://infomaru.com/?mid=os_linux_basic&listStyle=gallery&document_srl=6197]

'프로그램 사용 > VLC' 카테고리의 다른 글

x264 와 h264의 관계?  (0) 2010.04.15
VLC nightly build  (0) 2010.04.13
VLC GLIBC runtime error  (0) 2010.03.16
VLC 1.0.5 컴파일시 magic.h 오류  (0) 2010.03.10
x264 , libavcodec 다운로드  (0) 2010.02.24
Posted by 구차니
프로그램 사용/VLC2010. 3. 16. 15:53
glibc 2.5 에서 2.7 사이의 gettext()는 쓰레드에 안전하기 않기 때문에
VLC에서 상기버전의 glibc를 사용하고 있다면 실행시에 에러를 발생하고 실행을 하지 않는다.

vlc-1.0.5/src/misc/linux_specific.c 파일의 75라인부터 아래의 내용이 존재한다.
#ifdef __GLIBC__
# include 
# include 
#endif

void system_Init (libvlc_int_t *libvlc, int *argc, const char *argv[])
{
#ifdef __GLIBC__
    const char *glcv = gnu_get_libc_version ();

    /* gettext in glibc 2.5-2.7 is not thread-safe. LibVLC keeps crashing,
     * especially in sterror_r(). Even if we have NLS disabled, the calling
     * process might have called setlocale(). */
    if (strverscmp (glcv, "2.5") >= 0 && strverscmp (glcv, "2.8") < 0)
    {
        fputs ("LibVLC has detected an unusable buggy GNU/libc version.\n"
               "Please update to version 2.8 or newer.\n", stderr);
        fflush (stderr);
#ifndef DISABLE_BUGGY_GLIBC_CHECK
        abort ();
#endif
    }
#endif

그리고 vlc-1.0.5/configure.ac 의 532 라인에는 다음과 같은 내용이 존재한다.
dnl
dnl Buggy glibc prevention. Purposedly not cached.
dnl Ubuntu alone has 20 bug numbers for this...
dnl
AC_MSG_CHECKING(for buggy GNU/libc versions)
AC_PREPROC_IFELSE([
#include <limits.h>
#if defined (__GLIBC__) && (__GLIBC__ == 2) \
  && (__GLIBC_MINOR__ >= 5) && (__GLIBC_MINOR__ <= 7)
# error GNU/libc with dcgettext killer bug!
#endif
], [
  AC_MSG_RESULT([not present])
], [
  AC_MSG_RESULT([found])
  AS_IF([test "x${enable_nls}" != "xno" || test "x${enable_mozilla}" != "xno"], [
    AC_MSG_ERROR([Buggy GNU/libc (version 2.5 - 2.7) present. VLC would crash; there is no viable
work-around for this. Check with your distribution vendor on how to update the
glibc run-time. Alternatively, build with --disable-nls --disable-mozilla and
be sure to not use LibVLC from other applications/wrappers.])
  ], [
    AC_DEFINE(DISABLE_BUGGY_GLIBC_CHECK, 1, [Disables runtime check for buggy glibc.])
  ])
])

위의 abort(); 를 주석처리 하거나
DISABLE_BUGGY_CLIBC_CHECK를 미리 선언하거나 하면 될꺼 같은데 어떻게 해야 하려나?
(아무튼 abort(); 를 주석처리 하면 실행은 된다.)

'프로그램 사용 > VLC' 카테고리의 다른 글

VLC nightly build  (0) 2010.04.13
VLC 크로스컴파일 - 멀고도 험하다 ㅠ.ㅠ  (0) 2010.03.17
VLC 1.0.5 컴파일시 magic.h 오류  (0) 2010.03.10
x264 , libavcodec 다운로드  (0) 2010.02.24
vlc-1.0.5 cross compile  (3) 2010.02.09
Posted by 구차니
유튜브의 이미지는 일반적으로


http://i3.ytimg.com/vi/r3jyCf_Id2o/default.jpg

이런식으로 default.jpg로 나온다.
하지만 default.jpg 대신 hqdefault.jpg 로 하면 큰 사진으로 받아오게 된다.


http://i3.ytimg.com/vi/r3jyCf_Id2o/hqdefault.jpg


default는 120x90
hqdefault는 480x360 해상도로 제공된다.

ytimg.com 은..
YouTube IMaGe 의 약자인가?!


2010.04.09 추가
굳이 i3 이런식으로 숫자가 없어도 불려온다.
범용으로 사용하기에는
i.ytimg.com/vi/[videoid]/default.jpg 혹은
i.ytimg.com/vi/[videoid]/hqdefault.jpg 이 적절해 보인다.

'프로그램 사용 > 유튜브(youtube)' 카테고리의 다른 글

youtube xml / RSS 주소  (0) 2010.04.09
youTube 경로로 VLC 플레이가 안됨  (0) 2010.04.01
3D 유튜브  (6) 2010.03.15
URL encode  (2) 2010.03.02
유튜브 파일 다운로드 하기(download youtube as file)  (6) 2010.02.26
Posted by 구차니