본문 바로가기

List of Articles

[iOS/swift] 랜덤 숫자 맞추기 간단 게임 만들기 | Making to guess random number on iOS with swift 짬짬이 ios/swift application을 가지고 놀 수 있는 코딩을 해 보려고 한다. 왜냐.. 심심해서 -_-; 인터넷 + 관련 서적에서 쉽게 찾을 수 있는 예제들을 조금씩 바꾸어 작성해 보려고 한다. 중간 중간 틀리거나 오류가 있으면 알려주시면 땡큐~!X-CODE를 실행하면 위와 같은 창이 나타난다. 여기서는 새로운 프로젝트를 만들 예정이므로 'Create a new Xcode project' 를 선택하면 된다. 간단한 iOS app (앱이라고 하기 보다 테스트라고 하는게....ㅎㅎ)을 만들 예정이기에 'Single View Application' 을 선택한다. Product Name 을 넣으라는 창이 나온다. 여기에 이 프로젝트를 어떤 이름으로 할지 물어보는 것이기에 적당한 이름을 넣어주면 된.. 더보기
피보나치 with argparse on python | Fibonacci with argparse on python 학창시절 수학시간에 배운 피보나치 수열이다. 기본적인 내용을 다 알겠지만, 개략적으로 본다면1 1 2 3 5 8 13 21 34 .......... 의 형태로 앞 두 수의 합이 다음 수가 되는 것이다.함수 구현은 아래 그림에서 보는 바와 같이 아주 단순하다. 여기서는 피보나치 보다는 argument parse를 보려고 한다. 점점 게을러져서인지, 그냥 코드만 보면 이해가 될 거라고 생각하고 설명을 생략하게 된다....점점.... 매너리즘인가 -_- 모르겠는점은 구글링해보시라~ 더보기
Metasploit Framework 설치하기 on MacOS | Installing Metasploit Framework on MacOS 해킹 툴로 널리 사용되는 Metasploit 를 설치하는 과정을 소개해 보고자 한다. Metasploit 는 pen testing tool로서 아주 유명한 것 중의 하나이다. 과거에는 맥에 설치하는데 있어서 manual 하게 설치하고, 시간도 상당히 소모하였으나 근래에는 아주 손쉽게 설치할 수 있게 되었다. 물론 KALI 와 같은 것을 VM에 설치하여 사용할 수도 있겠으나, 메인 시스템에 설치하여 사용할 때 생기는(가령 아주 빠르며, 손쉽게 사용가능) 장점이 있기에 Mac 에 직접 설치하여 사용하는 사용자들이 많아지고 있다. Process 1. Metasploit Framework 다운하기. here is the download for Mac 에서 파일을 다운하여 실행을 하면 아래와 같은 인스톨 창이 뜰.. 더보기
WIFI 비밀번호 알아내기 with python | Cracking WIFI PASSWORD with brute force on python Wifi를 크래킹 하는 도구들은 상당히 많다. 그러나 대부분 유닉스(또는 리눅스) 명령어를 충분히 숙지하여야 이해하는데 무리가 없을 것이다. 이번에는 아주~ 간단(?)히 파이썬을 이용하여 WIFI(무선인터넷) 패스워드를 찾아보려고 한다. 단순 무식한 방법인 brute force 를 이용해서 말이다. brute force는 쉽게 말하면 단순하게 모든 패스워드를 입력해보고 아니면 다음 패스워드, 그래도 아니면 또 다른 패스워드....... 이렇게 일련의 패스워드들을 프로그램이 자동으로 하나씩 대입하여 찾아내는 방법이라고 보면 된다. 각설하고 아래는 저의 컴퓨터 환경(맥을 사용합니다)에서 주변(카페)에서 찾을 수 있는 무선 인터넷을 찾고, 패스워드를 brute force해 보도록 하겠습니다.위는 전체코드이며 .. 더보기
Zip 파일 비밀번호 알아내기 by brute force on python | Unlock Password Protected Zip file using python 간단한 brute force python code 를 만들어 보려고 한다. 압축파일로 흔히 쓰이는 Zip file 형태가 비밀번호로 보호가 되고 있는데 비번을 잊어버렸을 경우 어떻게 할까? 머리를 쥐어 짜서 비번이 생각나기를 학수고대 할 수밖에 없을까? 이럴때 유용하게 심플한 코드를 만들어 해결을 할 수 있다. 아래는 단순한 파이썬 코드이다. 개략적으로 설명을 하자면, 딕셔너리(일반적으로 수 많은 단어들이 들어 있는 파일)파일을 가지고 있다면 그것을 이용하여 zip파일을 컴퓨터가 하나씩 열쇠구멍에 넣어 돌려보게 하는 것이다. 흔히 크래커들은 일반적으로 많이 사용되는 혹은 빈도수가 높고 비밀번호로 유용한 단어들의 리스트를 가지고 프로그램을 돌려 빠른 시간내에 해당 시스템의 비밀번호를 알아낼 수 있다. 여기.. 더보기
[MAC/TIP] Mac wireless card set up on Kali Linux 1) Making sure these were in /etc/apt/sources.listdeb http://http.kali.org/kali kali-rolling main contrib non-free # For source package access, uncomment the following line deb-src http://http.kali.org/kali kali-rolling main contrib non-free 2) Making sure everything was readyapt-get update && apt-get dist-upgrade 3) Rebooting the kernelreboot 4) Finding out my version:root@kali:~# uname -a Linu.. 더보기
파이썬으로 코스피200 종목코드, 회사명 가져오기 | get kospi200 data using python 주식 관련 문의를 주시는 분들이 몇 분 계셔서 간단히 KOSPI200 의 종목코드와 회사명을 네이버에서 가지고 오는 코드를 소개해 보고자 합니다.아래는 포털 사이트 네이버의 증권 섹션입니다. 코스피200 의 데이터를 가지고 오기 위해 관련 정보를 알아야 하기에, 왼쪽의 코스피200 이라고 명기된 부분을 클릭하면 아래와 같은 화면이 나옵니다. 여기에서 아래 그림처럼 된 부분만 따로 확인하기 위해서 이 부분의 주소만을 웹브라우저 주소창에 넣어주면 코스피200 회사들의 당일 주가 데이터들만 나타나게 됩니다. 해당 주소는 http://finance.naver.com/sise/entryJongmok.nhn?&page=1 입니다. 이제 여기서 html 코드를 확인하기 위해 각각의 웹브라우저마다 이름이 다른 속성, .. 더보기
코스피,코스닥 주식 데이터(CSV) 압축파일. 2017_07_06까지. 2017_07_06 까지 코스피 코스닥 시장의 주식 시세 데이터 셋입니다. 각 종목의 코드명으로 된 csv 파일로 압축되어 있습니다.필요한 사람들에게 유용하게 사용되길 바랍니다.Click here to download 더보기
Logistic Classification on TensorFlow Linear Regression 에서 Cost Function 은 부드러운 2차원 곡선을 그리기에 Cost Function 최소값을 손쉽게 구할수 있는 반면 Logistic Regression 에서 Cost Function 은 울퉁불퉁한 형태를 띈다. 그래서 이런 울퉁불퉁한 곡선을 부드럽게 잡아줄 수 있는 log 를 적용한 후에 GradientDescentOptimizer를 적용하여야 Cost Function 의 최소값을 용이하게 구현할 수 있다. 아래는 Logistic Regression 에서의 Hypothesis Function 과 Cost Function 이다. 위의 예제를 코딩을하고 그 결과값은 아래와 같다. 데이터 값이 적지만, 정확성은 1을 나타내고 있다. -Reference- https://.. 더보기
나만의 주식 분석 프로그램을 활용한 4 번째 매매일지 한국의 주식 시장이 이전에 겪어보지 못한 활황을 구가하고 있다. 연일 코스피 지수는 사상 최고치를 경신하고 있으며, 이에 따라 코스닥 시장도 조금씩 최고치를 높여가고 있는 시황이다. 파이썬을 이용해서 주식 분석 프로그램을 만들고 여기에 재무제표 분석을 더하여 종목 선정을 하게 하였다. 새로운 버전으로 버전업을 하니 이전 프로그램보다 매매 타이밍이 잘 맞아 떨어지는 것 같다. 물론 시황 자체가 긍정적인 흐름이라는 것을 간과해서는 안되겠지만 말이다. 새로운 프로그램으로 매매에 임한지 아직 1달이 채 되지 않았다. 그러나 성과는 예상했던 것보다 좋게 나오고 있다. 아래는 지난 4주간의 누적 손익이다. 손실은 적게 수익은 극대화에 입각한 패턴이라 할 수 있겠다. 무엇보다 인간의 탐욕을 최대한 배제하려고 한 결과.. 더보기
나만의 주식 분석 프로그램을 활용한 3 번째 매매일지 변동성이 큰 한 주의 시황이었다. 주 초반에는 조정을 거치는 반면, 주 후반에는 다시 상승을 하여, 이 글을 쓰는 현재 코스피 기준 사상 최고가를 경신한 한주로 마무리가 되었다. 나의 수익 일지 또한 등락을 거듭하였으나, 적게나마 수익을 내면서 한 주를 마무리 하였다. 프로그램을 조금씩 수정을 더해 갈 수록 취합하는 데이터의 양이 방대해지고 있고, 그에 따른 알고리즘 또한 복잡해지고 있다. 앞으로 해야할 일은 상관관계에 의한 변동성 예측과 포트폴리오 비율 구성을 조절해 줄 수 있는 머신러닝 구현이다. 더보기
Delete redundant rows in pandas dataframe import modulesimport pandas as pd Create dataframe with duplicatesraw_data = {'first_name': ['Jason', 'Jason', 'Tina', 'Jake', 'Amy'], 'last_name': ['Miller', 'Miller', 'Ali', 'Milner', 'Cooze'], 'age': [42, 42, 36, 24, 73], 'preTestScore': [4, 4, 31, 2, 3], 'postTestScore': [25, 25, 57, 62, 70]} df = pd.DataFrame(raw_data, columns = ['first_name', 'last_name', 'age', 'preTestScore', 'postTestSc.. 더보기
나만의 주식 분석 프로그램을 활용한 2 번째 매매일지 파이썬을 이용한 새로운 알고리즘으로 주식 분석 툴을 만들어 사용한지 10일정도 되었다. 이번에 만든 프로그램은 이전 것보다 많은 양의 데이터 처리를 해서 그런지 몰라도 종목 선택이 더 적확하게 이루어 지고 있는 것 같다는 느낌이다.지난번 매매일지를 올린 이후 1주일의 시간이 더 흘렀다. 주 초반에는 매매하고 별로 움직임을 보이지 않던 종목들이 마지막 금요일을 기점으로 일제히 우 상향을 이루면서 지난 주에 이어 이번주도 수익을 내면서 마감을 하였다. 옛날 같았으면 저기 마이너스 나고 있는 기간동안 조바심이 나서 단타를 치고는 하였는데, 믿는 구석(?) 이 생긴이후로는 인간의 욕심보다 객관적인 수치에 기반한 분석이 더 정확하리라는 생각에 단타보다는 지켜보자는 마음이 생겼다. 그로 인해 일희일비 하지 않게 되.. 더보기
실시간 내 주가를 알려주는 Python Code 이번에는 실시간 주식 데이터를 가져와서 시시각각 동향을 출력하게 하려고 한다. 그 후에는 내가 보유한 종목의 주가 흐름을 계속 추적하고, 더 나아가 컴퓨터가 보유종목의 주가를 계속 오디오로 알려주게 하는데까지 알아보려고 한다. 포털사이트 다음의 증권에 올라오는 종목 시세를 참고하였다. 옛날 같으면 포털사이트에서 제공하는 주가는 20분 지연 시세를 제공하여 효용성이 많이 떨어졌던게 사실이다. 그러나 이제는 실시간 시세를 제공하고 있으므로, 증권사에서 제공하는 데이터 못지않게 빠르고 정확하다. 그래서 다음 사이트의 데이터를 가지고 와서 뚝딱뚝딱 기름칠해서 내가 필요로 하는 정보만을 추출하였다. 아래는 그 코드이다. import urllib.request, time, os, re, csv, sys def fe.. 더보기
왜 파이썬에서 멀티 프로세스를 사용하는가? | Why do we use multiprocess in python? 파이썬에서 멀티 쓰레드(Multi Thread)와 멀티 프로세스(Multi Process)를 사용하는 경우가 종종 있다. 그런데 왜 이런 모듈을 사용할까? 이유는 간단하다. 동일한 작업과정을 단시간에 효율적으로 처리하기 위해서다. 아래는 주식 분석 코드의 일부분만을 발췌해 보았다. Stock() 이라는 클래스를 정의하고 그 처리하는 과정과 처리하는데 소요된 시간을 표기하였다. 코스피, 코스닥 종목이 현 시점에서 도합 2,000 여 종목이 된다. 이를 하나씩 읽어들여 DB에 저장된 값으로 분석을 할 수도 있고, 인터넷이 연결되어 있다면 바로 주식 데이터를 다운받아 처리할 수도 있다. 이 중 하나의 방식으로 전 상장종목을 처리해 보았다. 대략 3822초가 소요되었다. 그러니까 1시간하고 약 4분 정도 걸린셈.. 더보기
if you want to split a large csv file into several smaller ones, just use 'split' in shell. I have a large csv file(10Gb). But it's too large to process on a program. There is a way to solve this problem. You can use bash command 'split'. Just take a look at an example below. $ split -l 100 data.csv this command will separate data.csv into every 100 lines with a lot of files. It's so simple. 더보기
나만의 주식 매매 프로그램을 이용한 수익 일지 개인적으로 주식 매매 경력(?)이 근 20년이 되어 간다. 지난 세월을 반추해보면, 주식만큼 날 괴롭힌게 있나 싶을정도로 천당도 맛 보았고, 지옥도 맛보게 한 것이기 때문이다. 어릴때는 일확천금에 대한 환상으로 온갖 정보를 찾아보고 섭렵하여 뭐든지 할 수 있을 것만 같았던 시절도 있었다. 그러나 세상이 내가 원하던 대로만 살아지던가. 인간의 욕심은 또 다른 욕심을 낳고, 그 욕심으로 말미암아 뜻하지 않은 일을 당하기도 하더란 말이다. 지족불욕이라 하였다. 욕심을 버리고 기계적으로 주식매매를 해보기로 마음 먹은지 10여년이 지났다. 그 간 많은 것들을 만들어보기도 하고, 폐기하기도 하였다. 물론, 지금도 진행형이다. 한 동안은 완벽하다고 생각했던 프로그램이 뜻하지 않은 변수로 사장되는 일도 있었다. 그렇지.. 더보기
Stochastic Oscillator(스탁캐스틱) 구현하기 using Python | Making Stochastic Oscillator by using Python The stochastic oscillator is calculated using the following formula: %K = 100(C - L14)/(H14 - L14) Where: C = the most recent closing price L14 = the low of the 14 previous trading sessions H14 = the highest price traded during the same 14-day period %K= the current market rate for the currency pair %D = 3-period moving average of %K 이 지표의 기초가 되는 일반적인 이론은 상승 추세에 있는 시장에서는 종가가 당일 최고가 근접 가격에 형성될 것이.. 더보기
볼린저밴드 구현하기 using python | Cal Bollinger bands using Python 파이썬을 이용해서 볼린저밴드 구현하기 Ver. 0.1def anaylize_bolllinger(df,dir_name,dest_path,date_list): df_normalize=df['Close']/df['Close'].ix[0,:] # Compute rolling mean,rolling standard deviation,upper and lower band of Bollinger rm=df['Close'].rolling(window=20,center=False).mean() rmstd=df['Close'].rolling(window=20,center=False).std() upper_band, lower_band = get_bollinger_bands(rm,rmstd) dp=df['Close'].ro.. 더보기
python pandas 에서 특정 컬럼값의 row 를 제거하기 | Deleting DataFrame row in Pandas based on column value 파이썬의 Pandas를 사용하면서 특정값의 row 가 존재할 때, 이 row 를 제거하기위해서는 그 값이 들어가는 row를 제외한 나머지 값들을 다시 dataframe으로 지정해주면 손쉽게 데이터를 처리할 수 있다. 위의 그림은 어느 특정 데이터에서 'Volume'값이 0인 값이 존재하는 row가 2개 있는 그림이다. 여기에서 이 두 항목을 제거하고 다른 데이터 핸들링이 필요할 경우에 유용하다. 아래 그림은 그 결과값이다. 더보기
OSX 스크린샷 기본 포맷 변경 jpg,png,gif,tiff,pdf | how to change ScrreenShot Image format to jpg,png,gif,tiff,pdf on OSX 맥을 사용하다 보면, 스크린샷을 찍어 활용할 경우가 허다하다. 그런데, OSX의 기본 스크린샷 포맷은 png 이다. 경우에 따라서 다른 형태로 변환을 할 필요가 생기는데 OSX 자체적으로 손 쉽게 이미지 포맷을 변환해서 스크린샷을 찍을 수 있다. 아주 간단히 터미널 명령어 하나만으로도 가능하다. 기본 터미널 명령어는 아래와 같다.defaults write com.apple.screencapture type 포맷 && killall SystemUIServer포맷 위치에 png, jpg, gif, pdf, tiff 등 다양한 형태의 이미지 포맷을 넣고 터미널에서 실행을 하면, 촬영하는 스크린샷은 해당 이미지 포맷 형태로 뱉어내어 준다. 물론 확장 포맷에 따라 화질의 차이가 있을 수 있으니 이는 사용자의 판단.. 더보기
주식 정보 데이터베이스(db) 구축하기 by using python | storing stock data into database(DB) by using python 몇 년 전부터 db에 저장된 데이터를 이용해서 종목 발굴 알고리즘을 돌려놓고 있으며, 이를 이용해 특이점이 발견된 종목은 바로바로 문자 or email 등을 통해서 알려주고 관련 데이터를 저장하게 하는 시스템을 구축해 놓은 상황이다. 관련해서 문의 글이나 메일 혹은 문자를 통해 방법을 문의하는 글이 있어 개략적이나마 기본 개념을 작성해 두려고 한다. 우선 파이썬을 이용해서 주식 데이터를 데이터베이스(db)에 저장하는 작업을 하려고 한다. 이를 위해 기본 개념 몇몇을 알고 있어야 하지만, 관심이 있으신 분들은 관련 정보를 공부해 보시길 바란다. 가장 먼저 파이썬이라는 프로그램의 기본 개념을 익혀야 할 것이다. 그런 다음 관련 모듈을 설치, 기본 문법등을 차근차근 학습하면 될 것이다. 아래 코드는 완전한 코.. 더보기
how to insert dataframe data into mysql database using pymysql(pure python3 library) import pandas as pdimport mysql.connector from sqlalchemy import create_engine python을 이용해서 만든 데이터를 데이터베이스(DB)에 저장을 하기위한 모듈들이다. python3 에서는 Python에서 잘 작동하던 mysqldb 가 작동하지 않는다. 그래서 예전에 만들어둔 코드들이 더 이상 작동을 하지 않아 한 동안 애를 먹었던적이 있었다. 이번 기회에 이전 데이터를 python3를 이용해서 다시금 DB에 저장해두고 활용을 해 보고자 관련글을 작성해 둔다. 아래는 python3에서 pandas dataframe 으로 만들어진 데이터를 mysql or mariadb 에 삽입하는 코드이다. 이 단순한 몇을을 찾기 위해 얼마나 헤매였단가~ 먼산 .. 더보기
install mariadb on ubuntu | mariadb 설치하기 on ubuntu Installing MariaDB using APTFor Debian and Ubuntu, it is highly recommended to install from the repositories, using apt-get, aptitude, synaptic or another package manager.The easiest way to get things set up is to use our online repository configuration tool and follow the instructions it generates.Import the GnuPG signing keyFirst import the GPG key we use to sign the repositories. This step on.. 더보기
구글독스(google docs)를 이용해 주식 실시간 데이터를 가져오기. 이번에는 국내 포털에서 제공하는 실시간 주식 시세 정보를 구글독스(Google Docs)를 이용해서 가져오는 방법을 알아보려고 합니다. 구글 파이낸스나 야후 파이낸스는 자체적으로 정보를 제공하는 API를 제공하지만, 한국 정보는 미흡한 점이 많은게 사실입니다. 그리고 프로그래밍으로 관련 데이터를 긁어 올 때 자주 활용할 수 있어 유용하지만, 데이터 자체가 지연 제공되기에 아쉬운 점이 있다고 할 수 있습니다. 마이크로 소프트의 엑셀이나 구글의 스프레드 시트에서는 웹상의 데이터를 가지고 올 수 있는 함수를 제공하고 있습니다. IMPORTHTML 을 사용하기도 하고 때로는 IMPORTDATA라는 함수를 사용하기도 합니다. 백문이 불여일견이죠 아래와 같이 이미지를 통해서 보시면 무슨 얘기인지 금방 체감하실 수 .. 더보기
List of SQL Commands BACKGROUNDSQL, 'Structured Query Language', is a programming language designed to manage data stored in relational databases. SQL operates through simple, declarative statements. This keeps data accurate and secure, and helps maintain the integrity of databases, regardless of size.Here's an appendix of commonly used commands.COMMANDSALTER TABLEALTER TABLE table_name ADD column datatype; ALTER TA.. 더보기
How to install mariadb on ubuntu | 우분투에 마리아디비 설치하기 Install MariaDB on Ubuntu 16.04Step 1. First make sure that all your system packages are up-to-date by running these following apt-get commands in the terminal.12apt-get updateapt-get upgrade Step 2. Installing MariaDB. Installing MariaDB is as simple as running just one command below:1apt-get install mariadb-serverIf you want to install MariaDB 10.x Which is not included in distribution reposit.. 더보기
Mariadb Sovle : Plugin 'unix_socket' is not loaded The "unix_socket" has been called by mysql authentication process (maybe related to a partial migration of database to mariadb, now removed). To get all stuff back working go su:sudo su then follow:/etc/init.d/mysql stop mysqld_safe --skip-grant-tables & mysql -uroot This will completely stop mysql, bypass user authentication (no password needed) and connect to mysql with user "root".Now, in mys.. 더보기
텐서플로우에서 데이터 읽기 | Read data from files on TensorFlow test.csv :73,80,75,15293,88,93,18589,91,90,18096,98,100,19673,66,70,142 53,46,55,101 import tensorflow as tf filename_queue = tf.train.string_input_producer(\ ['/Users/sh/Documents/_iPython/TensorFlow/test.csv'], shuffle=False, name='filename_queue') reader = tf.TextLineReader() key, value = reader.read(filename_queue) # Default values, in case of empty columns. Also specifies the type of the de.. 더보기
칼 빈슨 항모 전단은 어디에? 트럼프의 농단인가? 언론의 설레발인가? 그 동안 한반도로 향했다고 알려진 항모전단 칼 빈슨호가 한반도가 아닌 인도양으로 향했다는 기사들이 쏟아져 나오고 있다. 이는 당초 4월 15일 김일성 생일을 맞아 북한 김정은 정권이 새로운 핵실험을 강행할 것에 대한 경고 차원으로 항모전단을 전개해 압박하기 위한 수단으로 알려졌었다. 이에 미국 당국자가 확인하고 한국 국방부도 사실을 확인해주어, 4월에 한반도에서 전쟁이 일어날지도 모른다는 유언비어가 난무하게 한 단초를 제공한게 사실이다. 그러나 4월 19일 현재 한반도로 향했다는 칼 빈슨호는 어디에 있을까? 한반도와는 동떨어진 인도양의 순타해협을 지나는게 찍힌 사진이 한장 공개되면서, 미국 트럼프 대통령의 말은 거짓인게 들통나고 말았다. 이를 시간순으로 간략히 정리하면, 다음과 같다.1. 4월 8일 칼 .. 더보기