deb 파일은 ubuntu나 debian, fedora 같은 리눅스 배포판에서 package를 압축한 포맷이다.

이 압축된 패키지를 해제하는 2가지 방법을 설명한다.

 

방법 1) dkpg로 압축 해제

dpkg -x filename.deb directory_name

- filename.deb : debian 압축파일명

- directory_name : 압축을 해제할 디렉토리명

 

mysql jdbc driver 파일을 다운로드하고 압축을 해제하는 예시를 설명한다.

mysql jdbc driver 파일을 다운로드한다. 파일 경로는 변경될 수 있으니, https://downloads.mysql.com/archives/c-j/ 페이지에서 다운로드 경로를 확인하고 본인이 다운로드 하려는 MySQL Product 버전과 OS 버전에 맞는 jdbc 드라이버를 다운로드한다.

본 문서에서는 debian Linux 10 용 mysql connector 8.0.27 버전을 다운로드했다.

wget https://downloads.mysql.com/archives/get/p/3/file/mysql-connector-java_8.0.27-1debian10_all.deb

 

예시) 아래 예시는 mysql jdbc Driver 파일(mysql-connector-java_8.0.28-1debian10_all.deb)을 mysql_jdbc 디렉토리에 압축해제하는 명령어이다.

dpkg -x mysql-connector-java_8.0.28-1debian10_all.deb mysql_jdbc

 

방법 2) ar 과 tar로 압축해제

ar 명령어 사용을 위해 binutils 패키지를 설치한다.

$ sudo apt install binutils

 

1. extract deb file

  - command : ar vx package.deb

  - result : data.tar.gz 또는 data.tar.xz, control.tar.xz, debian-binary 파일이 생성됨

 

2. extract tar file

  - command : tar -xzvf data.tar.gz 또는 tar xvfh data.tar.xz

  - result : extracted files

  ref> 단순히 내용만 확인하고 싶을 때엔 다음의 명령어을 사용한다.

    tar -tzvf data.tar.gz 또는 tar tvfh data.tar.xz

 

 

 

 

 

 

 

 

 

'이것저것' 카테고리의 다른 글

리눅스 포트 사용하는 프로세스 확인  (0) 2022.02.17
Power BI 설치 및 사용하기  (0) 2022.02.15
SQLServer database 이동  (0) 2022.01.25
WSL2에 nginx 설치하기  (0) 2022.01.23
httpie  (0) 2022.01.18

리눅스에서 특정 포트를 사용하는 프로세스를 확인하는 명령어입니다.

 

netstat -ntlp | grep :포트번호

$ netstat -ntlp | grep 3306
tcp        0      0 10.178.0.2:3306         0.0.0.0:*               LISTEN
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN

 

'이것저것' 카테고리의 다른 글

Debian Linux - deb 파일 풀기  (0) 2022.03.16
Power BI 설치 및 사용하기  (0) 2022.02.15
SQLServer database 이동  (0) 2022.01.25
WSL2에 nginx 설치하기  (0) 2022.01.23
httpie  (0) 2022.01.18

필수 조건

'이것저것' 카테고리의 다른 글

Debian Linux - deb 파일 풀기  (0) 2022.03.16
리눅스 포트 사용하는 프로세스 확인  (0) 2022.02.17
SQLServer database 이동  (0) 2022.01.25
WSL2에 nginx 설치하기  (0) 2022.01.23
httpie  (0) 2022.01.18

시스템 데이터베이스 데이터나 로그 파일을 이동하려면 다음 단계를 따릅니다.

이 절차는 master 및 리소스 데이터베이스를 제외한 모든 시스템 데이터베이스에 적용됩니다.

 

터베이스 데이터나 로그 파일 이동

  1. 이동할 각 파일에 대해 다음 문을 실행합니다.
    ALTER DATABASE database_name MODIFY FILE ( NAME = logical_name , FILENAME = 'new_path\os_file_name' )  
    
  2. SQL Server 인스턴스를 중지하거나 시스템을 종료합니다.
  3. 파일을 새 위치로 이동하고 SQL Server 서비스 계정에 액세스 권한이 있는지 확인합니다.
  4. SQL Server 인스턴스나 서버를 다시 시작합니다. 

다음 쿼리를 실행하여 파일 변경 내용을 확인합니다.

