기존 <html> 로 시작하던 html 문서와는 달리 웹표준에 맞춘 XHTML 언어로 웹페이지를 제작하기 위해서는 상단에 DOCTYPE 선언(이하 DTD선언) 을 해주어야 한다. <body> 대개 기존의 사용하던 레이아웃을 그대로 사용하되, 웹표준에 맞추어서 제작을 하고 싶은 경우에는 우선은 Transitional 로 사용함이 좋지만, : 가장 최근 css규격따름. 엘리먼트 배치 자유로움. 스크롤링 레이어 사용 불가능. psition,display속성 구현방법 차이 상이. frame사용 불가능 HTML 4.01 엄격모드 : 1999년 12월 24일 확정 규격. 권장하지 않는 element, attribute, frame 사용불가, 엘리먼트 배치 엄격함. 일부 태그 사용 안됨. XHTML 1.0 호환모드 : 1999년 12월 24일 확정된 프레임문서. frameset이 사용가능. but 넷스케이프, 파폭 작동안됨. XHTML 1.0 엄격모드 ※ Strict : 권장 표준안, Transitional : Stric 보단 완화된 표준안
이 선언을 해주는 이유는 브라우저에게 어떤 언어로 제작되었는지를 알려주는 것이기 때문에 매우 중요하며 브라우저는 선언을 통해서 해당 웹페이지를 어떤 식으로 표현해주어야 하는지 판단하게 된다.
만약 XHTML 1.1 로 제작된 웹페이지라고 DTD선언을 해놓고 사실은 HTML 언어로 웹페이지를 제작했다면 브라우저는 자동적으로 해당 웹페에지가 XHTML 1.1 로 제작되지 않은 웹페이지임을 인식하게 됨으로 출력상으로 큰 문제는 없을지 모르겠지만 웹표준에 맞지 않는 웹페이지가 되므로 비교적 관대한 IE와는 달리 다른 브라우저에서는 사이트가 제대로 출력되지 않는 문제가 발생할 수 있음을 분명히 알아야한다.
기존의 문법을 살펴보자면
<html> - 시작
<head>
<title>브라우저 제목</title>
</head>
<body>
</body>
</html>
의 형식이지만 웹표준에 맞추어서 제작된 페이지의 경우에는
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ko" xml:lang="ko">
<head>
<meta http-equiv="Content-Type" content="text/html; charset="utf-8">
<title> </title>
</head>
</body>
위의 처럼 상단에 DTD선언을 하고 (위의 경우에는 "엄격한" 버젼이다.)
사용된 xml 언어가 무엇인지를 html 속성을 사용하여 지정해주었음을 볼 수 있다.
<head> 태그 아래에는 <meta> 태그가 들어가며 그 다음이 <title> 그리고 <style> 태그가 각각 자리잡는다.
meta 태그를 명시하는 이유는 컨텐트 타입을 명시하기 위해서 명시해주는 것이며, 이 태그를 통하여 웹페이지의 컨텐트 타입을 브라우저에게 알려줄 수 있으며, charset 을 통해 문자 인코딩을 알려줄 수 있다.
xml 속성을 선택해주는 이유는 많은 사람들이 xml언어를 생성할 수 있으므로 우리가 사용하는 언어가 무엇인지 결정하는 유일한 식별지를 제공하고, 우리가 사용하는 식별지가 바로 http://www.w3.org/1999/xhtml 이다.
아래에는 각각의 DTD선언에 대해서 나열한 것이니 사이트 제작시 참고하면 유용하다.
특히 기존에 아무런 문제없이 출력되던 레이아웃이 DTD선언 이후 갑자기 깨져서 보인다면 레이아웃에 맞지 않는 DTD선언을 했을 수도 있으므로 자신이 사용하는 레이아웃에 맞는 형태의 DTD선언을 하는 것이 좋다.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
처음부터 웹표준에 맞추어서 제작할 경우에는 Strict(엄격한) 에서 제작하는 것이 올바른 선택이라고 추천하고 싶다.
HTML 4.01 호환모드
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
가장 이상적인 문서작성시에 사용
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
'분류 전체보기'에 해당되는 글 308건
- 2012.04.24 XHTML - DTD 선언
- 2012.03.27 iOS - SQLite 한글-영어 순 정렬하기
- 2012.03.26 svn x
- 2012.03.14 SQLITE3 DB 파일 복사 및 , Path가져오기
- 2012.03.12 시간 표시
- 2012.02.20 [iOS] Stretchable Image를 이용해 App. Size를 줄여보자.
- 2011.12.30 IB없이 개발하기
- 2011.11.17 [오픈소스] 지금 막 발전해가는 동영상 플레이어 - MPUI
- 2011.11.17 브루마블! 아이폰 게임 재밌겠네 ㅎ
- 2011.11.11 브라우저 구별
Android 도 SQLite 를 사용하니 결과는 마찬가지라고 생각되지만 Android 에서 테스트해 보질 않아서 장담 할 수는 없을 것 같다.
암튼...SQLite 가 원래 영어, 한글 순으로 정렬을 해버린다..-_-;
기획자들의 요구사항은 한글, 영어다..
어쩌할까...생각을 해보다..생각을 접고 구글링한다..
when 을 이용하여 처리한 방법이 있다..(select절에 when사용 처음 해본다..)
[NSString stringWithFormat:@"SELECT idx, title, writer_doc, writer_img, download_reg_date, download_end_date, free_yn, tidx, vidx, gidx, title_sub, abs(vidx) as vid, case when substr(title, 1, 1) BETWEEN 'ㄱ' AND '힣' then 1 else 4 end as number FROM cartoon GROUP BY title, vid ORDER BY number %@, title %@, vid %@ LIMIT %d", orderby, orderby, orderby, limit]
abs(vidx)는 vidx값이 문자열이라 정렬하기 위해서 int형으로 변환했다...
문자열을 int 로 변경하는 convert 함수가 이놈이 맞는지 모르지만..암튼 된다.-_-;
그리고 한글, 영문 정렬..
when substr(title, 1, 1) BETWEEN 'ㄱ' AND '힣' then 1 else 4 end as number
title의 첫글자를 substr 한 후 그값이 'ㄱ'에서 '힣' 사이에 속하면 1 아니면 4로
셋팅한 후 정렬할때 number를 기준으로 정렬한다..
'영삼이의 IT정보' 카테고리의 다른 글
PHP에서 꼭 알아야 될 함수 (0) | 2012.04.30 |
---|---|
xcode 4.3 empty project 로 시작시 참고사항 (0) | 2012.04.28 |
[iOS] Stretchable Image를 이용해 App. Size를 줄여보자. (0) | 2012.02.20 |
IB없이 개발하기 (0) | 2011.12.30 |
[오픈소스] 지금 막 발전해가는 동영상 플레이어 - MPUI (0) | 2011.11.17 |
프로젝트 진행을 해보신 분이라면 SVN이라는 놈을 아실겁니다.
소스코드 버전 관리를 해주는 프로그램이죠.
Xcode에서는 Organizer에 기본으로 svn 관리 툴이 붙어있더군요.
그래서 좀 써봤는데 버그가 좀 많고 왠지 허접한(!) 느낌이 들었습니다..
그래서 svn 클라이언트 프로그램 찾아보다가.. svnX라는 놈을 찾았습니다..
svnX는 아래 링크에서 받아보실 수 있습니다. (프리웨어)
http://code.google.com/p/svnx/downloads/list (현재 버전 1.3)
svnX를 설치하신 후.. 실행을 하면 저장소 창이 뜹니다.
Repositories는 실제 소스가 저장될 곳입니다. 서버가 될수도 있고 내 컴퓨터에 저장되는 경로일 수도 있습니다.
일단 서버쪽에 SVN Server 프로그램이 깔려있고, 사용자 계정이 등록돼있다는 가정 하에
서버 저장소와 연결하는 방법을 소개해보겠습니다.
일단 저장소 창을 띄웁니다.
만약 창이 안떠있다면 "메뉴 -> Window -> Repositories"로 창을 띄웁니다.
오른쪽 중간 쯤에 있는 + 버튼을 누릅니다.
Name에 프로젝트 이름을 설정하고,
Path에 서버 저장소 경로를 입력합니다.
User/Password 에는 SVN 계정의 사용자 이름과 비밀번호를 입력해 넣습니다.
입력을 마친 후 리스트에 해당 항목을 더블클릭하면 아래와 같이 저장소 창이 뜹니다.
이 리스트에 보이는 것은 서버에 있는 목록을 보여주는 것이므로.. 로컬에 저장하기 위해 Checkout을 눌러줍니다.
서버의 소스를 저장할 로컬 경로를 설정한 후 Checkout을 눌러주면..
Working Copies 폴더에 test 프로젝트가 추가가 됐습니다.. 이렇게 되면 이제 준비는 끝난것입니다.
Working Copies에서 해당 항목을 더블클릭하면 Update, Commit 등을 할 수 있는 창이 뜹니다.
Finder에서 저장소 폴더에 임의의 소스 파일 2개를 추가했습니다.
위에 두 항목이 ? 로 뜨는 것은 SVN 관리 파일이 아니라는 것입니다.
파일을 선택한 후 Add를 눌러주고 Commit 을 하면 서버로 해당 파일들이 올라갑니다.
Update 메뉴는 다른 사람이 소스를 수정해서 Commit 한 경우 내 컴퓨터에 있는 소스와 동기화를 시켜주는 작업을 합니다.
만약 내가 수정한 부분과 충돌이 일어나면 충돌 표시도 해주며,
같은 파일을 수정했더라도 충돌부분이 없으면 자동으로 병합해주는 아주 똑똑한 놈이지요..
커밋을 한 후 한번 Refresh해준 다음, Repository를 눌러보시면 아래와 같이 버전이 생성됩니다.
버전 관리에 꼭 텍스트 파일 형식일 필요는 없습니다. 바이너리 파일도 버전 관리가 됩니다 (물론 비교는 힘들겠지만요..)
이런식으로 프로젝트 폴더 전체를 공유해서 여러명이서 개발을 하면 좋습니다..
옛날에 이런 버전 관리 툴이 없을때는 각자 개발하고 날잡하서 병합하고 그랬더랬지요..
※ 퍼가실땐 출처를 밝혀주세요. (http://shkam.tistory.com/)
@interface TESTAppDelegate : NSObject <UIApplicationDelegate> { NSString *DBNAME; NSString *DBPATH; } NSFileManager *fileManager = [NSFileManager defaultManager]; NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsDirectory = [paths objectAtIndex:0]; NSString *writableDBPath = [documentsDirectory stringByAppendingPathComponent: @"Store.sqlite"]; self.DBPATH = writableDBPath; NSLog(@"writableDBPath is %@", writableDBPath); BOOL dbexits = [fileManager fileExistsAtPath:writableDBPath]; if (!dbexits) { NSLog(@"데이터베이스 카피"); // 데이터베이스가 존재하지 않으면, 어플리케이션 Resource아래에서 복사를 한다 NSString *defaultDBPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"Store.sqlite"]; NSError *error; BOOL success = [fileManager copyItemAtPath:defaultDBPath toPath:writableDBPath error:&error]; } else { NSLog(@"이미 패스가 잇음"); }
-- m파일
아 별짓다했네... 3시간동안 강제로 Path따서 햇지만 읽히는건 읽혀지지만... insert가 안되서...
완전 제일 중요한거!!! 앱/Documents <--요놈안에있는놈만 수정이 가능하다!!
- (UIImage *)stretchableImageWithLeftCapWidth:(NSInteger)leftCapWidth topCapHeight:(NSInteger)topCapHeight;
UIImage *img = [[UIImage imageNamed:@"image.png"] stretchableImageWithLeftCapWidth:10 topCapHeight:10];
[stretchableView setImage:img];
'영삼이의 IT정보' 카테고리의 다른 글
xcode 4.3 empty project 로 시작시 참고사항 (0) | 2012.04.28 |
---|---|
iOS - SQLite 한글-영어 순 정렬하기 (0) | 2012.03.27 |
IB없이 개발하기 (0) | 2011.12.30 |
[오픈소스] 지금 막 발전해가는 동영상 플레이어 - MPUI (0) | 2011.11.17 |
브루마블! 아이폰 게임 재밌겠네 ㅎ (0) | 2011.11.17 |
자 이 주소로 가보자 -_-;
'영삼이의 IT정보' 카테고리의 다른 글
iOS - SQLite 한글-영어 순 정렬하기 (0) | 2012.03.27 |
---|---|
[iOS] Stretchable Image를 이용해 App. Size를 줄여보자. (0) | 2012.02.20 |
[오픈소스] 지금 막 발전해가는 동영상 플레이어 - MPUI (0) | 2011.11.17 |
브루마블! 아이폰 게임 재밌겠네 ㅎ (0) | 2011.11.17 |
브라우저 구별 (0) | 2011.11.11 |
- 윈도우즈를 위한 미디어 플레이어
- 간단한 플레이어
http://mpui.sourceforge.net/index.php?page=about
About MPlayer and MPUI
MPlayer is arguably the best media player application of the world. Is is almost strictly monolithic, which means that it mainly consists of a single 7 MB executable that already contains all necessary codecs – for most files, it does not need any external codecs to be installed. If you want to know more about this wonderful program, please visit the MPlayer homepage.
The roots of MPlayer are in the Unix environment, and it shows in the way MPlayer is used: There is no graphical user interface, or at least none worth mentioning. Instead, MPlayer completely relies on a well-crafted command line interface and powerful keyboard shortcuts. While this is perfectly OK for Unix enthusiasts, Mac and Windows users prefer nice and more or less colorful graphical interfaces. There is already a »semi-official« OS X port, but up to now, no such project exists for the Windows platform.
This is where MPUI comes into play. It is a small program for Windows that takes the command-line hassle off you. Instead, you will get a no-frills, straight-to-the-point GUI that resembles the venerable Windows Media Player 6. It does not support every feature of MPlayer – there are just too many of them – but it is a solid »workhorse« media player tool suitable for most, if not all, everyday needs.
Features
MPlayer and MPUI, when teamed up, offer the following features:
- A media player with a clean and simple interface.
- Plays hundreds of different video and audio formats, including MPEG-1, -2 and -4 (DivX), H.264, MP3, Ogg Vorbis and AAC. For most media files, no additional codecs are needed. (This is because MPlayer is not one of the uncounted DirectShow players – the codecs are directly integrated into MPlayer.exe.)
- MPUI and MPlayer together are just about 3.5 MB in size.
- The most important MPlayer options (aspect ratio, deinterlacing, and postprocessing) can be configured without typing in cryptic command-line options. (But if you want or need some non-standard options, you can still add them by hand.)
- Support for multiple audio and subtitle tracks on DVDs.
- Combines MPlayer's cool keyboard navigation with a mouse-controlled seekbar.
- Plays files, network streams and discs (such as (S)VCD or DVD). Drag&Drop supported.
- Multilingual user interface.
- No installation is required to use MPUI/MPlayer. Simply copy the two .exe files into a directory of your choice an run MPUI.
- Using a special autorun.inf file, self-playing DivX CDs can be made. This adds only 3.5 MB to your CD, and on the computer playing the disc, no codecs need to be installed.
- Both programs are free, licensed under the GNU General Public License.
'영삼이의 IT정보' 카테고리의 다른 글
[iOS] Stretchable Image를 이용해 App. Size를 줄여보자. (0) | 2012.02.20 |
---|---|
IB없이 개발하기 (0) | 2011.12.30 |
브루마블! 아이폰 게임 재밌겠네 ㅎ (0) | 2011.11.17 |
브라우저 구별 (0) | 2011.11.11 |
UIAlertView without Buttons - Please Wait Dialog (2) | 2011.11.09 |
몇 십년간 보드게임으로 인기를 누려 왔던 스토리를 아이폰에 적용한 게임입니다. '부자아빠 가난한아빠'를 저술한 작가도 이 게임을 아주 극찬 했습니다. 현재 아이튠즈 게임 카테고리 상위권에 있습니다.
무료
카테고리: 게임
등록일: 2011.11.11
버전: 1.0.8
크기: 60.3 MB
언어: 한국어, 영어, 일본어
개발자: M&M GAMES Corp
© M&M Games
4+ 등급
요구사항: iPhone 3GS, iPhone 4, iPhone 4S, iPod touch (3세대), iPod touch (4세대) 및 iPad와(과) 호환됩니다. iOS 4.2 버전 이상이 필요합니다.
아이튠즈 링크 : http://itunes.apple.com/kr/app/id477076603?mt=8 바로가기
'영삼이의 IT정보' 카테고리의 다른 글
IB없이 개발하기 (0) | 2011.12.30 |
---|---|
[오픈소스] 지금 막 발전해가는 동영상 플레이어 - MPUI (0) | 2011.11.17 |
브라우저 구별 (0) | 2011.11.11 |
UIAlertView without Buttons - Please Wait Dialog (2) | 2011.11.09 |
로딩중… 메세지박스 출력 (0) | 2011.11.09 |
스크립트를 이용하는방법
<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
<!--
// [/iPhone/i] OS가 iPhone
// [/iPod/i] OS가 iPod
// [/Symbian/i] OS가 심비안
// [/Windows CE/i] OS가 윈도우모바일
// [/BlackBerry/i] OS가 블랙베리
// [/Android/i] OS가 안드로이드일 경우
if( (navigator.userAgent.match(/iPhone/i)) ||
(navigator.userAgent.match(/iPod/i)) ||
(navigator.userAgent.match(/Symbian/i)) ||
(navigator.userAgent.match(/Windows CE/i)) ||
(navigator.userAgent.match(/BlackBerry/i)) ||
(navigator.userAgent.match(/Android/i)))
{
window.location.href='./photo.php'; // 저중 하나라도 조건이 만족하면 /m/index.php 로 이동한다.
}
//-->
</SCRIPT>
php를 이용하는방법
<?
$T = $_SERVER['HTTP_USER_AGENT'];
if(strrpos($T,"Android") || strrpos($T,"iPhone"))
{
if(strrpos($T,"SHW-M180S")) // 갤럭시 탭
{
$goMobile = "No";
}
else
{
$goMobile = "Yes";
}
}
if($goMobile == "Yes")
{
?>
<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
<!--
window.location.href='m1.php';
//-->
</SCRIPT>
<?
}
?>
먼저 $T로 브라우져의 정보를 알아낸다음...
그것으로 처리 하면 된다.
'영삼이의 IT정보' 카테고리의 다른 글
[오픈소스] 지금 막 발전해가는 동영상 플레이어 - MPUI (0) | 2011.11.17 |
---|---|
브루마블! 아이폰 게임 재밌겠네 ㅎ (0) | 2011.11.17 |
UIAlertView without Buttons - Please Wait Dialog (2) | 2011.11.09 |
로딩중… 메세지박스 출력 (0) | 2011.11.09 |
자바스크립트 명령어 (0) | 2011.11.04 |