2014년 10월 20일 월요일

Computer Networking A top-down approach 정리 6

wireless and mobility network

  • wireless host: smart phone, laptop etc.
  • wireless link: host는 wireless link를 통해 base station 이나 다른 wireless host에 연결된다.

2014년 10월 19일 일요일

Computer Networking A top-down approach 정리 5

Link layer


  • host와 router는 node, node를 연결하는 통신 채널은 link
  • link layer에 의해 교환되는 data의 단위를 frame이라하여, network layer의 datagram을 캡슐화한다.
  • 오류검출, 재전송, 흐름제어, 랜덤 접속과 같은 기능을 수행한다.
  • link layer protocol의 예로는 ethernet, 802.11, wifi, token ring, PPP, ATM 등이 있다.
  • path상의 각 link에서 서로 다른 link layer protocol에 의해 datagram이 처리될 수 있다. 예를 들면 첫번째 link는 ethernet에 의해 처리되고, 두번째 link는 WAN protocol에 의해 처리될수 있다는 것이다.

2014년 10월 17일 금요일

Computer Networking A top-down approach 정리 4

Network layer
forwarding: router의 input link에서 output like로 packet을 전달하는 내부 동작.
routing: forwarding + network의 모든 router(between a source and a destination)의 packet path를 결정하는 것.


2014년 10월 5일 일요일

운영 vs 운용

운영03(運營)[우ː녕]   
명사
「1」조직이나 기구, 사업체 따위를 운용하고 경영함.
「2」어떤 대상을 관리하고 운용하여 나감.

운용(運用)[우ː뇽]   
명사
무엇을 움직이게 하거나 부리어 씀.


<출처: 국립국어원 표준어대서전>


네이버 지식인에 의한 풀이,
운영(運營): 어떤 시스템 전체를 관리하고 다룸.
운용(運用): 어떤 시스템 안에서 한 가지(또는 여러 가지, 그러나 전체가 아닌 부분으로서) 요소를 다룸.

을 쓸지 운을 쓸지 모호할 때는, 칸을 비워넣고 다른 단어를 대신 썼을 때 경영(經營)이라는 말이 더 어울리면 운이 맞고, 활용(活用)이라는 말이 더 어울리면 운이 맞다고 구분할 수도 있습니다.



Computer Networking A top-down approach 정리 3

Application layer.

developer가 실제 application을 개발할 때, 주로 Java, C/C++같은 언어의 API를 이용하여 개발한다.
따라서, 실제로 developer는 socket의 application에 대한 설정만 할 뿐이지, socket의 transport layer에 대한 제어를 할수 있는 것은 아니다.
transport layer에 할 수 있는 제어(설정)은 transport의 protocol 설정, max buffer size, max segment size, parameters 설정이 뿐이다. 



2014년 10월 3일 금요일

Papaer reading method.

논문 읽기

Problems
1. 한줄한줄 읽다보니 앞의 내용을 까먹음.
2. 내용이 너무 많아. 뭘 주로 보고 기억해야 하는가.
3. 한 편 읽는데 하루 종일 걸림.

어떻게 읽을 것인가?

Solutions

  1. 모든 논문은 이야기이다. 논문은 "예전에 검증된 사실들"을 토대로 하여, "
    새로 검증된 사실"에 대해 쓰는 이야기 이다.
    쓰는 이도 "어떻게 해야 "지금 검증된 사실"을 좀더 정확하게, 좀더 설득력 있게, 한번에 읽히도록 쓰는가" 라고 고민을 한다.
    Abstract는 3번 읽어라.
  2. 첫줄은 실마리다. (아마도 abstract 다음에 나오는 문단의 첫문장을 의미하는 건가?)
  3. 모든 내용은 첫줄에서 시작한다. 따라서, 각 문단의 첫줄은 작은 이야기를 좌우한다.
  4. Figure는 논문의 꽃이다. 그림이 무슨 말을 하는지 알면 절반은 간것.


MATLAB function


This page is continuously updating...

  1. To calculate combination,
    nchoosek(x, y); % This function means "xCy".
  2. vector inner product
    dot(A,B) or sum(A.*b)
  3. vector outer product
    cross(A,B)
  4. To drawing graph,
    axis([ x-axis_start x-axis_end y-axis_start y-axis_end])
    ( e.g. axis([1 10 1 100]) )

    title('title') %To write figure's title




