Webpack 을 사용하면서 개인적으로 자주 사용하게 되는 플러그인 목록 정리


1. CommonsChunkPlugin (https://github.com/webpack/docs/wiki/optimization) 

멀티페이지 어플리케이션의 경우 공통적으로 사용 되는 모듈들을 추적하여 따로 넣는 경우



참고:

1. 웹팩 플러그인 리스트: https://github.com/webpack/docs/wiki/list-of-plugins




1. 

stylesheets/

|

|-- modules/              # Common modules

|   |-- _all.scss         # Include to get all modules

|   |-- _utility.scss     # Module name

|   |-- _colors.scss      # Etc...

|   ...

|

|-- partials/             # Partials

|   |-- _base.sass        # imports for all mixins + global project variables

|   |-- _buttons.scss     # buttons

|   |-- _figures.scss     # figures

|   |-- _grids.scss       # grids

|   |-- _typography.scss  # typography

|   |-- _reset.scss       # reset

|   ...

|

|-- vendor/               # CSS or Sass from other projects

|   |-- _colorpicker.scss

|   |-- _jquery.ui.core.scss

|   ...

|

`-- main.scss            # primary Sass file



참고:

http://thesassway.com/beginner/how-to-structure-a-sass-project


2. 

OpenCV 를 리눅승[서 소스로부터 빌드하여 설치할때 주의할점



리눅스에서 OpenCV를 빌드하다가 아래와 같은 오류가 났었다. 구글링해서도 답이 잘나오지 않아서 cmake 를 위주로 검색을 하다보니 



/usr/bin/ld: /usr/local/lib/libpython2.7.a(abstract.o): relocation R_X86_64_32 against `.rodata.str1.8' can not be used when making a shared object; recompile with -fPIC

/usr/local/lib/libpython2.7.a: could not read symbols: Bad value

collect2: ld returned 1 exit status


다른 파이썬을 의존하는 라이브러리들에서도 경로 문제로 같은 오류가 난다는 것을 힌트로 얻어 해결했다. 


일단 현재 환경에서는 기존 리눅스에서 내장으로 설치된 파이썬을 제외하고 두가지 버전이 설치되어 있다. 

opencv를 빌드하기 위해서 파이썬안의 libpython2.7.a 파일을 참조하게 되는데 두가지 파이썬이 설치되면서 이경우가 꼬인듯이 보였다.


$ locate libpython

$ sudo ln -s "사용하려는 파이썬의 libpython2.7.a 경로" "/usr/local/lib/libpython2.7.a"


EX) 필자는 아나콘다 환경에서 파이썬 환경을 관리하기 때문에 아래와 같이 설정했다.

sudo ln -s "아나콘다설치폴더/lib/python2.7/config/libpython2.7.a" "/usr/local/lib/libpython2.7.a"


참고:

1. http://stackoverflow.com/questions/29397965/unable-to-make-opencv-2-4-9-ubuntu-14-10

2. http://stackoverflow.com/questions/22990769/libpython-error-while-building-youcompleteme

'ETC > Open Source' 카테고리의 다른 글

윈도우즈판 brwe 프로그램 관리툴 Chocolatey  (0) 2016.11.12

Flask 를 윈도우에서 개발하여 리눅스 서버에 배포할 일이 생겼느데


리눅스에서는 잘만 설치되는 Flask 가 윈도우 가상환경에서는 오류를 뱉어내면서 설치되지 않았다.


해결방법이 두가지가 있는데 


setupuptools 의 최신버전에 의한 오류


구글에 알아보니 setupuptools 버전을 낮추는 방법과 Wheel 버전을 다운받아 설치하는 방법이 있었다. 


1. setuptools 를 이용한 방법은 아래와 같다. 

pip install setuptools==21.2.1

pip install flask


2. 설치파일 직접 다운로드 후 setup.py 실행

홈페이지에서 setup 관련 파일을 직접 다운받은후에 python 으로 바로 실행하도록 하자. 




참고:

http://stackoverflow.com/questions/38243633/falied-to-install-flask-under-virutalenv-on-windows-error-2-the-system-cann

리눅스의 내장된 방화벽 규칙인 iptables

 

 

iptables 규칙 수정

$ vim /etc/init.d/iptables

 

iptables 시작 

$ sudo service iptables start

 

iptables 끄기

$ sudo service iptables stop

 

iptables 재시작:

$ sudo service iptables restart

 

 

 

참고:

http://cityattack.tistory.com/47

 

