본문 바로가기
반응형

IT 실무154

gcc권한 일반 사용자들에게도 주기 보통 리눅스 프로그래밍 실습을 할때 cygwin이나 vmware을 사용하지만, 남는 서버가 있다면 프로그램 테스트 용으로도 쓸 수 있다. 특히 소켓프로그래밍 쪽이라면 서버가 있으면 좋다. 하지만 대부분의 상용서버는 root만 gcc를 사용 할 수 있게 되어 있다. 이 권한을 일반 사용자들에게도 넘겨 주려면 # ls -l /usr/bin/gcc -rwxr-xr-x 3 root root 63376 2월 18 2000 gcc gcc의 권한을 확인 해 보면 모든 권한이 root에게만 가 있다. # vi /etc/group gcc:x:33:someone1,somone2: group을 편집해서 gcc라는 그룹을 만들어 주고 원하는 아이디를 추가 해 준다. # chgrp gcc /usr/bin/gcc gcc폴더의 의.. 2013. 6. 14.
Fragment에서 Option Menu사용하기 public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { super.onCreateOptionsMenu(menu, inflater); menu.add(0, MENU_1, Menu.NONE, "메뉴1"); menu.add(0, MENU_2, Menu.NONE, "메뉴2"); } @Override public boolean onOptionsItemSelected(MenuItem item) { Toast.makeText(getActivity(), "BB:"+item.getTitle(), Toast.LENGTH_SHORT).show(); return super.onOptionsItemSelected(item); } 2013. 5. 17.
[Error] 카메라 구동시 Crash가 일어나는 경우 (Camera -> Crop 등) 카메라 뿐만 아니다. 여타 intent를 이용한 activity 전환시 화면이 돌아가는 경우 기존 Antivity의 내용이 날아가고 새로 onCreate되는 경우가 있다. 가장 흔한 경우가 Camera를 사용할때 이다. 사진을 다 찍고 저장을 눌러서 기존 Activity로 돌아오려는 순간 Error가 발생한다. 또는 보통 Camera로 사진을 찍고 Crop툴로 이미지를 자른 후 기존 Activity로 return하는 경우가 많은데 이럴때 Camera에서 Crop으로 넘어가려는 화면에서 오류가 난다. 많은 사람들이 Crop을 불러오는 소스에서 문제가 있다고 판단하고 시간을 잡아먹지만 실제로는 카메라가 켜진 후 다시 꺼지는 과정에서 오류가 나는것이다. 여튼 이런 류의 오류는 Manifest에서 카메라를 불러.. 2013. 2. 11.
이클립스 UTF-8로 작업하기 Window - Preferences - General - Workspace 왼쪽 하단 Text file encoding 에서 Other을 선택 후 UTF-8로 설정 2013. 2. 8.
[Error] NetworkOnMainThreadException 안드로이드 3.0부터 메인쓰레드에서 네트워크 기능을 수행할 수 없게 막아두었다. 네트워크 적인 장애 때문에 UI구성에 예외가 생기는 것을 방지하겠다는 것이다. 이 말은 안드로이드 2.x버전에서는 메인쓰레드 상에서도 네트워크를 사용 가능하다는 것이다. 이를 이용해서 굳이 메인쓰레드 상에서 네트워크를 사용 해야겠다면 여러가지 우회하는 방법이 있다. 하지만 정석대로 하려면 AsyncTask를 이용해서 멀티쓰레딩을 해 주어야 한다. 참고1 http://developer.android.com/reference/android/os/AsyncTask.html 참고2 http://croute.me/594 참고2(예제) http://makerj.tistory.com/83 2013. 2. 8.
[Error] IllegalArgumentException: Host name may not be null HttpPost httppost = new HttpPost("http://abc_def.com/"); 이런 부분에서 오류난다. 호스트 주소는 null이면 안된다는 것인데, 이는 자바에서 url내부에 있는 언더바(_)를 인식하지 못해서 호스트 주소를 제대로 파싱하지 못한 것이다. 이 오류는 HttpPost httppost = new HttpPost("http://abc_def.com/aaa.php?dd=hello world"); 와 같이 파라미터 값에 공백이 있거나 특수문자가 있어도 발생 할 수 있다. 즉, url은 호스트, 도메인, 서브 도메인, 하위 폴더, 파일 등등 복잡한 구성을 가지고 있으므로 조금만 군더더기가 있어도 인식을 제대로 못하는 것이다. 파일이나 파라미터에 언더바나 특수문자가 있을 경우 .. 2013. 2. 8.
[MySQL] 계정 생성, 권한 부여, 권한 삭제 등 1. 사용자 생성 내부적으로 mysql DB 의 user 테이블에 row를 추가하는 작업이다. 수동으로 DB에 추가 해 줘도 된다. GRANT USAGE ON *.* TO 사용자ID@접속호스트 IDENTIFIED BY "패스워드" GRANT USAGE ON *.* TO testuser@localhost IDENTIFIED BY "password" GRANT USAGE ON *.* TO testuser@"%" IDENTIFIED BY "password" *password('password')가 아님! 2. 권한 부여 내부적으로 mysql DB 의 db 테이블에 row를 추가하는 작업이다. GRANT 각종 권한들 ON 디비이름 TO 사용자ID@접속호스트; GRANT SELECT, INSERT, UPDATE .. 2013. 2. 7.
[CentOS] httpd, apache 재시작시 나타나는 에러메세지 Could not reliably determine the server's fully qualified domain name, using example.com for ServerName httpd.conf에 serverName이 설정되어 있지 않아서 그렇다. http://jmnote.com/wiki/Could_not_reliably_determine_the_server%27s_fully_qualified_domain_name http://wiki.apache.org/httpd/CouldNotDetermineServerName 위키에 잘 설명되어 있다. 둘다 참고 [warn] _default_ VirtualHost overlap on port 80, the first has precedence Virtua.. 2013. 2. 7.
[Error] Installation error: INSTALL_PARSE_FAILED_MANIFEST_MALFORMED 에러 1. pakage이름에 대문자가 쓰였을 경우 이 오류가 생길 수 있다. 2. 모든 pakage이름이 소문자라면 AndroidManifest.xml 에 오류가 있는 것이다. 주로 AndroidManifest.xml의 코드에 pakage이름 관련 오류가 있는 경우가 많다. 흔한 패턴은 pakage이름이 대문자로 쓰여서 pakage이름을 수정하면 이클립스에서 자동으로 여러 소스 파일의 해당 pakage이름을 바꿔준다. 빨간줄 즉, 컴파일 에러가 안생기므로 어디가 문제인지 모르지만 eclipse의 자동화 기능이 항상 완벽 한 것은 아니다. 보통 AndroidManifest.xml를 확인 해 보면 바꾸기 전의 pakage이름이 그대로 적용 되어 있는 경우도 많다. 이를 수정하면 해결 된다. 2013. 1. 22.
[AWT&Swing] JTable JScrollPane 크기 조절(표가 보여지는 크기) setPreferredSize(new java.awt.Dimension(int width, int height)); 행 높이 조절 setRowHeight(int row_height); setRowHeight(int row_index, int row_height); 열 너비 조절 (javax.swing.table.TableColumn 를 include 해야된다.) TableColumn column = table.getColumnModel().getColumn(int index); column.setPreferredWidth(int width); 여러 column을 조절하고 싶을때 ex) int widths[] = { 10, 50, 50, 10, 100,.. 2012. 12. 14.
[AWT&Swing] Repaint, Validate, Invalidate, Revalidate Repaint() Repaint() method just repaints the component. It is the method of Component class. Repaint() causes calls paint() method of a Component if it is a lightweight component. It is better to call the repaint method rather than paint method because painting system calls paint at appropriate time which coalesces multiple calls into one call. Another disadvantage of calling paint rather than r.. 2012. 12. 4.
[MySQL] 한글이 깨지는 문제 mysql을 설치 후 처음 사용하려다 보면 기본 collation이 latin1_swedish_ci로 되어 있어 한글이 깨지는 경우가 있다.기본 character set 및 collation을 바꾸려면 my.cnf (우분투 12.04기준 /etc/mysql/my.cnf)파일을 열어서 [mysqld] 부분에 아래 두 줄을 추가 해 준다. (UTF-8기준) character_set_server = utf8collation_server = utf8_general_ci 배포판에 따라서 언더바(_)를 사용하기도 하고 그냥 바(-)를 사용하기도 하는데 레드햇 계열은 그냥 바, 데비안 계열은 언더바인 경우가 많다. 일단 두 줄을 추가 해 주면 기본 세팅은 바뀌는데 모든 세팅이 utf-8로 되어 있는데도 불구하고 한글.. 2012. 12. 1.
[Javascript] String 관련 함수들 charAt(인덱스); 문자열의 인덱스를 인자로 받아 해당 인덱스의 문자열을 반환한다. 0~(lenght-1) ex) "abcde".charAt(3) result) d indexOf(문자열, 시작인덱스); 특정 문자열을 받아서 해당 문자열의 인덱스를 반환한다. 두번째 인자를 입력 할 경우 해당 인덱스부터 문자열을 검색한다. 찾는 문자열이 없을 경우 -1을 반환한다. ex) "abcde".indexOf(d) result) 3 ex) "abcde".indexOf(d,1) result) 2 lastIndexOf(문자열, 시작인덱스); indexOf()와 같지만 뒤에서 시작한다는 것만 다르다. 문자열의 제일 뒷부분의 인덱스가 0이다. split(구분자); 인자로 받은 구분자를 기준으로 문자열을 분할하여 배열을 .. 2012. 12. 1.
[리눅스] 정말 간단한 vi사용법 vi 파일경로/파일명 으로 파일을 연다. 파일 내용이 보일것이다. 파일이 없다면 빈 파일이 열린다. 새로 만드는 것이다. 이렇게 처음 열리면 수정이 안되는 소위 "읽기전용"모드이다. 각종 이동관련 단축키가 있다. 한 단어씩 이동 한 줄씩 이동.. 외우기 귀찮다. ←,↑,↓,→ 방향키와 Page Up, Page Down 요놈들만 사용해서 이동해도 무관하다. 더 추가하자면 home, end정도 써 준다. 명령어를 입력 하려면 : 를 입력한다. 간단히 검색, 복붙 명령어만 알아 보자 검색 /검색어 ?검색어 두개가 있다. '/'는 아래로, '?'는 위로 검색이다. 검색 해 놓고 '/'나 '?'만 쳐 주면 계속 아래로, 위로 검색한다. 이렇게 해서 원하는 위치로 이동시킨 후 편집 하면 된다. 복사붙여넣기복사 yy.. 2012. 11. 30.
[Ubuntu] 서브 도메인 적용하기 보니까 존 파일도 건들이고 이것저것 작업을 하던데.. 어떤 경우에 그런 작업을 하는 건지는 모르겠다. 나는 apache2.conf 파일만 수정하니까 잘 되었다. etc/apache2/ 디렉토리에 가면 apache2.conf파일이 있다. 데비안 계열이 아닌 다른 대부분의 리눅스에선 httpd.conf파일이 있는데 우분투 요놈은 유별난게 좀 많다. ServerName domain.com ServerAlias www.domain.com DocumentRoot /var/www ServerName sub.domain.com DocumentRoot /var/www/sub 마지막줄에 위와 같이 추가 해 주고 서버를 아파치를 리스타트 시켜 준다. sudo /etc/init.d/apache2 restart 적용되는데 시.. 2012. 11. 30.
[Windows API] WIN32_FIND_DATA 구조체 Windows.h 에서 정의 되어 있는 구초제이다. FindFirstFile, FindNextFile같이 파일 정보를 넘겨주는 함수와 호환된다. typedef struct _WIN32_FIND_DATA { DWORD dwFileAttributes; FILETIME ftCreationTime; FILETIME ftLastAccessTime; FILETIME ftLastWriteTime; DWORD nFileSizeHigh; DWORD nFileSizeLow; DWORD dwReserved0; DWORD dwReserved1; TCHAR cFileName[MAX_PATH]; TCHAR cAlternateFileName14]; } WIN32_FIND_DATA, *PWIN32_FIND_DATA, *LPWIN32.. 2012. 11. 16.
[Jquery Mobile] Dialog의 Close버튼 없애기 Popup은 바깥 부분을 클릭할 경우(모바일의 경우 터치) 팝업이 닫힌다. 하지만 Dialog는 Close버튼이나 Dialog페이지상의 data-rel="back" 속성이 들어간 버튼을 클릭 해야만 창이 닫히는데, 이를 이용해서 어떤 이벤트가 발생 했을 경우 강제로 Dialog에 있는 두가지 선택 중 하나를 선택 하도록 강요할 수 있다. 그러려면 기존에 있는 Close버튼(상단의 x모양 버튼)을 없애야 하는데 아래와 같은 css스타일을 추가 해 주면 된다. .ui-dialog .ui-header a.ui-btn { display:none; } 2012. 11. 16.
[Jquery Mobile] $.mobile.changePage - 페이지 이동 메소드 href나 location.href를 사용하지 않고, Jquery Mobile의 자체 메소드를 사용 하려면 저렇게 쓴다. $.mobile.changePage("원하는 페이지"); 같은 파일 내에서의 이동은 $.mobile.changePage("#location"); 다른 파일로의 이동 $.mobile.changePage("location.php"); 효과주기 $.mobile.changePage("#location",{ transition: "slideup"}); 기타 옵션 $.mobile.changePage("#location",{ transition: "slideup", reverse: true}) 2012. 11. 16.
반응형