2023년 1월 30일 월요일

Windows to ubuntu ssh (powershell - ssh) 연결

 1. ubuntu - ip 확인(내부의 ip주소)

> ip a


2. SSH server설치

# ssh 설치
> sudo apt update
> sudo apt install openssh-server

# ssh 상태 확인
> sudo systemctl status ssh

# ssh 실행
> sudo systemctl start ssh

# ssh 중지
> sudo systemctl stop ssh


3. SSH server port 확인

# ssh port 확인 (실제 서비스되고 있는 port 확인)
> sudo ss -tulpn | grep ssh


4. 우분투 방화벽 설정

# 우분투 방화벽 설정 해제
> sudo ufw allow ssh


5. SSH server 연결

# ssh 연결 (우분투에서 바로 해봄)
> sudo ssh username@내부_ip_address -p sshportnumber


6. 공유기(iptime) 포트포워딩

# iptime 접속
chrome: 192.168.0.1 ->login/pw

# Port forwarding
Advanced Setup->NAT/Routing->Port Forwarding
Internal IP, External port, Internal port값을 설정(실제 서비스되고 있는 port번호)


7. window powershell 접속(원격)

# ssh 연결
> ssh username@외부_ip_address -p sshportnumber



참고 자료


2022년 9월 4일 일요일

git 사용법

처음

1. github에 들어가서 New로 새로운 repository(이름을 Processor라고 하자)를
만듬 (생성후 나오는 명령셋 참조)
2. 적당한 위치에 폴더를 만들고, vscode로 이 폴더를 오픈함
3. 폴더에서 필요한 프로그램을 작성
4. vscode의 New Terminal로 터미날을 오픈

5. 아래의 명령을 차례로 입력 (처음 업로드)
git config user.email "djk*****@d***.net"
git config user.name "djk*****"
git init (".git" 라는 폴더가 생기고현재 폴더의 변화를 추적하기 시작함)
git add filename (or git add .): 전체를 업로드하거나 변화된 파일만
업로드를 위해 파일을 staging함
git commit -m "First upload"
git remote add origin "https://github.com/galmegy/Processor.git"
(github repository와 연결)
git status: staging 상태 확인
git push -u origin master: 업로드 실행


재 수정

파일 수정 후 업로드를 원하면
git add ...부터 끝까지만 반복하면 됨


새로운 Branch

git branch Detector
git switch Detector
git status (Detector branch에 와 있음을 알 수 있음)



2022년 1월 26일 수요일

Windows 10, Anaconda환경에서 Mujoco 설치

 1. https://mujoco.org/download 에서 v.2.1.0버전(windows x86_64)을 다운 받는다.

 - C:\Users\홈경로\.mujoco 폴더를 만들고 여기에 mujoco210폴더 아래 압축을 푼다.

2. https://www.roboti.us/license.html에서 Activation key를 찾아 다운 받는다 (mjkey.txt).

 - 파일을  C:\Users\홈경로\.mujoco\mujoco210, C:\Users\홈경로\.mujoco\mujoco210\bin 복사

 - bin폴더 내에서 

   > simulate ../model/humanoid.xml 실행하면

   창이 뜨고 사람이 쓰러지는 화면이 나오면 설치가 잘 된 것임.

3. conda의 가상환경 py38로 들어가서 경로를 설정 후 mujoco-py 설치.

  > set path=C:\Users\홈경로\.mujoco\mujoco210\bin;%PATH%

  > pip install mujoco-py=2.1 설치. (안되면 =2.1 제거하고 시도)

 4. python 실행하고, 아래 명령 실행하면 필요한 컴파일 진행 

   (import mujoco_py를 처음 실행 시에 여러가지 컴파일 자동 실행됨)

import mujoco_py
import os
mj_path = mujoco_py.utils.discover_mujoco()
xml_path = os.path.join(mj_path, 'model', 'humanoid.xml')
model = mujoco_py.load_model_from_path(xml_path)
sim = mujoco_py.MjSim(model)
print(sim.data.qpos)

sim.step()
print(sim.data.qpos)

[참조] 
1. MuJoCo 설치

2021년 11월 10일 수요일

Pyside2 기초

