NodeJS 를 이용한 웹 프레임워크 중 하나인 Express ( http://expressjs.com/ ) 의 기본적인 사용방법에 관한 튜토리얼 입니다. 우선 준비사항으로 NodeJS 가 설치 되어있어야 하니 아래의 포스팅을 참고하시기 바랍니다. [Programming Language/NodeJS] - Ubuntu 에서 Node JS 시작하기 [Programming Language/NodeJS] - NodeJS 업데이트 하기 1. Express 간단히 설치하여 HelloWorld 까지 해보기 여기서는 간단히 Express 를 설치하여 간단히 이용하는 방법에 관해서 설명 드리겠습니다. 우선 원하는 이름으로 app 폴더를 생성해 주도록 합니다. 여기서는 developers 로 생성 하였습니다. $ mkdi..
우선 Solr 를 설치하기 위해서는 java 를 기반으로 하기때문에 jdk 를 설치해주셔야 합니다. Ubuntu 를 기준으로 하기때문에 openjdk 를 설치하도록 하겠습니다. 1 단계 - Install JAVA 2015/09/23 - [OS/Ubuntu] - Ubuntu 에서 최신 Openjdk 설치하기 sudo add-apt-repository ppa:openjdk/ppa sudo apt-get update sudo apt-get install openjdk-8-jdk 2 단계 - Solr 설치하기 이제 Java 가 모두 설치되었다면 Solr 를 설치할 차례 입니다. 여기서는 Solr 5.3.0 을 수동으로 설치하겠습니다. 우선 간단히 설명드리면 설치할 폴더로 이동 후 최신버전의 Solr 를 Wget..
Ubuntu 에서 최신버전의 OpenJDK 설치 방법입니다. 간단하게 apt-get install 로 설치해도 되지만 저장소를 업데이트 해주셔야 하는대요. 아래의 명령어를 쳐주시면 됩니다. sudo add-apt-repository ppa:openjdk/ppa sudo apt-get update 이제 위의 명령어를 실행하셨으면 apt-cache search openjdk 에 최신버전의 openjdk 가 표시되는 것을 확인하실 수 있습니다. apt-cache search openjdk 이제 apt-get install 을 이용하여 원하시는 버전을 설치하시면 됩니다. apt-get install openjdk-8-jdk 설치 후 버전 확인은 java -version 으로 확인이 가능합니다. java -ver..
PHP 기본 문법 PHP 는 기본적으로 *.php 의 확장자를 가지며 스크립트는 사이에 작성 됩니다. PHP 파일에는 HTML 코드가 같이 포함될 수 있습니다. 아래의 예제를 한번 보시겠습니다. echo 는 PHP 내부의 스크립트로 텍스트를 출력해주는 역할을 합니다. 또한 echo 의 끝에 세미콜론 ( ; ) 으로 마무리 된 것을 확인하실수 있으실 것 입니다. 프로그램 문단의 끝은 항상 세미콜론 으로 끝을 내주셔야 합니다. * 아직 초반이라 PHP 에 관해서 HTML 과 함께 쓰도록 배우지만 굳이 HTML 을 포함하는 프로그래밍 언어로서만 사용하지는 않습니다. 물론 대부분의 경우가 HTML 표현을 위해서 사용되지만 서버의 뒷단에서 Perl, Python 과 같이 서비스 운영을 처리하는 역할을 하기도 한다..
PHP 는 동적 웹페이지를 만들수 있는 서버 사이드의 스크립트 언어이며 HTML 코드안에 php 를 넣음으로서 효율적으로 개발이 가능합니다. 또한 PHP 는 OS 에 관계 없이 운영 및 개발이 가능합니다. * PHP 를 알아보기전 기본적으로 HTML, CSS, Javascript 에 관한 지식이 있으셔야 합니다. 우선 간단하게 아래의 PHP 코드를 보겠습니다. 간단히 코드에 관해서 간단히 설명하자면 echo ""; 는 html 페이지내에 텍스트를 뿌려주는 역할을 합니다. 후에 print 와 비교하여 좀더 자세히 설명드리겠습니다. 위의 코드에서 보시면 사이에 부분이 보이실 것 입니다. php 는 이와 같이 HTML 문서 중간에 삽입될 수 있으며 뿐만 아니라 문서 어느 곳 이든 삽입이 가능합니다. 대신 WA..
HTML 은 간단히 말하면 컨텐츠 제공자가 사용자에게 컨텐츠를 쉽고 편하게 보여 주기위한 일종의 문서 입니다. HTML 의 약자는 Hyper Text Markup Language 의 약자로 markup tag 로 이루어진 문서 입니다. Tag ( 태그 ) 는 HTML 문서를 구성하는 작은 단위로 태그라고 부릅니다. 일단 아래의 코드로 첫번째 문서를 만들고 설명 드리겠습니다. 나의 첫 HTML 문서 입니다! 이제 위의 코드를 아무 문서에 작성 후 파일 이름은 원하시는대로 하되 아래와 같이 확장자 명은 .html 로 해주시기 바랍니다. 문서 작성은 편하신 에디터 를 이용하시면 됩니다. 메모장으로도 가능합니다. 이제 이 파일을 웹 브라우져 (익스플로러, Chrome, firefox, safari )에서 열어 ..
커피스크립트에서 함수 선언 방법과 객체 및 배열 사용 방법에 관해 설명 드리겠습니다. 원본 & 참고 : http://coffeescript.org/#literals 함수 선언 커피 스크립트에서의 함수선언은 "->" 로 이루어 집니다. 아래의 예제가 좀더 보기 편하실 것 입니다. 아래는 사각형의 넓이를 구하는 공식과 6 면체 를 구하는 공식 입니다. 첫 번째 함수는 CoffeeScript 두번째 함수는 javascript 함수 입니다. 비교해서 보시기 바랍니다. square = (x) -> x * x cube = (x) -> square(x) * x console.log square 10 아래는 javascript 입니다. // Generated by CoffeeScript 1.10.0 (function(..
CoffeeScript 란 ? CoffeeScript 는 복잡한 문법을 가지고 있는 자바스크립트 언어의 특성 때문에 나오게된 일종의 언어 입니다. 좀더 자세히 설명하자면 커피스크립트로 작성된 파일은 자바 스크립트로 변환되어 사용 되지만 좀더 간단한 문법으로 스크립트를 작성할수 있도록 해줍니다. 사용의 용도는 당연히 Javascript 문서를 더욱 간결하게 작성하기 위해서 입니다. 간단한 예제를 아래의 코드로 확인해 보시기 바랍니다. 아래의 코드는 Coffeescript.org 에서 확인하실수 있습니다. CoffeeScript GitHub CoffeeScript 코드 # Assignment: number = 42 opposite = true # Conditions: number = -42 if opposi..
MAC 에서는 보안 삭제를 위해서 따로 프로그램을 깔아주지 않으셔도 됩니다. * 주의 보안 삭제 를 진행 할 경우 파일의 복구가 불가능해지니 중요한 파일이라면 백업을 해두시기 바랍니다. 우선 Finder 상태에서 좌측 상단의 Finder 를 클릭하셔서 환경설정 으로 이동합니다. Finder 환경설정 에서 고급 으로 이동하여 휴지통 안전하게 비우기 를 선택해 주시면 됩니다. 이제 파일 삭제 후 휴지통 비우기를 하실 경우 보안 휴지통 비우기 가 진행되며 휴지통 비우기가 이전보다 훨씬 오래 걸리는 것을 확인하실 수 있습니다. ps. 만약 파일 삭제가 제대로 되지 않을 경우 휴지통 안전하게 비우기 를 해지한 후 삭제를 진행하여 보시기 바랍니다. 가끔 파일을 남기고 삭제 진행이 안되는 경우가 있었습니다.
Facebook 페이지에 간단하게 주소를 넣는 방법입니다. 또한 주소를 너무 많이 추가 또는 변경 했을때 추가 하는 방법을 포함하고 있습니다.. 우선 페이스북 페이지에 주소를 추가하는 방법입니다. 페이지로 이동 후 아래와 같이 정보 > Facebook 웹 주소 를 선택해 주도록 합니다. 그리고 이 페이지의 웹 조소를 만드시겠어요? 를 누르서셔 http://www.facebook.com/username 로 이동하시면 페이지를 선택 후 웹 주소의 사용 가능 여부를 확인 후 페이지 주소를 설정하실수 있습니다. *페이지 주소 설정시 페이지 정보로 이동 후 이동하지 않고 위의 주소로 이동하셔서 바로 만드시는 것도 가능합니다. 사용 가능 여부를 확인 후 아래와 같은 과정을 거치고 계정생성이 완료 됩니다. 아래는 어..
Chrome 의 기능중 하나인 사용자 생성을 이용하여 크롬만을 이용하여 특정 서비스에 ( Facebook 과 같은 ) 여러 계정을 로그인 하는 방법을 알려 드리겠습니다. Chrome 을 켜놓은 상태에서 우측 상단의 버튼틀 클릭 후 설정 으로 이동합니다. 설정페이지로 이동후 하단에 보시면 사용자 관리 부분이 보이실 것 입니다. 이제 좀더 아래의 사용자 추가... 를 눌러서 사용자 추가 창을 열어 주시기 바랍니다. 사용자 추가... 를 누르시면 아래와 같이 사용자 추가 창을 확인하실 수 있습니다. 이 곳에서 사용자 이름 을 적으신 후 추가 를 누르시면 사용자 추가가 완료 됩니다. * 이름 아래의 메세지 문구는 Chrome 에 로그인된 마스터 계정으로 해당 사용자를 컨트롤 할 것 인지에 관한 내용 입니다. 이..
페이스북 페이지를 삭제하는 방법입니다.우선 페이지로 이동 후 계정 이름 바로 아래에 있는 설정을 눌러 주도록 합니다. 이동 후 최하단에 보시면 '페이지 삭제' 메뉴가 보이실 것 입니다. 이 메뉴를 누르신 후 "XXX 페이지를 영구적으로 삭제" 또는14일 이후 삭제 된다는 메세지를 보신 후 "XXX 삭제" 를 눌러 주시면 됩니다. 위와 같은 페이지에서 페이지 삭제를 눌러서 처리해주시면 됩니다. 페이지의 운영에 따라서 메세지가 다를수 있는대요. 위와 같이 바로 "페이지를 영구적으로 삭제" 가 있는 페이지는 좋아요가 200명 이하일 경우이고 페이지의 좋아요가 200명 이상 일경우 아래와 같이 14일 이후 삭제가 된다는 메세지를 보실수 있으실 것 입니다. 물론 삭제를 눌럿을 경우 메세지도 다르게 되어 있습니다...
구글 의 SNS 인 Google+ 에서 페이지를 삭제하는 방법입니다. 우선 우측 상단을 눌러 원하는 페이지를 선택 후 설정 을 이용하여 설정 페이지로 이동합니다. 설정 페이지로 이동 후 페이지 스크롤을 최하단으로 내려 보시면 아래와 같이 페이지 삭제 가 보이실 것 입니다. 이제 페이지 삭제를 눌러 주시면 아래와 같은 창이 뜨게 되는대요. 여기서는 페이지 삭제를 한번더 눌러 주도록 합니다. 이제 비밀번호를 한번더 물어 보는대요. 비밀번호를 한번더 입력해주시면 페이지의 기능과 관련된 것들에 대한 확인사항을 다시 확인하게 됩니다. 이제 삭제 를 누르시면 확실히 삭제가 진행되게 됩니다. 구글의 Google+ 의 경우 여러 서비스와 묶여 있는 경우가 많아서 확인사항이 많습니다. 대표적으로 유튜브 채널만 생성하더라..
Composer 는 일종의 php 패키지 의존성 관리 툴로 Laravel 과 같은 프레임워크의 의존성 프로그램들을 자동으로 설치하게 해주는 등의 역할을 합니다. Composer 설치하기 Composer 의 설치는 간단합니다. 우선 아래의 명령어로 설치하시면 됩니다. $ curl -sS https://getcomposer.org/installer | php 설치가 모두 진행되면 아래와 같이 현재 폴더에 composer.phar 이 설치된것을 확인하실수 있습니다. 이제 이 composer.phar 을 평소 실행이 가능하게 하기위해 /usr/local/bin/ 로 이동해 주도록합니다. $ mv composer.phar /usr/local/bin/ 이곳까지 진행하시고 composer 실행하시면 아래와 같이 명령..
Ubuntu 에서 Docker 를 사용하기 위한 기초적인 옵션을 설정하기 위한 정보 들입니다.참고 원문서 : Installation on Ubuntu 1. Docker 그룹 생성 docker 의 데몬은 TCP port 대신 Unix socket 과 바인드 되어 있습니다. 때문에 기본 유저로 root 로 설정이 되어 있어서 sudo 를 이용해 주어야 하는대요. docker 그룹을 생성하여 docker 명령을 이용하는대 sudo 를 사용하지 않도록 하는 것이 목표 입니다. 방법은 간단합니다. docker 그룹을 생성 후 docker 에 사용자 계정을 추가하면 됩니다. docker 데몬이 실행될때 Unix socket 의 읽기/쓰기의 권한을 docker 그룹이 가지고 있기 때문에 가능합니다. 주의 : dock..
Ubuntu 에 Docker 를 사용하기 위한 Docker Engine 를 설치해보겠습니다. 우선 준비 사항으로 버전을 확인해보셔야 하는대요. uname -r 을 이용하여 커널 버전을 확인 합니다. $uname -r Deoker 는 리눅스 커널 버전이 최소 3.10 이상이 되어야 합니다. 또한 우분투 버전은 14.04 이상 , 12.04, 13.10 에 설치가 가능합니다. 일단 Docker Docs 에는 위의 버전만 쓰여져 있지만 12.04 에서는 몇가지 설치 부분이 필요 할뿐 나머지는 그냥 설치를 하셔도 될것 같습니다. 1. 설치 준비하기 우분투 14.04 이상의 버전에서는 따로 설치할 것들이 없습니다. 우분투 12.04 커널 3.13 이하일 경우 12.04 버전 에서는 우분투 커널이 3.13 이상이어..
CentOS 7 Minimal 을 처음 설치하고 ip 를 확인할 경우 이전 까지 사용하던 ifconfig 명령어가 사용할수 없다는 것을 확인하실수 있습니다. 위와 같이 ifconfig 를 찾을수 없다는 메세지를 확인하실수 있습니다. ifconfig 명령어가 사라지로 ip 라는 기본 명령어가 생겻습니다. 여기서는 위에서 사용한 ifconfig 를 대체할 만한 방법들을 알려드리겠습니다. - ip addr show 혹은 ip addr 을 이용 하기 ip addr show 는 ifconfig 와 같이 현재 컴퓨터의 네트워크 ip 주소 상태를 보여 줍니다. $ip addr show ip 명령어에 관련해서는 ip -h 혹은 man ip 를 이용하여 확인하여 보시기 바랍니다. - ifconfig 를 이용하기 위해 n..
우선 Docker 를 알기전에 Immutable Infrastructure 를 이해할 필요가 있는대요. Immutable Infrastructure 란 굳이 번역 하자면 불면의 기반, 불변의 인프라 와 같이 해석 할수 있는대요. Immutable Infrastructure는 OS( Ubuntu, Centos, Windows, MAC 등... ) 와 서비스 환경( 어플리케이션, 소스코드, 시스템 툴, 시스템 라이브러리 등의 서버에 설치하는 것들 )을 분리하여 이해하고 분리한 것들 중 서비스 환경 ( 서비스 인프라 ) 부분을 이미지화 하여 배포한뒤 가급적으로 변경 않고 사용하는 것을 의미 합니다. 서비스 환경의 업데이트는 서비스 환경을 변경하는 것이 아닌 이미지를 교체 하는 식으로 이루어 집니다. 관련 자료..
트위터의 탈퇴 방법은 페이스북에 많이 쉽습니다. 우선 '설정' 으로 이동 후 설정 페이지 최하단의 '계정 비활성화' 를 클릭해주시면 됩니다. 간단히 계정 비활성화 를 눌러 주시면 됩니다. 이제 비활성화 관련 숙지 사항에 대해서 설명한 페이지가 뜨는대요. 위의 설명중 꼭 알아 두셔야 할 점들은 계정은 비공개 형식으로 30일 동안 비활성화 상태로 유지되고 30일 후 영구삭제가 되며 아이디나 트위터 주소변 경은 굳이 삭제 하지 않으셔도 가능합니다. 현재 아이디를 사용하기 위해서는 미리 다른 아이디로 변경하시기 바랍니다. 이유는 30일 이전 완전 삭제 전까지는 사용이 불가능 하기 때문입니다. 또한 가장 중요한 파트는 Google과 같은 검색 엔진이 수집한 컨텐츠에 대해서는 삭제 권한이 없다는 것입니다. 예를 들..
Font Awsome 은 웹 페이지 개발시 이미지가 아닌 테그를 이용하여 아래와 같은 특수 문자를 쓸수 있도록 해줍니다. 등 사용전 알아두셔야할 것은 3.2.1 까지는 IE 8.x 등의 하위 버전을 지원하지만 4.3.0 과 같이 4.x 이상 버전에서는 저버전의 브라우저들을 지원하지 않으니 참고하시기 바랍니다. CDN 을 이용한 간단한 사용방법은 아래와 같이 버전별 URL 을 Head 사이에 넣으셔서 로드해주시고 Font Awsome 3.2.1 Font Awsome 4.3.0 아래와 같이 페이지의 문자표 테그를 참고하셔서 HTML 코드에 직접 사용하시면 됩니다. Font Awsome 3.2.1 아이콘 리스트 http://fortawesome.github.io/Font-Awesome/3.2.1/icons/ ..
질문이 들어오게 되어 간단히 답변의 형대로 적습니다. 질문 : http://kr.deoker.com/73#comment11168374 FancyBox 홈페이지 : http://fancyapps.com/fancybox/ 질문 하신분의 홈페이지 : http://daeman.tistory.com/165 질문은 FancyBox 의 여백을 없에 달라고 하시던 질문 이었습니다. 우선 옵션상에서 padding 과 margin 을 0으로 주시면 기본 적인 margin 과 padding 이 사라집니다. 스크립트 적용시 아래와 같이 옵션을 주시거나 스크립트 내부에서 default 값을 변경해 주시면 됩니다. $('.fancybox').fancybox({margin:0,padding:0}); 혹은 스크립트 내부에서 $.ex..
모바일 프로젝트를 핟보면 jQuery Mobile 에 있는 특정 기능만을 사용해야 할대가 있습니다. 예를 들어 swipeleft 와 같은 특정 모바일 이벤트들 을 말하는 것인대요. 기본적으로 jQuery Mobile 을 불러 올 경우 Document 를 jQuery Mobile 방식으로 변경합니다. 변경이 될 경우 뜻하지 않게 a tag 전체에 ajax 페이지 로딩 적용 및 페이지 하단에 Loading 요소가 생기는등의 작업이 진행 됩니다. 여기서 포스팅할 내용은 jQuery Mobile 에서 페이지 초기화를 간단한 스크립트로 막는 방법입니다. 우선 스크립트는 아래와 같습니다. $( document ).on( "mobileinit", function() { $.extend( $.mobile , { aut..
1. 방화벽에 ip 및 포트 지정하기 Ubuntu 서버 방화벽에 접근을 허용할 특정 ip 및 포트를 지정 하는 방법 입니다. 예는 222.222.222.222 와 23425 포트에 연결하는 방법입니다. ufw allow from 222.222.222.222 to any port 23425 삭제 방법은 아래와 같습니다. ufw delete allow from 222.222.222.222 to any port 23425 2. 특정 ip, 프로토콜 및 포트 범위 지정하기 특정 ip 와 함께 프로토콜 및 포트 범위를 지정하는 방법입니다. 특정 포트를 범위 단위로 지정할 경우 프로토콜을 꼭 지정해 주셔야 합니다. ( tcp 또는 udp ) ufw allow proto udp from 222.222.222.222 ..
Unreal Engine 4를 처음 이용하면 아래와 같이 한글로 에디터가 구성되어 있는대요. 이용자에 따라서는 이것이 불편할수도 있습니다. 이때 한글 에디터를 영문으로 변경하는 방법입니다. 한글인 상태에서 맥을 기준으로 Unreal Editor > Preferences... 을 클릭하셔서 환경 설정으로 이동 후 아래와 같이 지역 & 언어 에서 원하는 언어로 선택해주시고 프로그램을 다시 시작해주시면 됩니다. 아래는 정상적으로 영문의 적용된 모습입니다. 즐거운 게임 개발 되시기 바랍니다. ^^
Ubuntu 에서 apt-get 으로 vsftp 자동 설치 후아래와 같이 local user 를 사용하고 chroot 를 이용하여 폴더를 이동하지 못하도록 할 경우 anonymous_enable=NO local_enable=YES chroot_local_user=YES 500 OOPS: vsftpd: refusing to run with writable root inside chroot() 와 같은 에러가 발생할수 있는대요. 위의 에러는 해당 유저의 home 폴더가 /home 을 벗어나거나 폴더에 권한이 없을때 발생 합니다. 제 경우는 폴더에 권한이 있음에도 작업 폴더가 /home 을 벗어나서 발생했었는데요. allow_writeable_chroot=YES 라는 옵션 을 추가해주시기 바랍니다. allow..
Ubuntu 에서 apt-get 으로 vsftp 를 설치 후 아래와 같이 셋팅을 했음에도 530 Login incorrect. ftp: Login failed. 에러가 발생한다면 anonymous_enable=NO local_enable=YES /etc/passwd 에서 사용자의 상태를 체크하여 보시기 바랍니다. 만약 passwd 사용자 정보 끝에 아무것도 입력이 되어 있지 않을경우에도 530 에러가 발생할수 있습니다. 아래와 같이 끝에 /bin/bash 를 추가해주시면 정상적으로 로그인이 가능 합니다. exampleuser:x:1002:1002::/home/exampleuser: exampleuser:x:1002:1002::/home/exampleuser:/bin/bash 530 에러의 경우 비밀번호가..
Ubuntu 에서 vsftp 를 이용하여 ftp 를 만드는 방법입니다. ssh 설치시 vsftp 를 설치하지 않더라도 sftp 를 사용 할수 있지만 간단하게 사용자를 특정 폴더에 가둔다거나 하는 기능은 vsftp 의 기능이 편리 하기에 저는 간단하게 사용할때 사용합니다. 1. 설치 하기 apt-get install vsftp 를 이용하여 편리하게 설치가 가능합니다. $ apt-get install vsftpd 2. 설정하기 이제 설정할 차례 입니다. 설정파일은 /etc/vsftpd.conf 에 있으니 참고하시기 바라빈다. vim 혹은 자주 사용하시는 텍스트 에디터로 파일을 열어 줍니다. $ vim /etc/vsftpd.conf 파일을 열으신 후 아래와 같이 필수 업션을 몇가지 설정해 주시기 바랍니다. a..
Ubuntu Server 를 이용하여 Torrent 를 이용할수 있는 Transmission의 설치 및 사용 방법입니다. 여기서는 서버 사이트에 client 를 깔고 transmission-remote 를 실행하여 원격으로 사용하는 방법에 대해서 설명하겠습니다. 1. Ubuntu Server에 transmission 설치하기 설치는 간단하게 apt-get 을 이용하겠습니다. 우선 아래의 명령어로 저장소를 업데이트 해주도록 합니다. sudo apt-get install python-software-properties sudo add-apt-repository ppa:transmissionbt/ppa sudo apt-get update 모두 진행 되었다면 apt-get install 을 이용하여 본격적으로 ..
Wordpress 는 PHP 로 되어있는 CMS ( Content Management System ) 로 개인블로그 혹은 회사 홈페이지를 만들거나 여러가지 유용한 용도로 사용이 가능합니다. Wordpress는 설치형 혹은 https://wordpress.com/ 에서 Tistory 와 같이 서비스서 이용이 가능하지만 용량과 같은 제한이 있습니다. 여기서는 서비스로 이용하는 것이 아닌 사설 서버 혹은 클라우드 서버에서 구성하는 방법에 대해 설명해드리겠습니다. *서비스로 이용하실경우 아래와 같이 요금을 지불하셔야 합니다. 일단 서비스 개발에 관한 기초적인 지식이 있으시다면 digitalocean 과 같은 저렴한 소형 서버를 추천드립니다. 우선 이 포스팅에서는 사용법이 아닌 설치형 워드프레스를 설치하기위한 포..
- Total
- Today
- Yesterday
- 맥
- 에러
- php
- it
- 튜토리얼북
- 웹 개발자
- SNS
- 게임 개발
- JavaScript
- 개발자
- 개발
- 인터넷
- 우분투
- 웹 서버
- 서버 개발
- html
- 설치
- Developer
- Database
- cocos2d-x
- 게임
- ubuntu
- 웹
- 데이터베이스
- mac
- 웹 개발
- Tutorialbook
- Nodejs
- 서버
- Laravel
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |