블로그 이미지
흰색앵초

calendar

1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

Notice

2014. 9. 29. 19:39 프로그래밍/Android
가끔 액티비티가 아닌 다른 클래스에서 액티비티를 컨트롤 하고 싶을 때가 있습니다. 그럴땐 아래와 같은식으로 처리해주시면 됩니다.

MainActivity.java
import android.app.Activity;
import android.os.Bundle;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends Activity {

	Button button1, button2;
	TextView textView1;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		button1 = (Button) findViewById(R.id.button1);
		button2 = (Button) findViewById(R.id.button2);
		textView1 = (TextView) findViewById(R.id.textView1);
		
		ClickAdapter clickAdapter = new ClickAdapter(this);
		
		button1.setOnClickListener(clickAdapter);
		button2.setOnClickListener(clickAdapter);
		
	}

}

위와 같이 다른 클래스로 Context를 넘기시면 되구요.

ClickAdapter.java
import android.content.Context;
import android.view.View;

public class ClickAdapter implements View.OnClickListener{
	
	Context mContext;
	
	public ClickAdapter(Context context){
		mContext = context;
	}
	
	@Override
	public void onClick(View v) {
		switch(v.getId()){
		
		case R.id.button1:
			this.showText();
			break;
		
		case R.id.button2:
			this.hideText();
			break;
		}
		
	}

	private void hideText() {
		((MainActivity) mContext).textView1.setVisibility(View.INVISIBLE);
	}

	private void showText() {
		((MainActivity) mContext).textView1.setVisibility(View.VISIBLE);
		
	}

}

액티비티를 컨트롤하는 클래스에서 생성자에서 Context를 받은 뒤 위의 코드와 같이 처리해주시면 됩니다. 혹시나 궁금하신 분이 있을까 해서 정리겸 올립니다.

posted by 흰색앵초
2014. 2. 20. 00:21 Ubuntu

우분투 저장소를 이용하여 라이브러리 등을 인스톨하다 보면 가끔 접속이 안되거나 업데이트가 안되는 경우가 있습니다. 이럴 때는 미러 저장소를 추가해주면 되는데, 아무래도 한국의 미러 서버를 이용하는 것이 좋지만 의외로 다음이나 카이스트의 서버가 자주 죽는 바람에 일본의 jaist 등을 이용하는 것이 가장 좋습니다.

방법은 아래와 같습니다.

#vim /etc/apt/sources.list
####맨 밑줄에 아래를 추가하거나 기존의 저장소를 아래로 변경하세요.
deb http://ftp.jaist.ac.jp/pub/Linux/ubuntu/ Version_Here main  #Version_Here에는 버전 코드를 입력
deb-src http://ftp.jaist.ac.jp/pub/Linux/ubuntu/ Version_Here main

※ 우분투 버전코드명

10.04 Lucid
11.10 Oneiric
12.04 Precise
12.10 Quantal
13.04 Raring
13.10 Saucy
14.04 Trusty



posted by 흰색앵초
2014. 1. 1. 15:02 Ubuntu

먼저 아래의 링크를 이용하셔서 key를 받아줍니다.

key 다운로드

그런다음

apt-key add nginx_signing.key

를 입력하셔서 다운받은 키를 인증에 사용합니다.

/etc/apt/sources.list 를 연다음에 맨 마지막줄에 아래에 보이는 코드를 추가하세요.

deb http://nginx.org/packages/ubuntu/ codename nginx
deb-src http://nginx.org/packages/ubuntu/ codename nginx

위에 코드네임은 우분투 버전에 맞게 넣어주시면 됩니다. 현재 글을 쓰는 시점에서 나와있는 우분투의 코드네임은 아래와 같습니다.

Version	Codename
10.04	lucid
12.04	precise
12.10	quantal
13.04	raring
13.10	saucy

그 뒤 apt-get update 하신 다음 apt-get install nginx 를 이용하여 설치하시면 끝.


posted by 흰색앵초
2013. 8. 27. 15:34 프로그래밍/기타등등

ssh로 코딩이나 작업을 하다 보면 파일업로드가 필요할 때가 있습니다.

그런 상황이면 거의 대부분 FTP 클라이언트를 열어서 업로드 해야하는 귀찮음을 감내해야합니다만...

xshell에선 드래그앤 드랍으로 처리할 수 있습니다.

간단하게 패키지를 하나 설치하면 됩니다.

apt-get install lrzsz

설치 한 후에는 ssh창에 업로드할 파일을 드래그 앤 드랍하면 끝.