SELECT name, physical_name AS CurrentLocation, state_desc  
FROM sys.master_files  
WHERE database_id = DB_ID(N'<database_name>');  

 

master 데이터베이스 이동

  1. 시작 메뉴에서 모든 프로그램Microsoft SQL Server구성 도구 를 차례로 가리킨 다음 SQL Server 구성 관리자 를 클릭합니다.
  2. SQL Server 서비스 노드에서 SQL Server 인스턴스(예: SQL Server(MSSQLSERVER) )를 마우스 오른쪽 단추로 클릭한 다음 속성 을 선택합니다.
  3. SQL Server( instance_name ) 속성 대화 상자에서 시작 매개 변수 탭을 클릭합니다.
  4. 기존 매개 변수 상자에서 -d 매개 변수를 선택합니다. 시작 매개 변수 지정 상자에서 매개 변수를 마스터 ‘데이터’ 파일의 새 경로로 변경합니다. 업데이트 를 클릭하여 변경 내용을 저장합니다.
  5. 기존 매개 변수 상자에서 -l 매개 변수를 선택합니다. 시작 매개 변수 지정 상자에서 매개 변수를 마스터 ‘로그’ 파일의 새 경로로 변경합니다. 업데이트 를 클릭하여 변경 내용을 저장합니다.
  6. ## E:\SQLData 로 변경할 경우
    -dC:\Program Files\Microsoft SQL Server\MSSQL<version>.MSSQLSERVER\MSSQL\DATA\master.mdf
    를 다음과 같이 변경합니다.
    -dE:\SQLData\master.mdf
    
    -lC:\Program Files\Microsoft SQL Server\MSSQL<version>.MSSQLSERVER\MSSQL\DATA\mastlog.ldf
    를 다음과 같이 변경합니다.
    -lE:\SQLData\mastlog.ldf
  7.  데이터 파일의 매개 변수 값은 -d 매개 변수 뒤에 와야 하고 로그 파일의 값은 -l 매개 변수 뒤에 와야 합니다. 다음 예에서는 마스터 데이터 파일의 기본 위치에 대한 매개 변수 값을 보여 줍니다.
  8. 확인 을 클릭하여 변경 내용을 영구적으로 저장하고 SQL Server( instance_name ) 속성 대화 상자를 닫습니다.
  9. 인스턴스 이름을 마우스 오른쪽 단추로 클릭하고 SQL Server 중지 를 선택하여 인스턴스를 중지합니다.
  10. master.mdf 및 mastlog.ldf 파일을 새 위치로 이동합니다.
  11. SQL Server인스턴스를 다시 시작합니다.

다음 쿼리를 실행하여 master 데이터베이스에 대한 파일 변경 내용을 확인합니다.

SELECT name, physical_name AS CurrentLocation, state_desc  
FROM sys.master_files  
WHERE database_id = DB_ID('master');  
GO  

 

 

SQL Server 에이전트 로그 경로를 변경

  1. SQL Server Management Studio의 개체 탐색기에서 SQL Server 에이전트 를 확장합니다.
  2. 오류 로그 를 마우스 오른쪽 단추로 클릭한 다음 구성 을 클릭합니다.
  3. SQL Server 에이전트 오류 로그 구성 대화 상자에서 SQLAGENT.OUT 파일의 새 위치를 지정합니다. 기본 위치는 C:\Program Files\Microsoft SQL Server\MSSQL<version>.<instance_name>\MSSQL\Log\입니다.

'이것저것' 카테고리의 다른 글

리눅스 포트 사용하는 프로세스 확인  (0) 2022.02.17
Power BI 설치 및 사용하기  (0) 2022.02.15
WSL2에 nginx 설치하기  (0) 2022.01.23
httpie  (0) 2022.01.18
curl  (0) 2022.01.18

엔진엑스(Nginx)는 동시접속 처리에 특화된 웹 서버이다.

트래픽이 많은 웹 사이트를 호스팅 하는데 주로 사용되는 가볍고 Apache보다 동작이 단순하며 강력하다.

오픈 소스 웹 서버로, 웹 서버로서의 초기 성공 이후 지금은 리버스 프록시 , HTTP 캐시 및 로드 밸런서로도 사용됩니다

설치환경

  • WSL2 Ubuntu 20.04.3 LTS

 

설치