'Linux (Ubuntu based) > CentOS' 카테고리의 다른 글

crontab 리눅스 스케쥴러  (0) 2016.07.19

얼마전에 Typescript 2.0이 발표되었고 가장 큰 변화점이라고 하면 기존 typings 멸령어 대신에 아래와 같이 간편화가 되었다는 것이다.

이제 typings 로 하던 불편함을 npm 에서 바로 실행할수 있게되었다. 


기존이 아래와 같은 방식으로 설치했다면

typings install dt~mocha --global --save


이제 아래와 같은 식으로 설치 가능하다. 

npm install --save-dev @types/lodash

타입스크립트는 처음 설정이 까다롭지만 처음부터 타입스크립트로 개발하다보며 유지보수에 놀라운 효율을 발견하게 될것이다



'Front-End > Typescript' 카테고리의 다른 글

Typescript 네임스페이스 알아보기  (1) 2021.10.12
Window 에 Typescript로 객체 추가하기  (0) 2016.09.21

예외처리를 하다보면 기본 내장된 예외말고 커스텀 익셉션으로 처리할일이 많이 있다. 

Python 에서 Exception 처리를 어떻게 하게 하면 좀더 명확한 메시지 저달을 위해 Exception 에 Dictionary 타입도 전달가능하다

만드는 방법은 매우 간단한다. Exception 을 상속받아서 만들면 끝. 예제코드를 보자

EX)

class FileNotFoundException(Exception):     pass 

위와 같이 선언한후 Exception 필요한부분에 사용하면된다 


try:

raise FileNotFoundException("에러 메시지")

excep FileNotFoundException as e:

print e

와 같이 하면 "에러 메시지" 가 출력된다. 



참고: 

http://stackoverflow.com/questions/1319615/proper-way-to-declare-custom-exceptions-in-modern-python

Jupyter notebook 에서 멀티 파이써 환경에서 동작하는 방법을 구글링을 통해서 알게되었다.


Anaconda 가 미리 설치되어 있는 환경에서 동작한다고 가정한다.



Python 2.7의 경우

conda create -n py27 python=2.7

source activate py27

conda install notebook ipykernel

ipython kernel install --user

configure the python3.5 environment:


Python 3.5의 경우

conda create -n py35 python=3.5

source activate py35

conda install notebook ipykernel

ipython kernel install --user



참고: 

http://stackoverflow.com/questions/30492623/using-both-python-2-x-and-python-3-x-in-ipython-notebook


파이썬으로 무언가 기록을 영구적으로 저장하고 싶을때 자주 쓰게 되는 것으로 ipython notebook 있었다.

Ipython 공식홈페이지에서도 볼수 있다시비 Ipython 은 여러기능을 통합적으로 제공하는 Jupyter 란 이름으로 변경되었는데 


Jupyter 노트북의 사용법에 대해 알아보자 


사용법은 아주 직관적으로 jupyter 패키지를 설치후 바로 이용하면된다. 


pypy 를 통해 jupyter 를 먼저 설치한다 


pip install jupyter


jupyter notebook 파일 이름


* 파이썬 패키지를 설치하다보면 원인 모를 이유에 의해 설치가 되지 않을때가 가끔있다. (컴파일러 및 운영체제 의존및 등등..) 

이럴때 Anaconda 혹은 Canopy 와 같은 vendor 들을 사용하면 패키지가 잘설치된다.

전세계를 타겟팅으로 하는 프로그램을 개발하다보면 각각의 지역별로 시간차이를 이용해서 로직을 작성할때가 있습니다.

그때 기준으로 사용되는 GMT 또는 UTC 를 브라우저 상에서 구하는 방법입니다. 

GMT 와 UTC 는 정확히는 다르지만 표현하는 시간대는 같다고 보시면 됩니다. 

Browser 상에서 new Date() 를 치면 GMT를 기준으로 시간대가 표시되는데 문자를 추출할수 있습니다. 

 

 

 

1. GMT 오프셋 구하기 

 

var offset = new Date().getTimezoneOffset();
console.log(offset);

출력: -540

 

시간 구하기 

offset / 60 

출력: -9

 

2. 현재 GMT 구하기

new Date().toString().match(/([A-Z]+[\+-][0-9]+)/)[1]
출력: GMT+0900

 

 

참고:

1. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getTimezoneOffset

2. http://stackoverflow.com/questions/1091372/getting-the-clients-timezone-in-javascript

 

+ Recent posts