혹시나 모르시는 분들을 위한 팁!

posted by 흰색앵초
2013. 6. 1. 15:26 U2/NAS

이번 포스팅에서는 NTFS 외장하드를 우분투에 마운트 하는 방법에 대해서 설명하겠습니다. 

우선 Xshell을 이용하여 SSH로 U2에 접속해주세요. 혹은 U2에서 terminal을 실행해서 하셔도 됩니다.
※접속 방법을 모르시면 http://primrose.tistory.com/69 을 참조해주세요!

sudo su

apt-get install ntfs-3g

이제 하드를 마운트 하면 되는데, 마운트라는 것은 윈도우와 다르게 리눅스는 저장장치가 인식이 되더라도 그것을 사용하려면 마운트를 통해 다시 한번 연결하는 과정이 필요합니다. 물론 이러한점은 윈도우만을 사용하신 분들에겐 불편하게 느껴질 수 있지만, 마운트를 통해 자기가 원하는 식으로 설정할 수 있다는 장점도 가지고 있는만큼 리눅스의 특징 중 하나로 인식해주시면 되겠습니다.

먼저 마운트를 하기 위해서는 연결한 외장하드의 장치이름을 알 필요가 있습니다. 그것을 확인하기 위해서는 아래와 같은 명령어를 치면 쭉 목록이 나오게 됩니다.

fdisk -l

위와 같은 명령어를 치고 나면 아래와같은 화면이 나오게 되죠.

화면을 보시면 빨간줄이 그어진 부분이 NTFS 파티션입니다. 자세히 보시면 Device 명이 보이시는데 저의 경우에는 /dev/sda2 와 /dev/sda5를 마운트 하면 되는 것이죠. 이러한 것은 연결한 하드 갯수와 나눠진 파티션의 갯수에 따라 약간은 다르게 보이겠지만 위의 그림과 설명을 이해하시면 충분히 장치이름을 알아낼 수 있습니다.

리눅스에서의 마운트는 자신이 원하는 폴더에 하드디스크를 연결할 수 있습니다. 예를 들어 /media/hdd1/ 이라는 폴더에 외장하드를 마운트 하면 /media/hdd1/이라는 폴더에 외장하드가 연결되는 식인거죠. 이제 그럼 아래와 같이 연결하고 싶은 폴더를 만듭니다.

cd /media/

mkdir hdd1

hdd1 부분에는 자신이 원하는 폴더명을 입력하여 사용할 수 있습니다.

이제 대망의 마운트를 해볼 시간이 왔습니다.

ntfs-3g /dev/sda2 /media/hdd1

이렇게 하면 /dev/sda2가 /media/hdd1 폴더에 연결이 되었습니다. 그런데 이렇게 하면 리눅스에서는 켜져있는 동안에만 연결이되고 재부팅을 하게 되면 다시 마운트가 되어있지 않게 됩니다. 이러한 점을 해결하기 위해서는 윈도우의 시작프로그램 역할을 하는 rc.local 파일을 수정하여 부팅할때마다 마운트가 되게 설정하여야합니다.


파일을 수정하기 위해서 가장 많이 쓰이는 리눅스 에디터중 하나인 VIM을 설치하도록 합니다.

apt-get install vim

설치가 완료 되면 아래와 같은 명령어를 써줍니다.

vim /etc/rc.local

그러면 리눅스를 처음접하는 분들에게는 공포의 에디터 창이 뜨게 됩니다. 당황하지마시고 a를 누르면 수정 모드가 되고 수정을 다 한다음에 esc를 누르신 뒤 :wq! 엔터를 하시면 저장과 종료가 동시에 됩니다. 끄기 전에 아직 수정할 부분이 남았다 하시면 esc를 누르신 뒤 다시 a를 누르시면 수정모드로 들어가집니다. 

VIM에 대한 자세한 사항은 검색을 해보시면 많이 나오니 검색을 해보시면 될 것 같습니다.

이제 본론으로 돌아와서 에디터 되고 있는 rc.local의 마지막줄에 마운트 명령어를 추가해 넣습니다. 위에서 설명한 것 과 같이 화살표키를 이용하셔서 가장 밑줄로 이동한다음 a를 누르시고 마운트 명령어를 입력해줍니다.

'ntfs-3g /dev/sda2 /media/hdd1'