1) 서버의 패키지 목록 업데이트

sudo apt update
sudo apt upgrade

2) Nginx 설치

sudo apt install nginx

3) 실행

sudo service nginx start
sudo service nginx status

4) Nginx Version 확인

sudo dpkg -l nginx 
apt list nginx

5) Nginx 접속

브라우저로 http://localhost 에 접속한다. 아래와 같은 화면이 뜨면 정상 설치되고 기동된 것이다.

 

 

 

 

 

'이것저것' 카테고리의 다른 글

Power BI 설치 및 사용하기  (0) 2022.02.15
SQLServer database 이동  (0) 2022.01.25
httpie  (0) 2022.01.18
curl  (0) 2022.01.18
Windows Powershell 항상 admin으로 실행하기  (0) 2022.01.02

HTTPie는 HTTP 명령줄 클라이언트입니다. 

HTTPie는 테스팅, 디버깅 및 API 및 HTTP 서버와 상호 작용하도록 설계되었습니다. http 및 https 명령을 사용하면 임의의 HTTP 요청을 만들고 보낼 수 있습니다. 

 

Main features - HTTPie 2.6.0 (latest) docs

Expressive and intuitive syntax Formatted and colorized terminal output Built-in JSON support Forms and file uploads HTTPS, proxies, and authentication Arbitrary request data Custom headers Persistent sessions Wget-like downloads Linux, macOS, Windows, and

httpie.io

주요특징

  • 직관적인 구문
  • 형식 및 색상이 지정된 출력
  • 내장 JSON 지원
  • Form 및 file 업로드
  • HTTPS, 프록시 및 인증
  • 임의 요청 데이터
  • 사용자 정의 헤더
  • 영구 세션
  • Wget과 유사한 다운로드
  • Linux, macOS, Windows 및 FreeBSD 지원
  • 플러그인

 

설치하기

Python 3.6 이상의 버전이 설치되어 있어야 합니다.python --version 명령어로 python 버전을 확인합니다.

아래 명령어로 httpie 를 설치합니다.

$ python3 -m pip install --upgrade pip wheel
$ python3 -m pip install httpie
 

 

Windows 에 설치

Chocolatey 로 설치합니다. chocolatey 설치는 chocolatey installation 를 참고합니다.

$ choco install httpie
 
# Upgrade httpie
$ choco upgrade httpie
 

Linux 에 설치

Debian and Ubuntu

$ apt update
$ apt upgrade httpie
 

Fedora

# Install httpie
$ dnf install httpie
 
# Upgrade httpie
$ dnf upgrade httpie
 

CentOS and RHEL

# Install httpie
$ yum install epel-release
$ yum install httpie
 
# Upgrade httpie
$ yum upgrade httpie
 

 사용법

Synopsis:

$ http [flags] [METHOD] URL [ITEM [ITEM]]
 

Hello World:

$ https httpie.io/hello
 옵션 정보를 http --help 명령어를 수행하면 볼 수 있습니다.

 

예제

Custom HTTP methodHTTP headers and JSON data:

$ http PUT pie.dev/put X-API-Token:123 name=John
 

Submitting forms:

$ http -f POST pie.dev/post hello=World
 
 
 
See the request that is being sent using one of the output options:
$ http -v pie.dev/get
 

Build and print a request without sending it using offline mode:

$ http --offline pie.dev/post hello=offline
 

Use GitHub API to post a comment on an issue with authentication:

$ http -a USERNAME POST https://api.github.com/repos/httpie/httpie/issues/83/comments body='HTTPie is awesome! :heart:'
 

Upload a file using redirected input:

$ http pie.dev/post < files/data.json
 

Download a file and save it via redirected output:

$ http pie.dev/image/png > image.png
 

Download a file wget style:

$ http --download pie.dev/image/png
 

Use named sessions to make certain aspects of the communication persistent between requests to the same host:

$ http --session=logged-in -a username:password pie.dev/get API-Key:123
 
 
$ http --session=logged-in pie.dev/headers
 
 

Set a custom Host header to work around missing DNS records:

$ http localhost:8000 Host:example.com
 
 

HTTP method

The name of the HTTP method comes right before the URL argument:

$ http DELETE pie.dev/delete
 
 

Which looks similar to the actual Request-Line that is sent:

