사용 버전: Python 3.6.8 사용 프로그램: Atom 1.40.1 x64 파이썬 urllib.parse.quote()에 대해서 알아보겠습니다. 괄호 안에는 string, safe, encoding, errors 인자가 들어갑니다. urllib.parse.quote()는 아스키코드 형식이 아닌 글자를 URL 인코딩 시켜줍니다. String 인자에는 string, bytes 형식이 들어갑니다. String 형식. Bytes 형식 Safe 인자에는 URL encoding에서 제외할 문자를 넣습니다. 기본으로 '/'이 설정되어 있습니다. Encoding 인자에는 인코딩 이름이 들어갑니다. string에 들어가는 문자와 맞지 않으면 오류가 나옵니다. 기본적으로 'utf-8'이 들어갑니다. Error 인자에는 'strict', 'ignore', 'replace', 'xmlcharrefreplace', 'backslashreplace', 'namereplace', 'surrogateescape', 'surrogatepass'가 들어갑니다. 기본적으로 strict가 설정되어 있습니다. unicode 오류를 알려줍니다. Ignore의 경우 오류는 무시하고, 변환할 수 있는 것만 변환합니다. Replace는 에러 글자를 '?'로 변환해줍니다. 그리고 quote(...
사용 버전: Python 3.7.6, OpenCV 4.2.0 파이썬 OpenCV 빈 화면 만들기를 해보겠습니다. 검정 빈 화면을 만들기 위해서는 numpy가 필요합니다. img1의 경우는 color로 불러들었을 때를 위한 빈 화면이고, img2의 경우는 grayscale로 불러들었을 때의 빈 화면입니다. 끝. 카테고리: Python, cv2
사용 버전: Android Studio 4.1.1 사용 언어: Kotlin 1.4.20 안드로이드 Notification with Full Screen을 알아보겠습니다. 알람이나 전화 같은 경우 사용자에게 큰 화면으로 Notification을 보여줘야 합니다. 이때 사용하는 게, FullScreenIntent입니다. 기본 Notification이 필요합니다. https://shwoghk14.blogspot.com/2020/09/android-notification.html FullScreen으로 띄울 Activity를 하나 만듭니다. 저는 FullScreenNoonActivity로 만들었고 모습은 아래와 같습니다. 위의 Activity를 이용하여 NotificationCompat.Builder가 있는 곳에 fullScreenIntent를 만듭니다. setContentIntent는 설정할 필요 없습니다. setFullScreenIntent를 설정합니다. priority는 PRIORITY_HIGH가 필요합니다. 그리고 Android 10 이상의 경우 권한이 필요합니다. AndroidManifest.xml에 USE_FULL_SCREEN_INTENT를 추가합니다. 실행해봅시다. 분명 FullScreenIntent로 실행했음에도 Heads-up Notification이 나옵니다. 눌러봅시다. ...
사용 버전: Python 3.7.6, Tensorflow 2.1.0 tensorflow(텐서플로우) tf.random.uniform()에 대해서 알아보겠습니다. 괄호 안에는 shape, minval, maxval, dtype, seed, name 따위가 들어갑니다. tf.random.uniform은 원하는 형태의 랜덤 값을 가진 배열을 만듭니다. shape는 배열 형태가 들어갑니다. minval에는 숫자가 들어갑니다. 랜덤 값의 최소 범위를 정합니다. maxval에는 랜덤 값의 최대 범위를 나타냅니다. dtype에는 tf.dtype 형식이 들어갑니다. name에는 글자가 들어갑니다. 지금은 안 보이지만, 나중에 그래프를 그리거나 할 때 참고될 수 있습니다. 끝. 카테고리: Tensorflow_python, Python [계수기] 앱 광고 외국: Hand Counter https://play.google.com/store/apps/details?id=starlight.jaehwa.handcounter 계수기 앱. 하나씩 개수를 셀 때 사용해보세요. 센 숫자를 메모와 함께 저장할 수 있습니다. 감사합니다. [계수기] 앱 광고 끝.
사용 버전: Android Studio 4.1.1 사용 언어: Kotlin 1.4.20 안드로이드 AVD Ram size change를 해보겠습니다. 안드로이드에는 AVD(Android Virtual Device)라는 가상 기기를 제공해 줍니다. 해당 가상 기기의 램 크기를 변경해보도록 하겠습니다. AVD Manager에 들어갑니다. 아래의 창이 나옵니다. 아래로 향한 화살표를 눌러 Show on Disk를 누릅니다. 폴더가 하나 열립니다. config.ini 파일을 찾아 메모장 파일로 엽니다. hw.ramSize를 변경합니다. 저는 3072로 변경했습니다. 저장합니다. 다시 AVD Manager로 돌아와서 연필 모양을 누릅니다. Show Advanced Settings를 누릅니다. RAM 영역을 보면, 아까 입력한 3072로 변경된 것을 확인할 수 있습니다. 끝. 카테고리: Android
사용 버전 : Python 3.6.8 사용 프로그램 : Atom 1.35.1 x64 파이썬 bs4.SoupStrainer()에 대해서 알아보겠습니다. 괄호 안에는 태그(tag)가 들어갑니다. bs4.SoupStrainer()는 태그를 선택할 수 있고, bs4.BeautifulSoup4()의 'parse_only' 속성에 사용됩니다. <a> 태그만 보기. <head> 태그만 보기. <script> 태그만 보기. 위와 같이, 태그는 모두 선택할 수 있습니다. 끝. 카테고리: Python, bs4
사용 언어: Kotlin 2.0.20 사용 버전: Android Studio Ladybug | 2024.2.1 Patch 3 Android Compose automation for getting localized images to use on Play Store app image를 알아보겠습니다. 저는 앱을 전 세계에 출시하고, 여러 언어로 제공해 주고 있습니다. 무려 67개 언어인데요. 사실 맞게 번역한 건지는 모르겠습니다. 이렇다 보니, 스토어의 앱 이미지를 변경할 때, 같은 이미지라도 언어를 달리하여 여러 장 찍어야 하는 노력이 필요하며, 여기에 들어가는 시간이 상당합니다. 2~3일 넘게 걸리는 것 같네요. 그래서 지금 앱 이미지가 옛날 이미지인 상태로 두었습니다. 스토어 이미지 현재 앱 이미지 엄청나게 다른데요. 오늘은 이것을 자동화해보겠습니다. Android에는 Screenshot test라는 것이 존재합니다. Screenshot을 비교해서 앱이 어떻게 달라졌나 확인하는 테스트인데요. 이것을 이용해서 Screenshot을 마구 찍어볼 겁니다. 오늘 사용할 기술입니다. Compose Screenshot Testing. https://developer.android.com/studio/preview/compose-screenshot-testing 자세한 사용법은 다루지 않겠습니다. libs.versions.toml에 다음과 같이 버전을 넣어줍니다. Plugin도 같이 넣어줍니다. screenshotVersion = "0.0.1-alpha07" android-screenshot = { id = "com.android.compose.screenshot", version.ref = "screenshotVersion" } gradle.properties에 다음을 적어줍니다. android.experimental.enableScreenshotTest=true 모듈용 build.gradle.kts에도 androi...
사용 버전: Python 3.7 운영 체제: Windows 10 Home x64 1909 사용 도구: Uncompyle6 포렌식 .pyc 파일 .py로 복구하기에 대해서 알아보겠습니다. 만약 여러분이 파이썬 파일을 지워버렸는데, .pyc 파일은 남아있다면 다시 복구할 수 있습니다. 보통 .pyc 파일은 수동으로 만들지 않는 이상 main 함수가 남아있지는 않습니다. 자동 생성되는 경우는 다른 python script를 참조할 때, 참조한 script가 pyc로 생성합니다. uncompyle6를 설치합니다. python -m pip install uncomply6 저는 해당 .pyc 파일을 사용하겠습니다. 아래 git에 들어가면 동일한 파일을 사용할 수 있습니다. https://github.com/shwoghk14/mnist_tensorflow/tree/master/Start%204/__pycache__ 사용법은 다음과 같습니다. cmd 창을 엽니다. uncompyle6 [복구할 .pyc 파일 이름] 완료되면, 다음과 같이 원본 py 내용이 나옵니다. uncompyle6 version python bytecode 버전 python 버전 file name compiled 날짜 Size 등의 중요한 정보와 함께 원본 python script가 출력됩니다. 해당 파일의 원본은 mnist_util.py입니다. 비교해 보시면 좋을 것 같네요. https://github.com/shwoghk14/mnist_tensorflow/tree/master/Start%204 끝. 카테고리: forensic [계수기] 앱 광고 외국: Hand Counter https://play.google.com/store/apps/details?id=starlight.jaehwa.handcounter 계수기 앱. 하나씩 개수를 셀 때 사용해보세요. ...
사용 버전 : KiCad 5.1.0 kicad PCB 만들기에 대해서 알아보겠습니다. 'PCB Layout Editor'를 눌러줍니다. 만약 아래와 같은 알림 창이 뜬다면, 선택은 자유입니다. 내용은 그래픽 카드를 사용할 것인지, 말것인지 입니다. 쓰면 속도도 좋고, 부드러워진다고 설명하고 있군요. 다음과 같은 창이 뜹니다. 'Update PCB from schematic'을 눌러줍니다. 'Match Method'와 설정을 적절히 선택해줍니다.(저처럼 하셔도 됩니다.) 그리고 'Update PCB'를 눌러줍니다. 다음과 같이 마우스를 따라다니는, footprint가 생성됩니다. 적당한 곳에 클릭합니다. footprint 이동은 '키보드 M', footprint 회전은 '키보드 R'입니다. 'Hide board ratsnest'를 켜면, 전선이 연결되어야 할 가이드 선이 표시됩니다. 'Ctrl + 좌 클릭'은 선택된 패드에 연결될 부분만 밝게 표시합니다. 해제 방법은 빈 땅에 'Ctrl + 좌 클릭'하면 됩니다. 옆에 있는 '레이어'는 PCB의 어느 영역에 그릴 것인지를 선택할 수 있게 해줍니다. F.Cu는 PCB 윗부분 전선 B.Cu는 PCB 뒷부분 전선 F.Paste는 PCB 윗부분 SMT 접착제 B.Paste는 PCB 뒷부분 SMT 접착제 F.Mask는 PCB 윗부분 패드 B.Mask는 PCB 뒷부분 패드 Edge.Cuts는 PCB의 전체 모양 F.SilkS는 PCB 윗부분 하얀 선 또는 글자 B.SilkS는 PCB 뒷부분 하얀 선 또는 글자 전선을 그려봅시다. 'Route tracks'를 눌러줍니다. 레이어를 보시면, F.Cu에 화살표가 있으니, 전선은 F.Cu 레이어에 그려집니다...
사용 버전: Kicad 5.1.4 저번 시간에 이어서 Freeroute를 사용해보겠습니다. 각 PCB 제조사마다 디자인 룰이란 것이 존재합니다. 우리는 그것에 맞추어서 선이나 구멍을 만들어줘야 합니다. 디자인 룰 설정을 합시다. 우선 PCB Layout Editor을 실행합니다. 파일 - Board Setup을 누릅니다. Design Rules - Net Classes를 누릅니다. 위의 창에서 디자인 룰을 설정합니다. '+'를 눌러 디자인 룰을 새롭게 만들든지, 기존의 Default를 변경하든지 편하신 대로 조정해줍니다. 유격: 선과 선 사이 간격 트랙 두께: 선 굵기 Via Size: Via 납 지름 비아 드릴: Via 구멍 지름 uVia Size: 모름 uVia Drill: 모름 dPair Width: 모름 dPair Gap: 모름 저는 Power Class를 추가하여, +5V와 GND에 Assign To Selected Nets로 한꺼번에 적용시켰습니다. 나머지 전선은 Default Class 적용을 받고, +5V와 GND만 Power class 적용을 받습니다. Ctrl + S로 저장을 한 번 해줍니다. 파일 - 내보내기 - Specctra DSN... 을 눌러줍니다. 적당한 위치에 dsn 파일을 저장합니다. NetBeans에서 Autoroute를 실행합니다. Open Your Own Design을 눌러, 아까 저장한 dsn 파일을 불러옵니다. Autorouter를 눌러줍니다. 전선 긋기, 최적화하기 순으로 진행되고, 완료가 되면, Postroute completed라는 문구가 나옵니다.전선 긋기나 최적화 중 마우스 왼쪽 버튼을 누르면, 그 상태로 정지됩니다. 최적화가 필요 없으면, 정지 후 바로 PCB에 사용하셔도 됩니다. File - Export Specctra S...
댓글
댓글 쓰기
궁금한 점은 댓글 달아주세요.
Comment if you have any questions.