본문 바로가기

정리

R에서 mail 보내기 (ubuntu) 개발 환경ubuntu 16.04 LTSR 3.4.4 (2018-03-15) 우여곡절 끝에 ubuntu 에서 R을 이용해 mail 보내기에 성공~방법은 mailR (R), mailutils (ubuntu) , smtp 서버 가동 후, naver를 이용해 메일 보내기에 성공했다. 1. rJava(R) 패키지 설치가 되지 않아서 mailR 설치가 불가능했다.해당 이슈는 sudo apt-get install liblzma-dev 설치로 해결되었다. 이전에 다양한 방법을 시도했고 누적된 결과로 해결되었을 수 있다. 2. mailutils 패키지가 repository ?에 없어 주요 패키지를 개별 설치했다.mailx, postfix 개별 설치함 3. 마지막으로 google smtp 사용이 번거로웠다.그래서 nave..
비전공자가 본 "c 프로그래밍" 저자 윤성우 후기 프로그래밍 책에 대한 후기를 처음으로 적습니다. 제가 본책은 2010년에 나온 인쇄본으로 주황색책입니다. -총 페이지 : p 616 + 처음 보기엔 너무 많다. -추천 독자: + 한번이라도 C프로그래밍을 접해본 사람 + 컴퓨터에 흥미를 느끼는 사람 + 컴퓨터 구조에 대해 조금이라도 들어본 사람 이유 : C프로그래밍에서 필요한 내용을 골고루 다뤄줍니다. 하지만 처음 보기엔 양이 너무 많습니다. 이 책으로 속성으로 C 프로그래밍을 배우기엔 무리가 있습니다. 끈기 있게 600 page를 독학으로 배우기도 힘들지요. 스터디를 하기에도 무리가 있는거 같습니다. 스터디를 한다면 이 책과 함께 프로그래밍 문제 사이트에 가서 열심히 시도하기를 빕니다. 혹시나 영어가 가능하시다면... 가능은 아니더라도 대충 알아들을 수..
예제로 이해하는 함수 포인터 예제로 이해하는 함수 포인터#1 2015.11.06. 작성#2 2018.05.20 .수정 ex) #main.c char x(){return 'X';}char y(){return 'Y';} char (*x1)(); char (*x2[2])(); char (*(*x3))(); 위에서 x(), y() 함수는 정의되어 있습니다. 그러나 x1, x2, x3는 정의되어 있지 않습니다. 왜냐? 바로 함수를 가리키는 포인터이기 때문입니다.그러나 함수 비슷한 형태를 가지고 있습니다. x1을 보면 char (*x1) (); 이렇게 되어있는데 이것을 두가지로 분류해서 설명해보겠습니다. 예 : char (*x1)( ); (1) char (*x1) ( );우선 char를 봤을 때 return 형 또는 type이 char이다! ..
외장하드에서 vmware linux 이용시 에러 본인의 외장하드는 msata Samsung 850 EVO 250GB 이다. 당연 USB 3.0 지원 그런데 이런 vmdk 에러가 뜬다 The operation on file "C:\...-disk1.vmdk" failed.If the file resides on a remote file system, make sure that the network connection and the server where this disk resides are functioning properly. If the file resides on removable media, reattach the media.Select Retry to attempt the operation again.Select Cancel to end th..
가정이 거짓인 명제 명제 p , q 에 대하여 p -> q 가 어떤 진리표를 갖는지 조사할 때 다음과 같은 의문이 들었습니다. p q p -> q T T T T F F F T ? F F ? 위 표에서 아래 두 개 진리 값에 대한 이해가 문제였죠.흔히 truth table을 그냥 받아들입니다. 그러나 그게 싫어서 검색 해봤습니다.아래는 그와 관련된 답변입니다. 답변 1 : "가정이 거짓이면 합성 명제가 참이라고 하기로 수학자들끼리 약속했다." 이에 대한 간단한 반론은 아래... 처음 접한 답변 입니다. 하지만 그냥 약속이라고 하고 넘어가기엔 구체적이지 않고 단순했습니다.이말인 즉슨 공리라는 사실인데 검색해본 결과 그런 공리는 없었습니다.그래서 이 답은 보류~ 다른 답변입니다. 답변 2 : "p->q 는 명제이므로 참 또는 거..
ubuntu 14.04 korean language cmd$ibus-setup 1. Input Method 가서 Customize active input methods 체크 등록2. Add 눌러서 'Korean - Hangul' 넣고 close 3. 화면 좌측에 'System Settings' (기어) 에 있는 Text Entry 들어가서4. English(US)만 있을 텐데 여기에 Korean(Hangul) 넣어줘야됩니다. (하단에 + 버튼 있습니다.)5.그리고 종료하면 한글 써집니다. 중간에 컴퓨터를 다시시작하거나 할 필요 없습니다. 참고: English(US) 말고 다른 English로 설정을 하면 ' 와 ` 차이로 인해 코딩하다가 고생하실 겁니다. (심심해서 바꿨다가 피해본 1인) ps. 영어로 검색해야하는 안타까운 분들을 위해 태그는 영어로...
[Android] http 개발API 와 Android API 버전에 따른 문제 at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1147) 해결방법 -> http 를 AsyncTask (백그라운드)로 돌리면 된다.
속도 측정 원리에 대해 프로그래밍 작업을 하면서 속도 성능에 관심이 가던 중 이참에 아예 속도에 관해 정리를 하고자 이 포스팅을 준비했습니다. 아주 근본적인 부분부터 차근차근 찾아서 정리해봤습니다. 어떤 대상을 측정하기 위해선 기본적으로 기준점이 필요합니다. 예를 들어 사람이 달리는 속도를 측정할 때는 처음시간이라는 기준점을 이용하고 달리기 시작 위치를 기준점으로 잡죠. 마찬가지로 컴퓨터도 프로그램의 속도를 측정하기 위해선 두 가지 기준점이 필요하리라 생각할 수 있습니다. 프로그램의 처리량(?) 그리고 시간이죠. 얼마나 짧은 시간에 얼마나 많은 양의 데이터를 처리했는가 하는 것처럼 두 가지 기준이 필요하죠. 그도 그럴게 속도라는게 그런거죠.ㅎㅎㅎ 한편 컴퓨터에는 성능을 측정하기에 좋은 하드웨어 도구가 있습니다. 바로 CPU 입..
우분투 리눅스 패키지를 공식적으로 소개하는 페이지 http://packages.ubuntu.com/ 유용한 듯하다.
코딩 규칙에 대한 글을 읽고 찾은 몇가지 사이트다 임베디드 시장에는 크게 세 가지 코딩 룰이 있다. CERT-C, MISRA-C , JSF(Joint Strike Fighter) Air vehicle c++ standard 가 그것들이다. 룰 분야 CERT-C 모든 C 소프트웨어 MISRA-C 자동차, 항공, 우주 통신 분야 (제조업에 전체적을 포진) JSF c++ standard 전투기, 폭격기 등 미영 항공기 ... https://www.securecoding.cert.org 카네기 멜론 소속에서 운영하는 시큐어 코딩 가이드가 있는 사이트다. (cert : computer emergency response team , 카네기 멜론대에 있는 팀을 말하는데 흔히 산업에서는 불특정 침해 대응팀으로 알려져있다.) c, c++ , Java, android 등..
linux eclipse 같은 어플 버전별로 프로젝트에서 관리 이클립스 어플리케이션 관리 팁~ 같은 어플인데 다른 버전의 앱을 폰에 올려보고 싶고, 그 여러개를 다 같이 가지고 다니며 테스트하고 싶다면 다음과 같이 해당 앱 프로젝트를 복사할 것. 그 다음 수정해야 할 것은 src 폴더의 패키지 네임 입니다. 이렇게 src를 refactor하고 바꾸면 여러 경고문이 뜨는데 continue 누르면 됩니다. 여기서 끝이 아니라 체크해야할 항목이 있습니다. 1. AndroidManifest.xml 파일 여기서 package= 수정한 패키지에 맞게 이부분을 수정해줘야 합니다. 2. res/values/string.xml 파일여기서 application name을 수정해줘야 합니다. (app_name)? 3. 그 이외에 .... ( res/ 폴더 이내의 다른 것들 그리고 ap..
[해킹]Return to libc 수행 성공 /**** OS : ubuntu 14.04 LTS** Kernel : 3.16.0-30-generic** Compiler : gcc (Ubuntu 4.8.4-2ubuntu1~14.04) 4.8.4**/ 이걸 성공하기 위해선 OS와 Compiler의 환경 설정을 바꿔야 하는 부분이 있다.그 부분을 해결하면 어렵지 않았음. 1. 스택 사이즈 계산을 정확히 안건 아니지만 대략적으로 알았다.1-1. process의 메모리 할당은 절대적인 것이 아니다. 상대적인 것1-2. 따라서 이 공격도 상대적 메모리 위치를 찾아 공격하는 기법.1-3. compiler는 stack 사이즈를 얼마 할당해야 할지 코드르 돌려보고 벙위를 저장해 놓는다.kernel 의 process 관리쪽을 봐야겠구만2. 기타2-1. gdb 로 여러..