Archive of posts with category 'programing'

HTML Canvas Javascript 기초

도형과 애니메이션을 이용한 그래픽을 표현하는데 파이썬을 이용할지 HTML을 사용할지 고민했다. 하지만 나의 궁극적인 목표는 웹이므로 캔버스를 사용하고자 하였다. 이곳을 참고하여 기본적인 사용법을 익혔다. HTML <!DOCTYPE html> <html> <head> <meta charset="utf-8"...

자바스크립트 기초 유전 알고리즘

파이썬에서 만들었던 유전 알고리즘을 자바스크립트로 단순히 번역해 본 결과물이다. 자바스크립트에 익숙해 지고 싶어서 해봤는데 의외로 시간이 오래 걸렸다. 약간의 기초적인 지식은 알고 있다고 생각했는데 … 아니었나보다. 파이썬에 있는 numpy.argsort()가 없어서...

RGB를 HSI로 변환

Image Editor를 만들때 RGB를 조절하여 색상을 조절하는 기능을 구현하고 HSI를 조절하여 색상을 조절하는 기능을 추가하려고 했으나 관련 지식이 너무나 부족했고, 기본적으로 Hue를 변경할 수 있게해야 하는 합당한 이유를 찾을 수...

파이썬(Python) - 유전 알고리즘, 가방 채우기 2

