시프티 연장근로수당 계산기

안녕하세요

제가 근무하고 있는 회사에서 최근 근무관리시스템으로 시프티(Shiftee) 라는 시스템을 도입하였습니다.

주 52시간제를 도입하면서 같이 도입하게 되었는데 이와함께 연장근로수당이 생겼습니다.

그래서 연장근로수당을 쉽게 계산할수 있는 시프트 연장근로수당 계산기 크롬 익스텐션을 만들었습니다.

시프티에 한번 로그인 하신 이후에 불러오기를 누르시면 해당 월의 연장근로수당을 자동으로 계산하여 보여주게 됩니다.

연봉 정보와 시급 정보는 해당 사용자의 컴퓨터에만 저장되며 별도로 전송되거나 수집되지 않습니다.

사용하시면서 문제가 있을 경우 개발자 이메일로 문의 부탁드립니다.

참고로 제 연봉은 1억이 아니오니 놀라지 마시기 바랍니다.

 

https://chrome.google.com/webstore/detail/%EC%8B%9C%ED%94%84%ED%8B%B0-%EA%B3%84%EC%82%B0%EA%B8%B0/hcdhhcfinhjpdedhlkeaafncegehjbce?hl=ko&authuser=0

 

Solve media file streaming issue with Python Flask

This is how to solve mobile file streaming issue with Python Flask.

If you serve video file with Python Flask, Flask serve the media file with 206 Partial Content, but Connection is set to Close. If you want to serve media file like streaming service, Python Flask cannot serve to iOS or Android media file like streaming.

On iOS or Android phone, browser said can not play this media file like this image.

To solve this problem, you should serve media file with Connection: Keep-Alive.

But Python Flask does not support this feature.

So Here is a solution.
It needs Nginx and Gunicorn.
Nginx will serve the media file, but it will prevent to access from not authorized access using “internal” function in Nginx.
“internal” function allows you to accept traffic only from the Python Flask code(not direct access).

The media file serving flow
User -> Nginx -> Gunicorn -> Authentication check and redirect to serve media file -> Response Media Data from Nginx

Nginx Config

server {
listen 80;
server_name yourserver.com;

location /download_file/ {
internal; # Receive only internal redirect
alias /file/path/in/your/server/;
}

# For Gunicorn Serving Gateway
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;

if (!-f $request_filename) {
proxy_pass http://localhost:12345;
break;
}
}
}

Python Code

@app.route('/download/')
def download(filename):
if not authentication():
abort(404)

redirect_path = '/download_file/' + filename

response = make_response("")
response.headers["X-Accel-Redirect"] = redirect_path
response.headers["Content-Type"] = mimetypes.guess_type(filename)
return response

Then iOS and Android browser can play the media file served from your server.

Reference :
1. http://stackoverflow.com/questions/19421014/error-occurred-in-mobile-when-send-video-using-send-file-in-python-flask
2. http://mattspitz.me/2013/11/20/serving-authenticated-media-with-nginx.html

티스토리에서 워드프레스로 이전하기

티스토리가 2016년 12월 부터는 백업기능의 지원을 중단하여 블로그 백업을 할 수 없게 되었습니다.
저 또한 워드프레스로 블로그를 이전하면서 이 영향을 받았는데요, 기존에 받아놓은 백업파일이 전혀 없어 다른 방법을 찾아야 했습니다.
Github 나 Gist 를 검색을 해보아도 아직까지 다른 방법을 올려놓은 분들이 계시지 않아 직접 만들게 되었습니다.
아마 다른 방법을 찾을수 있는 분들은 이미 워드프레스로 옮기셨거나 블로그를 접으신것 같습니다.

티스토리에서 워드프레스로 블로그를 이전하는 방법은 Github Gist 에 작성해서 올려놓았습니다.
아래 주소에서 확인하실수 있습니다.

다만 개발에 대한 지식이 없으시면 진행하기 많이 힘듭니다.
Python 과 SQL 과 웹서버에 대한 이해가 필요합니다.

https://gist.github.com/taylor224/5eef306afaef7a7a136c66daecba6e41

본 글에 대한 별도의 문의는 받지 않습니다.