rc.local에서 실행되게 하기 위해서는 터미널이나 ssh창모드에서의 실행과 다르게 '로 앞뒤를 감싸주어야합니다. 입력을 하셨으면 esc버튼을 누른다음 :wq! 엔터를 누르셔서 저장한뒤 종료하시면 됩니다. 참고로 하드나 파티션이 여러개인 경우 명령어를 줄바꿈해서 더 추가하시면 됩니다.

사실 리눅스를 조금이라도 공부하신 분들에겐 이렇게 장황한 설명이 필요없지만 한번도 리눅스를 접한적이 없는 사용자 위주로 설명하다 보니 설명이 좀 길어졌네요. 다음에는 윈도우와의 네트워크 공유를 위해 삼바를 설치하는 방법에 대해서 알아보도록 하겠습니다.

궁금하신점이 있으시면 댓글로 달아주시면 아는 범위내에서 답변드리도록 하겠습니다.




posted by 흰색앵초
2013. 5. 31. 15:22 U2/NAS

이번 포스팅에서는 ftp 서버를 구축하는 방법을 설명하도록 하겠습니다. ftp 서버를 구축하기 전에 있어서 SSH[각주:1] 접속을 위해 Xshell을 설치해야합니다. 아래의 URL을 통해서 다운로드가 가능합니다.(비상업적으로 개인이 사용하는 것은 무료입니다.)

설치 후 Xshell을 실행하면 아래와 같은 화면이 나옵니다.

위의 화면이 뜨면 아래와 같은 명령어를 입력하면 접속이 됩니다.

아이디와 비밀번호는 기본값인 linaro / linaro 를 입력하시면 됩니다.

ssh 192.168.10.107

아이피 부분에는 U2에 할당된 아이피를 입력하시면 됩니다.

접속이 된 다음에는 아래의 명령어를 쳐주시면 됩니다.


sudo su

apt-get install pure-ftpd

입력후 (Y/n)이 나오면 Y하고 엔터를 눌러주시면 됩니다.

위의 명령어를 간단하게 설명드리면, sudo su는 root 권한을 행사하도록 명령을 내리는 것입니다. 리눅스는 root권한이 있어야 각종 패키지(윈도우로 말하면 프로그램 등)를 설치할 수 있습니다.

그다음 apt-get은 우분투의 패키지 관리 프로그램으로 이를 이용해서 우분투에서 사용할 패키지를 설치할 수 있습니다. 이는 리눅스마다 약간 다른데 다른 리눅스에서는 yum 등을 사용합니다. 1줄만 해석을 해드리면 apt에 등록된 pure-ftpd라는 패키지를 인스톨하라는 명령어입니다. ftp 서버 패키지는 pure-ftpd 말고도 다양한 종류가 있지만 제 포스팅에서는 pure-ftpd를 이용하도록 하겠습니다. 위의 명령어를 입력하고 나시면 간단하게 ftp 서버가 설치되었습니다. 참 쉽죠?

설치가 제대로 되었는지 확인하기 위해서 FTP클라이언트인 FileZilla를 설치하고 실행합니다. FileZilla의 다운로드 주소는 아래와 같습니다.


FileZilla로 접속하면 아래와 같이 잘 접속이 되네요. FTP 계정/비밀번호는 SSH 계정/비밀번호와 같습니다. 사실 내용은 별거 없지만 알기 쉽게 설명하려고 스크린샷 등을 많이 첨부했습니다.


보너스 : 우분투 계정 추가 및 삭제

우분투의 계정을 추가하거나 삭제를 원하시면 SSH로 접속 후 아래와 같이 입력하시면 됩니다.

계정생성 : adduser 계정이름

계정삭제 : deluser --remove-home 계정이름

====================================

궁금하신 점이 있으시면 댓글로 달아주시면 아는 범위내에서 알려드리도록 하겠습니다.

  1. 시큐어 셸(Secure Shell, SSH)은 네트워크 상의 다른 컴퓨터에 로그인하거나 원격 시스템에서 명령을 실행하고 다른 시스템으로 파일을 복사할 수 있도록 해 주는 응용 프로그램 또는 그 프로토콜을 가리킨다. 기존의 rsh, rlogin, 텔넷 등을 대체하기 위해 설계되었으며, 강력한 인증 방법 및 안전하지 못한 네트워크에서 안전하게 통신을 할 수 있는 기능을 제공한다. 기본적으로는 22번 포트를 사용한다. [본문으로]