어제 만든 가방 채우기는 물건이 같은 부피의 같은 가치가 있는 물건이 끝없이 나열되어있고 가방에 크기에 알맞게 넣는 알고리즘이었다. 이번에는 중복없이 한개씩 제공되는 물건중에 무엇을 챙겨야 할 지 결정하는 알고리즘이다. (원래는...

파이썬(Python) - 유전 알고리즘, 가방 채우기 1

유전 알고리즘을 만들때 가장 먼저 해야할 일은 항상 evoluation 함수를 만드는 것이며 evaoluation 함수는 추악한 오리와 아름다운 백조를 분리하는 작업이다. 저번에 만들었던 소스코드는 굉장히 간단한 내용이었기에 큰 어려움이 없었다. 조금더...

파이썬(Python)으로 유전 알고리즘 구현 기록

이 블로그에서 이론을 참고했다. 책에 나와있는 것과 유사한 내용인데 좀 더 정리가 잘 된 내용인 것 같다. 간단하게 정리하면 이렇다. 용어 염색체 : 유전 정보를 담은 문자열 유전자 : 문자열의...

아두이노(Arduino)를 이용한 네오픽셀(Neopixel) 제어

이번엔 아두이노와 네오픽셀을 이용하여 무드등을 만드는 방법에 대해서 작성합니다. 제가 처음 네오픽셀을 구매했던 이유는 아이백(IM-100) 휴대폰의 자매상품인 스톤에서 영감을 얻어서 비슷한 물건을 만들어보기 위해 구매했으나 너무나 귀찮아진 나머지 모니터 뒤에서...

자바스크립트를 이용한 리디렉션

티스토리를 탈퇴했는데 블로그에 연결된 페이지가 몇몇 있는것을 확인했습니다. 그래서 다시 가입해서 링크된 페이지인 경우 이쪽 사이트로 리디렉션 해주기로 판단했습니다. 티스토리 블로그도 운영할까 생각은 해봤지만 이미 지운걸 다시 하는건 귀찮네요… 구글에...

아두이노 A4988 바이폴라 스텝모터 제어

CNC Shield v4를 이용해서 바이폴라 스텝모터를 제어하게 되었는데, 쉴드는 인터넷에서 봤던 수 많은 영상처럼 가볍게 작동 되어주지 않았다. 그래서 일단 쉴드에 부착된 모터 드라이버인 A4988만 떼어놓고 생각해 보고자 하였다.

안드로이드 스튜디오 계산기 중급 (onClick)

이전글에서는 클릭 리스너를 생성하는 과정만 다뤘으나 이번에는 XML에서 onClick을 구현하는 과정도 다루고 있습니다. 클릭 리스너를 생성하는 것이 일반적인 경우지만 때에따라 onClick으로 구현하는 경우가 효율적일 수 있습니다.

안드로이드 스튜디오 계산기 기초 (EditText, Toast)

안드로이드 스튜디오의 아주 기초적인 내용을 다뤄보며 레이아웃에 어떻게 위젯을 배치하는지 배치한 레이아웃을 소스코드에서 어떻게 제어하는지 알아보고 더하기 뺄셈이 가능한 계산기를 만들어 보겠습니다. 계산기계의 Hello World 쯤으로 생각하면 될 것 같습니다....

백준 알고리즘 16738 : 초특가 숭놀자 | Python3

하… 런타임 에러가 왜 발생하는 거냐 도대체… Python3로 제출을 했던건 그래 내 잘못이 맞아. 하지만 Python2에서 런타임 에러는 좀 아니지;

C# 윈폼 Tutorial, 시계를 만들어 봅시다.

이 글은 제가 프로그래밍 초심자일때 작성하여 가독성이 떨어질 수 있으며(작성하는 현재 최대한 보완할 예정입니다.) 좋지 못한 습관을 나타낼 수 있으므로 참고만 하도록 합시다!

Qt 레이아웃을 더 예쁘게 만드는 방법

가장 먼저 레이아웃을 더 예쁘게 만들기 위해선 기본 레이아웃을 벗어나는 것이 중요하다. 물론 기본 레이아웃 안에서도 충분히 예쁘게 만들 수 있으나 프로그램의 일관성을 유지한다거나 독특한 레이아웃으로 사람들의 시선을 사로 잡는...

텐서플로우(Tensor Flow) XOR 코드 분석

글씨가 왜 이렇게 자꾸 기울어 지는지... 핵심 소스

라즈베리파이(RaspberryPi) 스텝모터 구동

라즈베리파이에서 하드웨어를 제어해 본 경험은 단 한번도 없어서 좀 어버버 했지만 인턴넷에 찾아보니 자료가 워낙 많아서 크게 어렵진 않았다. 회로를 연결하는 방법을 찾는게 오래 결렸을 뿐이다. 사용하려는 모터 드라이버와 가장...

파이썬(Python) 단층 퍼셉트론(AND, OR) 프로그래밍

한동안 나를 우울하게 만들었던 인공신경망 퍼셉트론을 이용한 AND, OR 연산의 결과를 만들어내는 소스코드를 드디어 작성했다.

자바스크립트(Javascript) 기본 문법 정리

이전에 노트에 기록했던 내용을 블로그로 옮겨놓으려고 한다. 매우 기본적인 문법만 들어있다. 1. 변수 자바스크립트에는 변수형(int, double, string)이 존재하지 않는다. var 이라는 가변형 변수만 존재하여 초기화 할때 형태에 따라서 알아서 할당된다....

안드로이드 스튜디오 APK 파일 빌드하는 방법

제작한 어플을 플레이 스토어에 등재하거나 다른 사람에게 공유할때 APK 파일로 빌드 된 파일을 주어야 한다. 플레이 스토어에 공식적으로 올라가는 어플은 서명 과정을 거쳐야 한다. 이 포스트에선 서명에 대한 자세한 설명은...

CSS3 색상 변환 애니메이션

애니메이션 CSS에서 애니메이션을 다룰때는 브라우저마다 차이가 있어서 주의해야 한다. 이 포스트에선 크롬을 중심으로 적용되는 애니메이션만 다룬다. ▲ 만들어질 애니메이션 필자의 블로그엔 그린/블루 색상이 곳곳에 보인다. 개인적으로 좋아하는 색상이라 자주 사용한다. 블로그...

R 프로그래밍 기초 문법 정리

잠시동안 배운 R 이번에 R 프로그래밍을 배울 수 있었는데, 새로운 언어를 익혀서 재미는 있었지만 너무 수학적인 언어라 다시 쓸일이 있을까 싶은 생각이 든다. 여하간 이번에 배운 R 프로그래밍 기초 문법을...

백준 알고리즘 1037 : 약수 | C++

[백준 알고리즘] 1037 : 약수 예시 입력 : 2 4 2 예시 출력 :  8 문제를 간단히 정리하면 1과 N이 아닌 약수를 제공할테니 실제 숫자를 구하라. 그렇다. 썩 어렵지 않은 문제다....

아희 프로그래밍 안녕, 세상!

필자가 처음 아희 발견한 것은 백준 알고리즘의 소스코드 제출에 등재된 언어 목록에서다. 처음엔 오타인가? 싶었지만 그럴리는 없었고 궁금해서 인터넷에 바로 검색했다. 오직 한글로만 작성할 수 있는 난해한 프로그래밍 언어다. Hello, World! 발다빠빠따빠밪나파빠밣다빠밦다빠밪타빠밣다밣밤따밞밤따밣다빠밝타밪따빠밪타빠빠밝타밞밣따아멓희 아희의 기본적인,...

백준 알고리즘 1152 : 단어의 개수 | Python2

[백준 알고리즘] 1152 : 단어의 개수 예시 입력 :  The Curious Case of Benjamin Button 예시 출력 : 6 문제를 간단히 해석하면 이렇다. 띄어쓰기로 구분된 단어의 갯수를 파악해서 출력하라. 내 생각으로는...

Qt 프로그래밍 단축키(Shortcut) 만드는 방법

단축키는 개인적으로 프로그램의 진입장벽을 높이는 것이라고 생각한다. 단축키가 많은 프로그램은 어렵다는 고정 관념이 있다. 만약 당신이 사용하는 프로그램이 단축키로만 사용할 수 있다고 생각해 본다면 사용하고 싶을까? 그렇지 않을 것이다. 그럼에도 단축키는...

Qt 프로그래밍 Connect 단박에 이해하기

처음 Qt를 접했을때 connect 함수의 사용법이 어렵다고 느껴졌었다. 문서를 살펴보면 사용방법이 아래와 같이 작성되어 있었기 때문에 겁부터 지레 먹었다. QMetaObject::Connection QObject::connect(const QObject *sender, const char *signal, const QObject *receiver, const...

C#으로 구현한 ALU 곱셈 연산

ALU에서 부호 없는 2진수 곱셈기의 방식은 Q레지스터의 각각(처음 부터 끝까지)의 비트수가 0이면 우측 시프트를 수행하고 1일 경우 A레지스터에 M레지스터를 더해주고 우측 시프트를 진행하는 방식이다. 만약 이 문구가 이해가 안 된다면...

리눅스 민트 Qt Creator 한글 사용하는 방법

▲ 한글이 깨졌다... 어떤 사람이 인코딩 바꾸면 된대서... ▲ 약간의 삽질 후... 리눅스 민트는 한국인이 만든것처럼 한글이 자연스럽게 나왔지만 유독 Qt Creator와 Qt에서 빌드한 프로그램에서만 한글이 안됐다. 이번에 둘 다 해결할 수 있어서 참...

Qt 윈도우 파일배포 dll 쉽게 가져오는 방법

Qt에서 프로그램을 빌드하고 실행하려고 하면 다양한 오류가 발생한다.

C언어 한글로 코딩하기, 안녕 세상!

수업시간에 문득 한글 변수를 사용할 수 있다는 사실을 깨달았습니다. 그러고나선 변수 이름 말고 함수들도 다 한글로 쓰면 좋을 것 같다는 생각이 들었습니다. 물론 이전에도 수 많은 한국 사람들이 시도를 했었죠....

C언어 Rand함수 직접 만들기

C언어에서 랜덤값을 생성하기 위해선 대부분 stdlib.h의 rand()함수를 사용 할 것입니다. 하지만 rand()함수를 진짜 믿고 써도 되는 걸까요? 랜덤함수보다 더 좋은 성능의 함수를 사용하거나 만들 수는 없을까요?