쿠...sal

[컴] 윈도우즈 WSL에서 Linux 설치하기




WSL(Windows Subsystem for Linux) 과 Linux 설치하기

admin 권한으로 명령프롬프트 를 하나 열고, powershell 로 들어가자. 그리고 powershell 에서 아래 명령어를 실행하자. 그리고 windows 를 restart 하자.

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

여기서는 Windows build 16215 이후 버전과 관련해서 설명한다.
  • 버전 정보 확인 : 세팅(설정) > 정보 > OS 빌드

설치

Microsoft Store 를 실행하자. store 를 통해 설치할 수 있다. 참고로 용량도 많지 않은데 엄청 느리다.(약 200MB 정도)

현재 지원하는 windows distros 는 3개 정도이다. 아래 3개중 하나를 택하면 download 가 시작된다.
  • ubuntu
  • sles-12
  • opensuse-42

다운로드가 완료되면 설치를 눌러주자. 설치가 끝나면 아래처럼 계정을 하나 만들게 된다. 계정이 만들어지면 자도 login 이 된 상태로 prompt 를 하나 보여준다.

설치파일 path

linux 는 아래 경로에 있다.

  • 실행파일: c:\Program Files\WindowsApps\CanonicalGroupLimited.UbuntuonWindows_1604.2017.922.0_x64__79rhkp1fndgsc\ubuntu.exe
  • %appdata%\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\
  • root path : %appdata%\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs
참고로 '실행파일' 은 보안(security) 설정을 해서, 실행권한을 넣어줘야 exe 파일을 직접 실행할 수 있다.


root 의 password 변경하기


sudo passwd

repository 변경


해외보다 국내 서버를 쓰는 것이 빠르다고 해서 일단 적어놓는다.
sudo vi /etc/apt/sources.list
  • http://ftp.neowiz.com/ubuntu/  (참고)

MariaDB - Setting up MariaDB Repositories - MariaDB : 여기서 command line 에서 repository 를 추가하는 법을 알려준다.


python-pip3 설치하기

  1. Installing Python 3.6.2 on WSL – smallsec
sudo add-apt-repository ppa:jonathonf/python-3.6
위처럼 repository 를 추가해주자. 그래야 python-pip3 package 를 설치할 수 있다.


기타


  • windows 의 path 는 /mnt/ 에 drive 가 mount 되어 있다. /mnt/c 가 c:\ 이다.



[컴][웹] bootstrap .scss 에서 .css 만들기

부트스트랩/붓스트랩/ 부트스트랩 .scss 에서 .css 로 컴파일 / 빌드 /


bootstrap .scss 에서 .css 만들기

설치

아래 명령어들을 실행하자.

c:\> npm intall bootstrap
c:\> npm intall node-sass
c:\> mkdir scss
c:\> copy .\node_modules\bootstrap\scss\bootstrap.scss .\scss\app.scss
c:\> copy .\node_modules\bootstrap\scss\_variables.scss .\scss\_customVariables.scss

그러면 이제 아래와 같은 파일구조가 된다.
     sass +------> app.scss
          |
          +-----> _customVariables.scss

_customVariables.scss

_customVariables.scss 는 위의 command 를 통해서도 알 수 있듯이 _variables.scss 이다. 여기에 대부분의 변수들이 정의되어 있다. 그러므로 bootstrap 에서 변경할 내용은 여기서 변경하면 된다.

app.scss

일단 app.scss 는 bootstrap.scss 를 그대로 copy 한 것이라서 path 가 맞지 않는다. 그러므로 일단 아래처럼 path 를 수정해 준다.

그리고 여기에 더해 variables 를 @import /i5on9i.blogspot.kr/하는 것을 위에서 만든 _customVariables.scss 를 @import /i5on9i.blogspot.kr/하도록 하자.

/*!
 * Bootstrap v4.0.0 (https://getbootstrap.com)
 * Copyright 2011-2018 The Bootstrap Authors
 * Copyright 2011-2018 Twitter, Inc.
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 */
@import "/i5on9i.blogspot.kr/./node_modules/bootstrap/scss/functions";
@import "/i5on9i.blogspot.kr/customVariables";
@import "/i5on9i.blogspot.kr/./node_modules/bootstrap/scss/mixins";
...

compile

이제 scss 를 compile 해서 css 를 만들자. 아래처럼 하면 된다. compile 을 하면 결과가 standard output 으로 뿌려주기 때문에 >(파이프) 가 필요하다.
c:\> .\node_modules\.bin\node-sass.cmd .\scss\app.scss > .\result.css
만약 compressed version 을 만들고 싶다면 아래처럼 하면 된다.
c:\> .\node_modules\.bin\node-sass.cmd --output-style compressed .\scss\app.scss > .\result.css






[컴][웹][파이썬] celery beat 에서 schedule task 를 dynamically 추가/삭제

셀러리 비트 / celery beat how to add/remove scheduled task dynamically / 원하는 순간에 추가/삭제 / 다이내믹하게  /


celery beat 에서 schedule task 를 dynamically add/remove