Computer Networking A top-down approach 정리 2

1. Protocol hierarchy and Service model
network는 계층적 구조를 가지고 있음. 
복잡한 시스템를 사람이 잘 이해할 수 있도록 하기 위해 각각의 단계로 구분함. 단순화 시킴.
각 계층에 대한 구현을 변경하기도 쉽고, 특정 계층의 구현 변경이 다른 계층에 영향을 미치지 않음.(interface를 준수하는 한.)


Computer Networking A top-down approach 정리 1

1. internet components

인터넷을 통해 연결되는 모든 devices를 host 또는 end system 이라고 부름.

각각의 host들은 communication link와 packet switch의 네트워크로 연결된다.

communication link들은 광케이블, 구리선 등을 포함한 physical media(물리 매체)로 구성되며, 각각의 링크들은 다양한 transmission rate(링크 대역폭, 전송률)을 이용하여 data를 전송한다.


2014년 8월 19일 화요일

우분투 명령어




  • lspci : Display each device information. (각종 디바이스 정보 확인)

우분투 12.04 LTS 한글화 작업



  • 한글화 작업 (Desktop version - 한/영키와 Alt가 나뉘어짐)
    1. language support에서 한국어 팩 설치.
    2. 재부팅하여 한글로 나오는지 확인.
    3. apt-get install nabi
    4. 재부팅하고, 언어지원(language surpport)에서 키보드 입력기로 nabi 선택
    5. gsettings set com.canonical.Unity.Panel systray-whitelist "['JavaEmbeddedFrame', 'Wine', 'Update-notifier', 'Nabi']"
      • 입력하여 nabi 설치 후 생기는 별도의 창을 안보이게 설정임.
    6. system settings에서 keyboard layout 클릭
    7. '+' 클릭 "Korean" 선택
    8. Korean 과 Korean(101/104 keycompatible) 중에 Korean 선택후 add
    9. 재부팅 후 한글 변환 및 입력 확인
  • Source
    1. http://sarghis.com/blog/442/
    2. http://deviantcj.tistory.com/430

Login screen에서 화면 멈춤 현상 해결 방법.




  • How to solve screen freeze on login screen.
    1. First of all, You have to install each device driver except for graphic driver.
    2. To install graphic driver, Execute the below commands.
      1. sudo apt-add-repository ppa:ubuntu-x-swat/x-updates
      2. sudo apt-get update
      3. sudo apt-get install nvidia-current
      4. sudo apt-get install linux-headers-3.5.0-17-generic
        1. If you see the error message, execute the below command.
          • sudo apt-get install linux-headers-generic
      5. sudo apt-get remove nvidia-current
      6. sudo apt-get install nvidia-current
  • Source
    1. http://askubuntu.com/questions/202677/nvidia-driver-doesnt-work-in-12-10
    2. http://windowsforum.kr/lecture/3807519

How to hide many user accounts in login screen.




  • I want to hide my several ubuntu account such as ftp, svn in login screen.
  • (우분투 12.04 로그인 스크린에서 사용자 계정이 여러개가 존재할 때 계정을 안보이게 하는 방법)
    1. You have to be root to perform this way.
      If you are not root then be root by executing following command.
      : sudo su -
    2. Backup the original file by executing following command.
      : cp -p /etc/lightdm/lightdm.conf /etc/lightdm/lightdm.conf.orig
    3. Open lightdm.conf by executing following command.
      : vi /etc/lightdm/lightdm.conf
    4. Enter following line to [SeatDefaults] Selection: ~
      : greeter-hide-users=true

      * Example (your lightdm.conf should look like below)
        [SeatDefaults]
        greeter-session=unity-greeter
        user-session=ubuntu
        greeter-hide-users=true
    5. Save the file and Exit
    6. Reboot ubuntu 12.04
  • Actually, the source of this post exist. However i did not remember source URL.

How to make remote desktop connection in Ubuntu 12.04




  • Ubuntu 12.04 DeskTop에 ssh로 원격으로 접속

    1. sudo apt-get install xrdp
    2. 원격 접속 후 바탕화면 메뉴가 안나오는 경우 (after remote connecting, if you cannot see Desktop menu. )
      1. sudo vi ~/.xsession
      2. gnome-session --session=ubuntu-2d
    3. 재부팅