DELETE /delete HTTP/1.1
 

In addition to the standard methods (GET, POST, HEAD, PUT, PATCH, DELETE, etc.), you can use custom method names, for example:

$ http AHOY pie.dev/post
 
 

There are no restrictions regarding which request methods can include a body. You can send an empty POST request:

$ http POST pie.dev/post

You can also make GET requests contaning a body:

$ http GET pie.dev/get hello=world
 
 

Optional GET and POST

The METHOD argument is optional, and when you don’t specify it, HTTPie defaults to:

  • GET for requests without body
  • POST for requests with body

Here we don’t specify any request data, so both commands will send the same GET request:

$ http GET pie.dev/get
 
 
$ http pie.dev/get

Here, on the other hand, we do have some data, so both commands will make the same POST request:

$ http POST pie.dev/post hello=world
 
 
$ http pie.dev/post hello=world
 
 

Request URL

The only information HTTPie needs to perform a request is a URL.

The default scheme is http:// and can be omitted from the argument:

$ http example.org
# => http://example.org
RUN
 

HTTPie also installs an https executable, where the default scheme is https://:

$ https example.org
# => https://example.org
RUN
 

Querystring parameters

If you find yourself manually constructing URLs with querystring parameters on the terminal, you may appreciate the param==value syntax for appending URL parameters.

With that, you don’t have to worry about escaping the & separators for your shell. Additionally, any special characters in the parameter name or value get automatically URL-escaped (as opposed to the parameters specified in the full URL, which HTTPie doesn’t modify).

$ http https://api.github.com/search/repositories q==httpie per_page==1
RUN
 
GET /search/repositories?q=httpie&per_page=1 HTTP/1.1
 

URL shortcuts for localhost

Additionally, curl-like shorthand for localhost is supported. This means that, for example, :3000 would expand to http://localhost:3000 If the port is omitted, then port 80 is assumed.

$ http :/foo
RUN
 
GET /foo HTTP/1.1
Host: localhost
 
$ http :3000/bar
RUN
 
GET /bar HTTP/1.1
Host: localhost:3000
 
$ http :
RUN
 
GET / HTTP/1.1
Host: localhost
 

 

 

'이것저것' 카테고리의 다른 글

SQLServer database 이동  (0) 2022.01.25
WSL2에 nginx 설치하기  (0) 2022.01.23
curl  (0) 2022.01.18
Windows Powershell 항상 admin으로 실행하기  (0) 2022.01.02
스택(Stack)과 힙(Heap) 차이점  (0) 2022.01.02

 

서버와 통신할 수 있는 커맨드 명령어 툴입니다. 웹개발에 매우 많이 사용되고 있는 무료 오픈소스입니다.

curl은 수 많은 프로토콜을 지원합니다. 

URL로 데이터를 전송하기 위한 명령줄 도구 및 라이브러리입니다.

 

 

Curl 설치

현재 대부분의 Linux 배포 환경에는 curl 패키지가 미리 설치되어 있습니다. 

Curl이 설치되지 않은 경우 배포의 패키지 관리자를 사용하여 Curl을 쉽게 설치할 수 있습니다.

Ubuntu 및 Debian에 Curl을 설치

sudo apt update
sudo apt install curl

 

CentOS 및 Fedora에 Curl을 설치

sudo yum install curl

 

Window에 Curl을 설치

curl은 https://curl.haxx.se/download.html 에서 window binary 버전을 받아 설치하거나 윈도우에 chocolatey가 설치되어 있으면 아래 명령어로 설치합니다.

choco install curl

 

 

 

Curl 사용법

curl 명령의 구문은 다음과 같습니다.

  • curl [option] [URL]
curl [options] [URL...]

 

가장 간단한 형태로 옵션 없이 호출할 경우, Curl은 지정된 리소스를 표준 출력에 표시합니다.

이 명령은 터미널 창에 example.com 홈페이지의 소스 코드를 인쇄합니다.

프로토콜을 지정하지 않은 경우 HTTP로 기본 설정됩니다.

curl https://example.com/

 

URL의 HTTP 헤더를 가져오기

HTTP 헤더는 사용자 에이전트, 내용 유형 및 인코딩과 같은 정보를 포함하는 콜론으로 구분된 키- 값입니다. 헤더는 요청 또는 응답과 함께 클라이언트와 서버 간에 전달됩니다.

