Gmail을 웹에서 쓰다 보면 메일 하나를 열었을 때 주소창이 이렇게 바뀐다.https://mail.google.com/mail/u/0/#inbox/QgrcJHrhvXXVhMKdgvFSRvHcMBTKbNVfRtL맨 뒤의 QgrcJHrhvXXVhMKdgvFSRvHcMBTKbNVfRtL. 대소문자가 뒤섞인 길쭉한 문자열이라 그냥 랜덤 세션 토큰 같은 거려니 하고 넘겼다. 그런데 이게 랜덤이 아니었다. 서버에 물어볼 것도 없이, 순수 계산만으로 Gmail API가 쓰는 thread ID를 여기서 복원할 수 있다. 그걸 알게 된 삽질 과정을 짧게 남긴다.1. 발단: URL의 ID를 API에 그대로 넣었더니 터졌다메일 링크를 프로그램으로 다루고 싶었다. 링크에서 ID를 떼어내 Gmail API로 스레드를 조회하면..
dectobin () { num=$1 rem=1 bno="" while [ $num -gt 0 ] do rem=`expr $num % 2` bno=$bno$rem num=`expr $num / 2` done i=`echo ${#bno}` final="" while [ $i -gt 0 ] do i=$(( $i - 1 )) rev=`echo ${bno:$i:1}` final=$final$rev done final=`printf "%08d" $final` echo $final }
>>> import time >>> from datetime import datetime >>> time.time() 1345556352.4712839 >>> time.localtime() (2012, 8, 21, 22, 39, 12, 1, 234, 0) >>> time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time())) '2012-08-21 22:39:12' >>> int(time.mktime(datetime(2012, 8, 21, 22, 34, 34).timetuple())) 1345556074 >>> datetime(*time.strptime("2012-08-21 22:34:34", "%Y-%m-%d %H:%M:%S")[0:6]) datetime..
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 12..
traceroute는 로컬에서 목적지 서버로 가는 네트워크 경로를 확인해주는 툴인데, 이를 Python으로 구현한 예제입니다. 12345678910111213141516171819202122232425262728293031323334353637383940414243#!/usr/bin/pythonimport socket def main(dest_name): dest_addr = socket.gethostbyname(dest_name) port = 33434 max_hops = 30 icmp = socket.getprotobyname('icmp') udp = socket.getprotobyname('udp') ttl = 1 while True: recv_socket = socket.socket(socket...
서론 생성 및 초기화 사용자 정의 클래스에서 연산자 만들기 비교 매직 매소드 숫자 매직 메서드 단항 연산자와 함수 일반 산술 연산자 뒤집힌 산술 연산자 증가된 할당 타입 변환 매직 메서드 클래스 표현하기 속성 접근 제어하기 커스텀 시퀀스 만들기 요구사항 컨테이너 뒤의 마법 예제 리플렉션 호출 가능한 객체 콘텍스트 매니저 추상 베이스 클래스 디스크립터 객체 만들기 복사하기 객체 피클링 하기 피클링: 소금물에 빨리 절이기 자신의 객체 피클링 하기 예제 결론 [번역] 파이썬 매직 메소드 (Python's Magic Methods) | 人生は短くて使える時間も限られてる。 A guide to Python’s magic methods를 번역한 문서입니다. 서론 이 가이드는 몇 달 간의 블로그 게시물의 정점입니다. 주..
사용기술 Flask-Bcrypt : 패스워드 등 데이터 암호화 모듈 Flask-Migrate : 데이터베이스 마이그레이션 모듈 Flask-SQLAlchemy : 데이터베이스 ORM(Object-relational mapping) 모듈 PyJWT : JWT(Json Web Token) 웹 인증 모듈 Flask-Script : 외부 모듈 커멘드 실행 관리 모듈 Namespaces(Blueprints) Flask-restplus UnitTest 원문 How to structure a Flask-RESTPlus web service for production builds by Greg Obinna How to structure a Flask-RESTPlus web service for production bui..
- Total
- Today
- Yesterday
- 이슈처리
- configuration
- code
- apache
- MariaDB
- Web
- Ansible
- engineering
- httpd
- PowerShell
- RESTful
- example
- mysql
- 예제
- error
- check
- deview
- Linux
- File
- client
- command
- monitoring
- Module
- Python
- 외부링크
- 명령어
- 코드
- 번역
- Windows
- limits
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 | 31 |