posted by 흰색앵초
2013. 5. 29. 14:33 U2/NAS
U2에 우분투를 설치하는 방법에 대해 간략하게 설명하겠습니다. 우선 U2에 우분투를 설치하려면 우분투 이미지와 Win32 DiskImager가 필요합니다. 이 두가지는 아래의 링크를 통해서 받으시면 됩니다. 여기서 주의하셔야될 점은 이미지가 버전업이 되면 아래의 이미지 받기 링크가 안될 수 있으니 그러한 경우에는 우분투 포스트를 누르셔서 거기에 있는 최신 이미지를 받으시면 됩니다.

Win32 Disk Imager를 실행하면 아래와 같은 화면이 나오게 됩니다.


위에서 받으신 이미지를 선택하시고 Device에는 Micro SD카드의 드라이브를 선택하시면 되는데 보통은 자동으로 잡아줍니다. 그뒤에 Write 버튼을 누르고 한참을 기다리면 이미지가 Micro SD카드에 기록이 됩니다.

이미지가 다 기록된 다음에는 Micro SD를 U2에 꼽아주세요. 그 이후 전원을 연결하고 기다리면 아래와 같은 화면이 나오면서 정상적으로 부팅되는 것을 확인하실 수 있습니다.



기본적인 우분투 설치가 완료되었습니다. 다음 포스팅에서는 FTP 서버 설치에 대해서 알아봅니다. 궁금하신 점이 있으면 댓글로 달아주시면 아는 범위내에서 알려드립니다.




posted by 흰색앵초
2013. 5. 28. 14:07 U2/NAS


스펙

Processor Samsung Exynos4412 Prime Cortex-A9 Quad Core 1.7Ghz with 1MB L2 cache
Memory 2048MB(2GB) LP-DDR2 880Mega data rate
3D Accelerator Mali-400 Quad Core 440MHz
Video supports 1080p via HDMI cable(H.264+AAC based MP4 container format)
Video Out micro HDMI connector 
Audio Standard 3.5mm headphone jack
LAN 10/100Mbps Ethernet with RJ-45 Jack ( Auto-MDIX support) 


U2는 기본적으로 ARM 개발보드입니다. 그렇지만 우분투 등의 리눅스를 올릴 수 있고, 안드로이드도 올려서 사용할 수 있는 좋은 활용성이 장점이 있는 재밌는 장난감이죠. 시놀로지 등 괜찮은 NAS가 많지만, 조금이라도 싸고 커스터마이징이 쉬운 U2를 가지고 NAS를 구축해 보기 위해 구입했습니다.

현재 U2에 올릴 수 있는 리눅스는 대부분이 arm용 우분투라고 보시면 될 것 같습니다. 다른 리눅스들도 올릴 수 있지만 지속적으로 개발되고 안정적인 것은 역시나 우분투 계열입니다.

우분투 초기화면


위 버전은 12.11을 설치한 모습이며 평범한 우분투의 화면과 큰 차이가 없고 초기 버전에서는 한글 로케일 설치가 제대로 되지 않았으나, 최근 버전들에서는 한글 로케일을 설정하여 사용할 수 있습니다. 일단 FTP 서버와 토렌트 머신 용도로 쓸 예정이지만, Gimp를 사용해서 간단한 그림편집을 할 수 있고... Libro Office를 사용해서 간단한 문서 편집도 할 수 있습니다. 또한 웹서핑도 좀 느리지만 할만한 수준입니다. 그러나 그런용도로 쓰실 분이 몇이나 있을지는 좀 미지수 -_-;;


파이어폭스와 크롬 등을 이용하여 웹서핑을 할 수 있습니다. 속도는 스마트폰을 이용해서 PC페이지를 봤을때의 속도정도로 이해하시면 됩니다. 팍팍 바로 뜨진 않고 약간 기다리면 뜨는 수준이며, 애드블럭 플러그인을 사용할 수 있어서 꽤 편리합니다. 그리고 플래시는 완벽하지는 않지만 지원합니다. 복잡하게 이뤄져있거나 하는 경우엔 로딩이 안되는 경우가 더러 있습니다. 문제는 플래시 광고는 귀신같이 잘 뜨더군요 OTL...


가장 중요한 토렌트 부분입니다. 기본적으로 트랜스 미션을 탑재하고 있어서 토렌트 사용이 수월합니다. 외부에서 웹GUI나 안드로이드 앱등을 이용해서 이용하려면 트랜스미션의 설정을 바꾸셔도 되지만, 트랜스 미션(GUI 버전)을 계속 켜두는 것보다는 transmission-daemon을 따로 apt-get으로 인스톨 한 뒤에 설정하여 사용하는 것이 좋습니다. 테스트 결과 동시에 10개정도는 무난하게 받을 수 있으며 CPU 점유율도 안정적인 수준을 보여줍니다.