-I 옵션을 사용하여 지정된 url의 HTTP 헤더만 가져옵니다.

curl -I https://example.com/

 

-o 옵션을 사용하여 url 내용을 파일로 기록합니다.

curl -o example.html https://example.com/

 

 

 

curl 주요 options (http/https 관련 옵션만 정리)

short long 설명 비고
-k --insecure https 사이트를 SSL certificate 검증없이 연결한다. wget 의 --no-check-certificate 과 비슷한 역할 수행
-l --head HTTP header 만 보여주고 content 는 표시하지 않는다  
-D --dump-header <file> <file> 에 HTTP header 를 기록한다.  
-L --location 서버에서 HTTP 301이나 HTTP 302 응답이 왔을 경우 redirection URL 로 따라간다.
--max-redirs 뒤에 숫자로 redirection 을 몇 번 따라갈지 지정할 수 있다. 기본 값은 50이다
curl -v daum.net 을 실행하면 결과값으로 다음과 같이 HTTP 302 가 리턴된다.
< HTTP/1.1 302 Object Moved
< Location: http://www.daum.net/
-L 옵션을 추가하면 www.daum.net 으로 재접속하여 결과를 받아오게 된다.
-d --data HTTP Post data FORM 을 POST 하는 HTTP나 JSON 으로 데이타를 주고받는 REST 기반의 웹서비스 디버깅시 유용한 옵션이다
-v --verbose  동작하면서 자세한 옵션을 출력한다.  
-J --remote-header-name 어떤 웹서비스는 파일 다운로드시 Content-Disposition Header 를 파싱해야 정확한 파일이름을 알 수 있을 경우가 있다. -J 옵션을 주면 헤더에 있는 파일 이름으로 저장한다. curl 7.20 이상부터 추가된 옵션
-o --output FILE curl 은 remote 에서 받아온 데이타를 기본적으로는 콘솔에 출력한다. -o 옵션 뒤에 FILE 을 적어주면 해당 FILE 로 저장한다. (download 시 유용)  
-O --remote-name file 저장시 remote 의 file 이름으로 저장한다. -o 옵션보다 편리하다.  
-s --silent silent모드. 진행 내역이나 메시지등을 출력하지 않는다. -o 옵션으로 remote data 도 /dev/null 로 보내면 결과물도 출력되지 않는다 HTTP response code 만 가져오거나 할 경우 유리
-X --request Request 시 사용할 method 종류(GET, POST, PUT, PATCH, DELETE) 를 기술한다.  
-i --include 응답에 Content 만 출력하지 않고 서버의 Reponse 도 포함해서 출력한다. (디버깅에 유용)  

출저: https://www.lesstif.com/pages/viewpage.action?pageId=14745703

 

 

 

 

 

 

httpie (click)

HTTPie는 사용자에게 더 친숙하고 발전된 명령줄 HTTP 클라이언트입니다. 또한 보다 표현력 있고 색상으로 구분된 UI가 포함되어 있습니다. 

    1. curl 에 비해 사용이 쉬움
    2. json 지원 기능 내장
    3. 출력을 포맷팅하여 보여주므로 가독성이 뛰어남
    4. Form 과 file 업로드가 쉬움
    5. HTTP 인증 및 커스텀 헤더 설정등

'이것저것' 카테고리의 다른 글

WSL2에 nginx 설치하기  (0) 2022.01.23
httpie  (0) 2022.01.18
Windows Powershell 항상 admin으로 실행하기  (0) 2022.01.02
스택(Stack)과 힙(Heap) 차이점  (0) 2022.01.02
전처리기  (0) 2021.12.31

Windows Powershell 과 명령창 항상 admin으로 실행하기

 

Windows 10에서 명령 프롬프트 또는 PowerShell 에서 관리자 권한이 필요한 명령어를 수행해야 할 때,

"관리자로 실행" 메뉴를 선택하지 않고, 일반 권한으로 창을 열고

아래 스크린샷과 같이 명령을 실행할 때 "관리자 권한" 오류가 발생한 경험이 있을 겁니다.

sfc 유틸리티를 사용하려면 콘솔 세션을 실행 중인 관리자여야 합니다.

 

이 문서에서는 명령 프롬프트 또는 PowerShell을 항상 관리자로 실행하는 방법을 설명합니다.

