[Shell] .bash_profile 기본 복붙.
ITWeb/개발일반 2017. 9. 28. 11:02귀찮을때 복붙.
# .bash_profile
if [ -f ~/.bashrc ]; then
source ~/.bashrc
fi
PATH=$HOME/bin:$PATH
export PATH
'ITWeb/개발일반'에 해당되는 글 490건
[Shell] .bash_profile 기본 복붙.ITWeb/개발일반 2017. 9. 28. 11:02귀찮을때 복붙. # .bash_profile if [ -f ~/.bashrc ]; then source ~/.bashrc fi PATH=$HOME/bin:$PATH export PATH [Tensorflow] tensorflow source build & install on osx 10.12ITWeb/개발일반 2017. 8. 2. 09:54설치 하면서 참고 문서니 순서를 정리 하지 않아서 그냥 raw data 만 일단 투척해 봅니다. 그냥 brew install 해서 설치를 해도 되지만 아래와 같은 오류가 발생을 해서 소스 빌드 했습니다. [오류] $ python helloworld.py 2017-08-01 17:04:11.721245: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.2 instructions, but these are available on your machine and could speed up CPU computations. 2017-08-01 17:04:11.721266: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use AVX instructions, but these are available on your machine and could speed up CPU computations. 2017-08-01 17:04:11.721270: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use AVX2 instructions, but these are available on your machine and could speed up CPU computations. 2017-08-01 17:04:11.721274: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use FMA instructions, but these are available on your machine and could speed up CPU computations. Hello, TensorFlow! (tensorflow) imac-2:src henry$ deactivate [참고문서들] tensorflow) https://www.tensorflow.org/install/install_sources https://www.tensorflow.org/install/install_mac https://www.tensorflow.org/install/install_mac#NVIDIARequirements bazel) nvidia) https://developer.nvidia.com/rdp/cudnn-download https://developer.nvidia.com/cuda-downloads http://docs.nvidia.com/cuda/cuda-installation-guide-mac-os-x/index.html#axzz4oUS4pe8f - cudnn 다운로드를 받기 위해서는 로그인을 하셔야 합니다. 기본 설치 가이드) $ bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg $ sudo pip install /tmp/tensorflow_pkg/tensorflow-1.2.1-py2-none-any.whl # 아래는 six-1.4.1 패키지로 인해서 설치 오류가 발생을 합니다. 이를 회피 하기 위한 옵션 추가 입니다. $ sudo pip install --ignore-installed six #!/usr/bin/python import tensorflow as tf hello = tf.constant('Hello, TensorFlow!') sess = tf.Session() print(sess.run(hello)) [한글유니코드] 한글자모와 호환용 한글자모 코드ITWeb/개발일반 2017. 7. 20. 18:01한글 유니코드를 이용해서 한글 자모 분리에 사용하게 됩니다. 일반 한글자모 코드와 호환용 한글자모 코드가 있는데요. 제가 기존에 구현했던건 호환용 코드였습니다. 그러다 보니 자모만 구성된 처리에 있어서 약간의 문제가 있었습니다. 이번에 한글자모 코드로 변경 하면서 혹시라도 필요 하신 분들이 계시거나 제가 기억 못할까봐 기록해 봅니다. 참고문서) https://namu.wiki/w/%EC%9C%A0%EB%8B%88%EC%BD%94%EB%93%9C https://namu.wiki/w/%ED%95%9C%EA%B8%80%20%EC%9E%90%EB%AA%A8 한글자모 기반 유니코드) // {'ㄱ', 'ㄲ', 'ㄴ', 'ㄷ', 'ㄸ', 'ㄹ', 'ㅁ', 'ㅂ', 'ㅃ', 'ㅅ', 'ㅆ', 'ㅇ', 'ㅈ', 'ㅉ', 'ㅊ', 'ㅋ', 'ㅌ', 'ㅍ', 'ㅎ'} private final char[] CHOSUNG = {0x1100, 0x1101, 0x1102, 0x1103, 0x1104, 0x1105, 0x1106, 0x1107, 0x1108, 0x1109, 0x110A, 0x110B, 0x110C, 0x110D, 0x110E, 0x110F, 0x1110, 0x1111, 0x1112}; // {'ㅏ', 'ㅐ', 'ㅑ', 'ㅒ', 'ㅓ', 'ㅔ', 'ㅕ', 'ㅖ', 'ㅗ', 'ㅘ', 'ㅙ', 'ㅚ', 'ㅛ', 'ㅜ', 'ㅝ', 'ㅞ', 'ㅟ', 'ㅠ', 'ㅡ', 'ㅢ', 'ㅣ'} private final char[] JUNGSUNG = {0x1161, 0x1162, 0x1163, 0x1164, 0x1165, 0x1166, 0x1167, 0x1168, 0x1169, 0x116A, 0x116B, 0x116C, 0x116D, 0x116E, 0x116F, 0x1170, 0x1171, 0x1172, 0x1173, 0x1174, 0x1175}; // {' ', 'ㄱ', 'ㄲ', 'ㄳ', 'ㄴ', 'ㄵ', 'ㄶ', 'ㄷ', 'ㄹ', 'ㄺ', 'ㄻ', 'ㄼ', 'ㄽ', 'ㄾ', 'ㄿ', 'ㅀ', 'ㅁ', 'ㅂ', 'ㅄ', 'ㅅ', 'ㅆ', 'ㅇ', 'ㅈ', 'ㅊ', 'ㅋ', 'ㅌ', 'ㅍ', 'ㅎ'} private final char[] JONGSUNG = {0x0000, 0x11A8, 0x11A9, 0x11AA, 0x11AB, 0x11AC, 0x11AD, 0x11AE, 0x11AF, 0x11B0, 0x11B1, 0x11B2, 0x11B3, 0x11B4, 0x11B5, 0x11B6, 0x11B7, 0x11B8, 0x11B9, 0x11BA, 0x11BB, 0x11BC, 0x11BD, 0x11BE, 0x11BF, 0x11C0, 0x11C1, 0x11C2}; 호환용 한글자모 기반 유니코드) // {'ㄱ', 'ㄲ', 'ㄴ', 'ㄷ', 'ㄸ', 'ㄹ', 'ㅁ', 'ㅂ', 'ㅃ', 'ㅅ', 'ㅆ', 'ㅇ', 'ㅈ', 'ㅉ', 'ㅊ', 'ㅋ', 'ㅌ', 'ㅍ', 'ㅎ'} private final char[] CHOSUNG = {0x3131, 0x3132, 0x3134, 0x3137, 0x3138, 0x3139, 0x3141, 0x3142, 0x3143, 0x3145, 0x3146, 0x3147, 0x3148, 0x3149, 0x314a, 0x314b, 0x314c, 0x314d, 0x314e}; // {'ㅏ', 'ㅐ', 'ㅑ', 'ㅒ', 'ㅓ', 'ㅔ', 'ㅕ', 'ㅖ', 'ㅗ', 'ㅘ', 'ㅙ', 'ㅚ', 'ㅛ', 'ㅜ', 'ㅝ', 'ㅞ', 'ㅟ', 'ㅠ', 'ㅡ', 'ㅢ', 'ㅣ'} private final char[] JUNGSUNG = {0x314f, 0x3150, 0x3151, 0x3152, 0x3153, 0x3154, 0x3155, 0x3156, 0x3157, 0x3158, 0x3159, 0x315a, 0x315b, 0x315c, 0x315d, 0x315e, 0x315f, 0x3160, 0x3161, 0x3162, 0x3163}; // {' ', 'ㄱ', 'ㄲ', 'ㄳ', 'ㄴ', 'ㄵ', 'ㄶ', 'ㄷ', 'ㄹ', 'ㄺ', 'ㄻ', 'ㄼ', 'ㄽ', 'ㄾ', 'ㄿ', 'ㅀ', 'ㅁ', 'ㅂ', 'ㅄ', 'ㅅ', 'ㅆ', 'ㅇ', 'ㅈ', 'ㅊ', 'ㅋ', 'ㅌ', 'ㅍ', 'ㅎ'} private final char[] JONGSUNG = {0x0000, 0x3131, 0x3132, 0x3133, 0x3134, 0x3135, 0x3136, 0x3137, 0x3139, 0x313a, 0x313b, 0x313c, 0x313d, 0x313e, 0x313f, 0x3140, 0x3141, 0x3142, 0x3144, 0x3145, 0x3146, 0x3147, 0x3148, 0x314a, 0x314b, 0x314c, 0x314d, 0x314e}; ※ Java 로 코드 변환 시 낱자로 사용하게 되면 한글자모 기반 유니코드가 아닌 호환용 한글자모 기반 유니코드를 사용하게 됩니다. [Spring] Spring @Autowired AnnotationITWeb/개발일반 2017. 7. 11. 10:56참고문서) https://www.tutorialspoint.com/spring/spring_autowired_annotation.htm @Autowired 를 사용하는 방법에 대해서 기술 되어 있습니다. 1. @Autowired on Setter Methods 2. @Autowired on Properties 3. @Autowired on Constructors 3가지 방법 모두 같은 내용이기 때문에 사용하기 제일 편하신 걸로 사용하시면 되겠습니다. 저는 습관적으로 그냥 2번으로 사용하는 것 같습니다. 누구라도 이해하기 쉬운 예를 들자면. public class HelloWorldModel { ... } ----------------------------------------------- // HelloWorldModel 이라는 클래스가 있다고 가정하고. public class HelloWorldApp { private HelloWorldModel helloWorldModel; public HelloWorldApp() { this.helloWorldModel = new HelloWorldModel(); } ... } // 위와 같이 선언한 부분이 아래와 같이 변경이 됩니다. public class HelloWorldApp { @Autowired private HelloWorldModel helloWorldModel; ... } 그냥 아는 것과 설명을 해줘야 할 때는 눈 높이를 맞춰야 하기 때문에 참 어렵내요. [ASCII] HTML URL Encoding ReferenceITWeb/개발일반 2017. 6. 14. 17:47가끔 찾을 때가 있는데 기억을 못해 스크랩 해봤습니다. 원문) https://www.w3schools.com/tags/ref_urlencode.asp ASCII Encoding Reference Your browser will encode input, according to the character-set used in your page. The default character-set in HTML5 is UTF-8.
URL Encoding Reference The ASCII control characters %00-%1F were originally designed to control hardware devices. Control characters have nothing to do inside a URL.
[Java] Array Value 존재 유무 확인하기ITWeb/개발일반 2017. 4. 18. 10:38생각 나지 않을때가 많아서 퍼왔습니다. Originanl Source) http://www.programcreek.com/2014/04/check-if-array-contains-a-value-java/ public static boolean useList(String[] arr, String targetValue) { return Arrays.asList(arr).contains(targetValue); } public static boolean useSet(String[] arr, String targetValue) { Set<String> set = new HashSet<String>(Arrays.asList(arr)); return set.contains(targetValue); } public static boolean useLoop(String[] arr, String targetValue) { for(String s: arr){ if(s.equals(targetValue)) return true; } return false; } public static boolean useArraysBinarySearch(String[] arr, String targetValue) { int a = Arrays.binarySearch(arr, targetValue); if(a > 0) return true; else return false; } binary search 가 제일 성능이 좋습니다. 단, 위 코드에서 빠진게 있다면 Arrays.sort(arr) 를 먼저 하고 하셔야 된다는 것입니다. Arrays.sort(arr); int a = Arrays.binarySearch(arr, targetValue); [OCR] 이미지에서 텍스트 추출 하기ITWeb/개발일반 2017. 2. 14. 11:22OCR(Optical Character Recognition) 이라고 해서 이미지 같은 것에서 문자를 인식해서 추출하는 기술 입니다. 제가 하는 업무에 필요해서 "Hello World" 수준의 방법을 기술해 보려 합니다. 왜냐하면 나중에 또 잊어버릴수 있으니까요 ^^; 제가 사용한 내용은 아래와 같습니다. [참고문서] http://tess4j.sourceforge.net/ https://github.com/tesseract-ocr/tesseract/wiki ※ tess4j 는 tesseract-ocr 을 java 모듈에서 사용할 수 있도록 제공해주는 라이브러리 입니다. 우선 가볍게 mac 에서 맛보기를 해보시면 좋습니다. [Mac OSX 설치 및 CLI 테스트] $ brew install tesseract 설치 된 경로는 아래와 같습니다. /usr/local/Cellar/tesseract/3.04.01_2 경로를 알아야 하는 이유는 나중에 traineddata 파일을 올려 두어야 하기 때문에 알아 두시면 좋습니다. 한글 테스트를 위해서는 아래 링크에서 data file 을 다운로드 받으시고 tessdata 로 올려 두시면 됩니다. [Data Files] https://github.com/tesseract-ocr/tesseract/wiki/Data-Files Usage: tesseract --help | --help-psm | --version tesseract --list-langs [--tessdata-dir PATH] tesseract --print-parameters [options...] [configfile...] tesseract imagename|stdin outputbase|stdout [options...] [configfile...] $ tesseract eurotext.png translate -l eng eurotext.png The (quick) [brown] {fox} jumps! Over the $43,456.78 <lazy> #90 dog & duck/goose, as 12.5% of E-mail from aspammer@website.com is spam. Der ,,schnelle” braune Fuchs springt fiber den faulen Hund. Le renard brun «rapide» saute par-dessus le chien paresseux. La volpe marrone rapida salta sopra i] cane pigro. El zorro marrén répido salta sobre el perro perezoso. A raposa marrom répida salta sobre 0 C50 preguieoso. translate.txt
위 명령어로 돌려 보시면 이렇게 추출이 됩니다. 추가로 ubuntu 에 설치 하는 것도 살펴 보도록 하겠습니다. 저는 아래 문서 보고 설치를 했습니다. [설치 문서 on ubuntu] https://github.com/tesseract-ocr/tesseract/wiki/Compiling 설치 시 주의 점은 leptonica 설치를 하셔야 한다는 것입니다. 문서에 "You also need to install Leptonica." 이렇게 있는데도 불구하고 제가 문서를 제대로 안읽고 진행하다 삽질을 ㅡ.ㅡ; 실행 명령어를 그대로 옮겨 놓도록 하겠습니다. $ sudo apt-get install autoconf automake libtool $ sudo apt-get install autoconf-archive $ sudo apt-get install pkg-config $ sudo apt-get install libpng12-dev $ sudo apt-get install libjpeg8-dev $ sudo apt-get install libtiff5-dev $ sudo apt-get install zlib1g-dev $ sudo apt-get install libicu-dev $ sudo apt-get install libpango1.0-dev $ sudo apt-get install libcairo2-dev # leptonica 를 다운로드 받으시고 압축을 풉니다. [설치 문서] http://tpgit.github.io/UnOfficialLeptDocs/leptonica/README.html#building-on-linux-unix-macos $ wget http://www.leptonica.org/source/leptonica-1.74.1.tar.gz $ tar xvf leptonica-1.74.tar.gz $ cd leptonica-1.74 $ ./configure $ make $ sudo make install $ sudo apt-get install libleptonica-dev $ git clone --depth 1 https://github.com/tesseract-ocr/tesseract.git $ cd tesseract $ ./autogen.sh $ ./configure --enable-debug $ LDFLAGS="-L/usr/local/lib" CFLAGS="-I/usr/local/include" make $ sudo make install $ sudo ldconfig $ tesseract -v tesseract 2f10be5 leptonica-1.74.1 libjpeg 8d (libjpeg-turbo 1.4.2) : libpng 1.2.54 : libtiff 4.0.6 : zlib 1.2.8 Found AVX Found SSE [tess4j 를 이용한 Java 테스트] HelloTess4j.java public class HelloTess4j { 코드는 tess4j 소스코드 받아 보시면 잘 나와 있습니다. setLanguage 설정에 오류가 있어서 멀티 lang 설정이 안되는데요. (버그로 등록이 되어 있습니다. - 2017.02.14일 기준) 이 오류가 수정 되면 eng+kor 테스트도 해보시면 좋을 것 같습니다. [OSX El Capitan] ulimit 수정ITWeb/개발일반 2017. 2. 10. 18:53아래와 같이 수정 하시면 됩니다. 파일이 없으면 만드시면 됩니다. $ sudo vi /Library/LaunchDaemons/limit.maxfiles.plist <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>limit.maxfiles</string> <key>ProgramArguments</key> <array> <string>launchctl</string> <string>limit</string> <string>maxfiles</string> <string>524288</string> <string>524288</string> </array> <key>RunAtLoad</key> <true/> <key>ServiceIPC</key> <false/> </dict> </plist> $ sudo vi /Library/LaunchDaemons/limit.maxproc.plist <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple/DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>limit.maxproc</string> <key>ProgramArguments</key> <array> <string>launchctl</string> <string>limit</string> <string>maxproc</string> <string>2048</string> <string>2048</string> </array> <key>RunAtLoad</key> <true /> <key>ServiceIPC</key> <false /> </dict> </plist> [SimpleCaptcha] 초간단 hello world captcha!! 만들어 보기ITWeb/개발일반 2017. 2. 10. 12:33일전에 올려던 captcha 관련 링크 참고해서 입맛에 맞는 걸 사용하시면 됩니다. [관련링크] http://jjeong.tistory.com/1230 저는 simple captcha 를 이용해서 테스트만 해봤습니다. 아래 테스트 코드 공유 합니다. [SimpleCaptcha] http://simplecaptcha.sourceforge.net/ [Maven] https://mvnrepository.com/artifact/nl.captcha/simplecaptcha/1.2.1 혹시 다운로드가 안되시면 그냥 system path 로 잡아서 올려 주시면 됩니다. [HelloSimpleCaptch] public class HelloSimpleCaptcha { 너무 쉬워서 뭐라 적을 내용이 없내요. ㅡ.ㅡ; 더 자세한 내용들은 simple captcha 홈페이지를 참고 하시면 됩니다. (또는 구글링 ~) [Custom] http://simplecaptcha.sourceforge.net/custom_images.html http://simplecaptcha.sourceforge.net/custom_audio.html 보셔서 아시겠지만 캡차 이미지 파일로 사용하셔도 되고, 스트림으로 사용하셔도 되고 입맛에 맞게 변환 해서 쓰시면 되겠습니다. |