동영상 재생은 xbmc와 xine을 통해 할 수 있지만, 리눅스에서의 동영상 재생은 720p에 비트레이트가 조금만 높아도 버벅이는 안습함을 보여주며, 이는 안드로이드를 올려서 사용하면 완벽하게 해결할 수 있습니다. 그러나 NAS용도로 사용하기 위한 것이기 때문에 패스하도록 합니다 -_-;;


위의 사항을 간략하게 요약하고 덧붙이자면..

장점은...

일단 저전력이고 우분투를 사용하여 다양한 용도로 쓸 수 있습니다. FTP 서버용으로도 개인용으론 훌륭하게 사용할 수 있으며, 토렌트 머신으로도 꽤 훌륭한 성능을 보여줍니다. 재미삼아 nginx+php, nginx+django 등을 올려 사용해 보았는데 간단한 웹개발 테스트용으로도 충분한 역할을 해줍니다.

단점은...

리눅스에 대한 간단한 지식이 없으면 사용하는데 조금 힘들 수 있습니다. LAN이 100메가밖에 안되서 로컬 네트웍에서의 전송 속도등의 불만이 생길 수 있습니다. 그리고 USB3.0, SATA 미지원 등이 있습니다. 또한 USB 전원이 충분치 않아 USB 외장하드를 연결할때 추가 전원이 필요합니다.(2.5인치 하드의 경우 USB 포트를 2개 사용하면 전원이 공급됩니다)


===============

개인이 가지고 놀기엔 충분한 성능을 보유하고 있기 때문에, 관심이 있는 분들은 구입해서 사용하는 것도 나쁘지 않다고 생각됩니다. 그러나 셋팅의 어려움 등이 있을 수 있으니 이점은 충분히 감안하셔야겠네요. 추후에 시간이 나면 우분투에서의 U2 셋팅방법을 정리하여 올리도록하겠습니다.

예)ntfs 하드 우분투에 연결하기, 외장하드 마운트하기, 트랜스미션 데몬설정, ftp 서버 설치 등등등

posted by 흰색앵초
2013. 5. 26. 23:35 잡담


3세대 콘솔이라 할 수 있는 XBOX One과 PS4등의 사양이 발표된 가운데 차세대 XBOX의 사양과 정책에 실망한 게이머들이 악플을 달자 MS에서 댓글을 차단해버리는 초유의 사태가 발생하였습니다. 스티브 발머가 MS의 수장이 되고 나서의 MS의 행보는 거대 IT기업답지 않은 소심함과 찌질함을 향해 계속 달려가고 있군요.

애초에 게이머들 입장에서는 고성능을 가진 게임 콘솔로서의 역할을 바랬지만, MS 입장에서는 갈수록 작아지는 게임시장보다는 홈미디어를 중앙에서 컨트롤하고 지배할 수 있는 그런 플랫폼을 원했던 것 같습니다. 그래서 게임 성능보다는 TV와 홈 엔터테이먼트 기능에 초점을 맞췄고 거기에 중고게임 판매 등을 규제하는 정책들을 내놓음으로써 불만이 갈수록 고조되고 있는 것이죠.

콘솔게임기의 판매량 : 출처:VGChartz

위의 도표를 보아도 갈수록 줄어드는 판매량을 보실 수 있습니다. 갈수록 레드오션이 되어가는 상황에서 MS의 찌질함까지 더해져서 결국 MS가 콘솔 시장에서 입지가 줄어들지 않을까 하는 생각을 가지고 있지만, 북미 유저가 엄청나게 좋아하는 헤일로 시리즈 등을 가지고 있어서 당장에 망하기 직전 수준의 스코어를 기록할 것 같진 않지만, 결국 서서히 침몰하는 콘솔 시장의 상황이 MS를 더욱 더 초조하고 찌질하게 만든게 아닐까 하는 생각을 가져봅니다.

posted by 흰색앵초
2013. 4. 3. 16:30 프로그래밍/장고

장고로 검색기능을 구현할 때 영어의 대소문자를 구분하지 않고 검색해야할 필요가 있다

그럴때는 contains대신 icontains를 사용해주면 된다.

test = Test_table.objects.filter(title__icontains='abcd')

위와같이 검색을 하게 되면 Abcd aBcd ... 등등등의 경우에 대소문자를 가리지 않고 검색이 된다.


posted by 흰색앵초
prev 1 2 3 4 5 ··· 7 next