명령 프롬프트를 항상 관리자로 실행하는 방법

관리자 권한으로 CMD를 실행하는 두 가지 방법이 있습니다.

1) 바탕 화면 바로 가기 만들기 - 관리자권한 명령 프롬프트 

명령 프롬프트에 대한 바로 가기를 만들려면 바탕 화면으로 이동합니다.

  • 바탕 화면을 마우스 오른쪽 버튼으로 클릭 > 새로 만들기(W) > 바로 가기(S)를 클릭합니다.
  • 상자에 cmd.exe를 입력합니다. 바로 가기 마법사를 완료하면 바탕 화면에 명령 프롬프트 바로 가기가 표시됩니다.
  • 바로 가기를 마우스 오른쪽 버튼으로 클릭하고 속성으로 이동합니다.
  • [바로 가기] 탭에서 [고급] 버튼을 클릭하면 새 팝업 창이 열립니다.
  • "관리자 권한으로 실행(R)"을 체크하고 확인을 클릭합니다.
  • 최종 속성창에서 [확인] 버튼을 클릭합니다.

이제 바탕화면의 바로가기를 통해 명령 프롬프트를 관리자 권한으로 열 수 있습니다.

2) CMD.exe의 고급 속성 변경

바탕 화면에 명령 프롬프트에 대한 바로 가기를 만들고 싶지 않다면 CMD.exe의 속성을 변경하고 작업 표시줄에 고정하면 됩니다.

  • 화면에서 Windows 아이콘을 클릭하고 cmd를 입력합니다.
  • [파일 위치 열기]를 클릭합니다.
  • 명령 프롬프트(cmd.exe)를 마우스 오른쪽 버튼으로 클릭하고 속성으로 이동합니다.
  • [바로가기] 탭 클릭 후 [고급(D)...] 버튼을 클릭하고 팝업 창에서 "관리자 권한으로 실행(R)" 확인란을 선택합니다.
  • 확인을 클릭합니다.

이제 CMD 명령 프롬프트는 항상 관리자 권한으로 실행됩니다.

PowerShell 항상 관리자로 실행하는 방법

항상 관리자 권한으로 PowerShell 프롬프트를 실행하는 두 가지 방법이 있습니다.

1) 바탕 화면 바로 가기 만들기

명령 프롬프트에서 했던 것처럼 PowerShell에서도 동일한 작업을 수행합니다. 바탕 화면에 PowerShell 바로 가기를 만들고 항상 관리자 권한으로 실행합니다.
바탕 화면에서 PowerShell에 대한 바로 가기를 만들려면 바탕 화면으로 이동합니다.

  1. 마우스 오른쪽 버튼으로 클릭 > 새로 만들기 > 바로 가기.
  2. 팝업 창의 상자에 PowerShell을 입력합니다.
  3. 마법사를 완료하면 바탕 화면에 PowerShell 아이콘이 표시됩니다.
  4. PowerShell 아이콘을 마우스 오른쪽 버튼으로 클릭하고 속성을 클릭합니다.
  5. [바로가기] - [고급] 을 클릭하여 "관리자 권한으로 실행" 확인란을 선택합니다.
  6. 확인을 클릭합니다.

이제 바탕화면의 PowerShell 바로가기로 항상 관리자 권한으로 실행할 수 있습니다.

 

2) powershell.exe의 고급 속성 변경

위의 명령 프롬프트와 마찬가지로 Windows 검색 상자에 PowerShell을 입력하고 파일 위치를 엽니다.

  • PowerShell > 속성 > 고급을 마우스 오른쪽 버튼으로 클릭합니다.
  • [바로가기] - [고급] 을 클릭하여 "관리자 권한으로 실행 확인란을 선택합니다.
  • 확인을 클릭한 다음 적용을 클릭하고 다시 확인을 클릭합니다.

이제 PowerShell을 실행 할 때마다 관리자 권한으로 PowerShell을 열 수 있습니다.

 

'이것저것' 카테고리의 다른 글

httpie  (0) 2022.01.18
curl  (0) 2022.01.18
스택(Stack)과 힙(Heap) 차이점  (0) 2022.01.02
전처리기  (0) 2021.12.31
apt vs apt-get 차이  (2) 2021.12.28

+ Recent posts