git hub issue comment 에서 dynamic 하게 event 를 추가할 때 celery beat 가 새롭게 populate_heap() 을 하도록 하는 법이 나와 있다. 여기서 이야기하는 바는 아래 2가지이다.

  1. populate_heap() 을 schedule 이 변경될 때마다 해주는 것
  2. 그리고 DatabaseSchduler 를 사용해서 add/remove 를 하는 것(참고: Using custom scheduler classes / Celery 4.1.0 documentation)

이중에 1번째 내용은 이슈의 comment에 의하면 4.1 버전에 반영되었다고 한다.

실제로 확인을 해보니 반영이 되어 있다. Populate heap when periodic tasks are changed · celery/[email protected] · GitHub


Scheduler

celery.beat.PersistentScheduler

기본적으로 celery.beat.PersistentScheduler를 사용한다.
$celery -A proj beat -s /home/celery/var/run/celerybeat-schedule

celery.beat.PersistentScheduler 는 celerybeat-schedule file을 이용하는데 shelve database 파일이다. 아래 shelve database 의 '제한사항(retrictions)' 에도 나오지만 concurrent access 를 지원하지 않는다.

django-celery-beat

django-celery-beat 은 database 에 "periodic task schedule" 을 저장할 수 있도록 해준다. 하지만 이것은 Django 를 필요로 한다.

Django 없이 SQLAlchemy 를 이용하는 DatabaseScheduler

사용법은 간단한다.  SQLAlchemy 를 설치하고
$pip install sqlalchemy

아래 code 를 실행해서 DB table 을 생성한다.(참고로, 아래코드는 sqlite 을 사용하는 코드다)(다른 DB  urls 과 관련해서는 여기 를 참고하자.)

참고로 추후에 sqlalchemy_scheduler_models.py 의 engine  도 user/password 를 해줘야 한다. 예를 들면 아래와 같은 식으로 말이다.





## sqlalchemy_scheduler_models.py
...
engine = sqlalchemy.create_engine('sqlite://')
Base = declarative_base(bind=engine)
...

from sqlalchemy import create_engine
from sqlalchemy_scheduler_models import Base


# Create an engine that stores data in the local directory's
# sqlalchemy_example.db file.
engine = create_engine('sqlite:///sqlalchemy_example2.db')
 
# Create all tables in the engine. This is equivalent to "Create Table"
# statements in raw SQL.
Base.metadata.create_all(engine)

그리고 celconfig.py 에 아래를 추가하자.
CELERYBEAT_SCHEDULER = 'yourproject.sqlalchemy_scheduler:DatabaseScheduler'




[컴][웹] css3 효과들

css 효과들 / css transition css3 codes/ css3 demo


css 효과들


150 Amazing Examples of CSS Animation & Effects
31~150

css transition

[컴][웹] gradient 만들때 도움이 되는 사이트들

그라데이션 툴 / gradient sites tool how to generate the gradient background / 배경 그라데이션 백그라운드


출처 : https://designmodo.com/gradients/

gradient 만들때 도움이 되는 사이트들

  • Web Gradients : 좋다. full 로 background 를 채운 모습도 볼 수 있다.
  • Grabient : gradient 를 만들면, css3 code 를 가져올 수 있다.
  • coolhue : 여러 gradient template 들이 있다. css3 code 를 얻을 수 있다.
  • Gradient Buttons with Hover Effects : hover 를 하면 변하는 gradient button 들을 확인할 수 있다.

[컴] 썬더버드에서 mbox file import 하기

thunderbird / .mbox 파일 임포트 / 불러오기


썬더버드 에서 mbox 파일 import 하기

아래 경로에서 Thunderbird 를 다운로드 하고, 설치하자.

이제 썬더버드를 실행하자.



처음에 아래와 같은 팝업이 뜨는데, 그냥 넘기자


여기서 '건너뛰고 기존 메일 사용하기' 를 선택하자. 메일등록을 해야 .mbx 파일을 import 할 수 있다.



처음에 '메일주소'와 '암호'를 넣어서 설정이 안되면, 아래처럼 메뉴가 확장돼서 보이는데, 이때 아래처럼 'SSL/TLS' 와 '암호화된 패스워드' 로 선택하자.

그러면, '고급' 버튼이 활성화 된다.



그래서 '고급'을 누르면 아래처럼 '계정설정' 메뉴가 보여지고, 계정이 등록된다.
계정이 실제로 연결되어 있는 것과는 상관없이 아래처럼 화면에 등록이 되면 된다.





이제 계정설정에서 '개인폴더'를 선택하면 아래그림 처럼 보인다. 여기서 '로컬 디렉토리' 에 있는 경로를 복사하자.




그리고 그 경로로 가서 .mbox 파일을 붙여놓기 하자.




그리고 썬더버드를 껐다가 다시 시작하면 아래처럼 보이게 된다.








[컴][웹] front end interview 인터뷰 질문

면접 질문 / 웹 개발 면접 질문 / 프론트 엔드 개발자 질문

Web Front-end interview Questions


Web front-end developer 에게 할 수 있는 인터뷰 질문들이라고 reddit 에 올라왔다. 내용자체들은 흔히 우리가 web 개발에서 알아두면 좋을 내용이라고 생각한다. 한 번 읽어보자.