Average, Mean, Mode, Median


  • Average(Central tendency): 평균, 그룹(집합)의 대표 값

     1. Mean
    • (All variables의 총합) / (variables의 갯수)
    • Example
      A는 100점, B는 80점, C는 50점이면, Mean은 (100+80+50)/3 = 76.
    • 위의 예제와 같은 경우 Mean을 "arithmetic mean"이라고 하기도 함.
     2. Mode
    • 가장 자주 나오는 값. (빈도수가 가장 높은 값)
    • Example
      A는 100점, B는 50점, C는 50점이면, Mode는 50.
     3. Median
    • All variables를 크기 순서로 나열 했을때, 중간에 위치하는 값.
    • Example
      A는 50점, B는 100점, C는 30점 이면, Median은 [100, 50, 30]에서 중간에 위치한 50.
      만일, A는 50점, B는 100점, C는 30점, D는 70점 이면, Median은 [100, 70, 50, 30]에서 정확히 중간에 위치한 값이 없으므로, 70과 50을 선택하고, 이 두 값의 평균인 60으로함.
      * Average와 Mean은 완벽히 같은 의미가 아님.
      * Average는 Sample(그룹/대표)을 가장 잘 표현해주는 값을 의미한다. 따라서 Mean,Mode, Median 같은 것이 될 수있다.
 


Java Map을 iteration 시키는 세 가지 방법.

Three way to iterate Java Map.

import java.util.Map;

public class MapTest{
    public static void main(String[] args){
        Map map = new HashMap();

        map.put("key1", "value1");
        map.put("key2", "value2");
        map.put("key3", "value3");
        map.put("key4", "value4");
        map.put("key5", "value5");

        // solution 1
        Iterator keys = map.keySet().iterator();
        while(keys.hasNext()){
            String key = keys.next();
            System.out.println("key: " + key + ", value: " + map.get(key));
        }

        // solution 2
        for( Map.Entry elem : map.entrySet() ){
            System.out.println( String.format("key : %s, value : %s", elem.getKey(), elem.getValue()) );
        }
        
        // solution 3
        for( String key : map.keySet() ){
            System.out.println( String.format("key : %s, value : %s", key, map.get(key)) );
        }
    }
}

Eclipse "Workspace In Use Or Cannot Be Created Error" solution.


  • Before starting this post, I first reveal the source of a solution.
  • I solved eclipse error using this solution.
  • source: http://viralpatel.net/blogs/eclipse-workspace-in-use-or-cannot-be-created-error/

Most of the time this is because I have opened a lot of applications that I am working on and this takes a bit of memory. So finally everything just get hanged and does not have enough RAM to work on.
Thus, Eclipse just get hanged and what I do is to kill the eclipse process.

But next time when you try opening the workspace it gives you error “Workspace in use or cannot be created, choose a different one.”



This is because, Eclipse creates a .lock file in the workspace and make the workspace lock. This is to avoid opening the same workspace in different eclipse process.
But when Eclipse is crashed or you kill the process to free the memory, it does not delete the .lock file in workspace folder and thus you cannot open the workspace again with eclipse.


To avoid this problem, simply locate the .lock file in your workspace folder and delete it. Please do not delete the .lock file if eclipse is already opened.


Eclipse Debugging 관련 shortcut.


1. Break Point : Ctrl + Shift + B
2. Step Into(F5) : 프로그램을 한 스텝 진행, 다음 실행 문이 Method 안이면 함수 안으로 들어감
3. Step Over(F6) : 프로그램을 한 스텝 진행, 함수 호출을 지나치고 현재 위치에서 한 스텝씩 진행
4. Step Return(F7) : 현재 Method 끝까지 바로 가서 리턴 후 Method 호출한 곳으로 되돌아감
5. Resume(F8) : Thread를 다시 진행시키고 다음 Break Point까지 실행
6. Suspend : Thread를 일시 정지
7. Terminate : 디버깅을 종료

* 추후 많이 쓰는 것 업데이트 할 것.

Eclipse SVN설정 시 Connector 자동 설치 안됐을 경우 수동 설치 하는 방법.


1. 이클립스 메뉴 -> help -> install new software -> [add] 버튼

2. Name : svn connector
   Location : http://www.polarion.org/projects/subversive/download/eclipse/3.0/update-site/

3. OK 클릭