- QT: c/c++언어 기반의 gui 라이브러리

- PyQT: QT와 다른 회사서 만듬

- PySide2: QT 회사에서 만듬

-------------------------------

from PySide2.QtWidgets import *

# 기본 절차: (1) 응용프로그램(App) 시작, (2) window 생성, (3) layout 생성,
#           (4) 위젯(버턴, 라벨, ...) 만듬, (5) layout에 위젯 추가, 
#           (6) layout을 window에 넘김, (7) window 출력, (8) App 실행

app = QApplication([]) # 응용 프로그램 시작
window = QWidget() # window를 생성
layout = QVBoxLayout() # layout을 생성

button = QPushButton("I'm just a Button man") # button 하나 만듬
layout.addWidget(QLabel('Hello World!')) # label을 layout에 추가

layout.addWidget(button) # button을 layout에 추가
window.setLayout(layout) # layout을 window로 넘김

window.show() # window 화면 출력
app.exec_() # 응용 프로그램 실행


참고

1. Medium



2021년 9월 22일 수요일

Networks

- DHCP 서버는 유동 ip 주소를 자동으로 할당, 회수 해주는 서버

- DNS 서버는 숫자 ip와 문자 ip를 바꾸어 주는 서버

- 허브, 스위치, 라우터

  허브: 물리적 연결만 표현, 지능 없음. 들어오는 신호는 모든 연결부로 나감

  스위치: 허브와 유사. 지능 가짐, 입력 데이터는 필요한 곳으로만 나감

  라우터: 허브와 스위치는 내부망에 사용하나 라우터는 외부와 연결을 중계

     class A: 10.0.0.0~10.255.255.255
     class B: 172.16.0.0~172.31.255.255
     class C: 192.168.0.0~192.168.255.255
          사설망 주소는 모두 192.168.~  시작함.   

- 서브넷 마스크: ip 주소에 마스크를 씌워 네트워크 범위와 Host범위를 나누어줌

- 게이트웨이: iptime 공유기 주소

- DNS서버: 8.8.8.8(구글 DNS)



2021년 3월 28일 일요일

Ubuntu에서 Celery

 [설치]

$ sudo apt install python-celery-common -y
$ sudo apt-get install redis-server -y
$ pip install celery
$ pip install redis

[코딩]

# tasks.py
from celery import Celery

BROKER_URL = 'redis://localhost:6379/0'
CELERY_RESULT_BACKEND = 'redis://localhost:6379/0'
app = Celery('tasks', broker=BROKER_URL, backend=CELERY_RESULT_BACKEND)

@app.task
def add(x, y):
  return x + y


[실행]

$ celery -A tasks worker --loglevel=info

[호출]

>>> from tasks import add
>>> add.delay(4, 4)
>>> result = add.delay(4, 4)
>>> result.ready()
>>> result.get()


[참고]

1. 비동기 처리




2021년 2월 22일 월요일

Django RestFramework 스터디

 (1) OneQ 웹 프레임워크 Django(python) 개념 정리

- 프레임워크: lib는 사용자가 호출. framework는 framework이 사용자 코드를 호출


(2) OneQ 웹 프레임워크 Django 실습


(3) [T24] 장고 01강_웹프로그래밍과 Django


-여기 까지는 DJango에 대한 부분으로 상기한 링크 자료만 학습하면 됨. 

아래는 Django REST framework에 대한 부분으로 실습 해보아야 됨.

- DJango 학습 시에 유의할 사항은 django project(1개만 있음) 하에서 여러 app이 존재할 수 있다는 것을 이해. 

app은 user관리, 결제처리, 등등... 필요에 따라 추가할 수 있으며 folder단위로 관리됨, 재 사용도 가능하다. 


(4) [이 부분이 가장 중요] REST API Guide - Productionizing a Machine Learning model by creating a REST API with Python Django and Django REST Framework 


(5) Django  REST framework Quickstart


[참고] 자주 나오는 Serializer 클래스는 Model 데이터를 json으로 바꾸는 역할을 한다. 이 클래스를 만들고 model 데이터를 이 클래스 객체에 던져주면 json으로 바뀌어서 리턴된다. 


[References]

1. Database 연동하기 - Model설계, Migration