환경은 Ubuntu 16.04에서 작업함.


우선 예제 코드를 git을 통해 가지고 온다.


git clone https://github.com/firebase/friendlychat



가지고 오면 firendlychat 폴더가 생기고 

이안데 web-start 라는 폴더에 보면 index.html 이 있다.


이 폴더에 firebase 프로젝트 생성시 나오는 스니펫(?) 소스 코드를 넣어 준다.


firebase 프로젝트 생성과 소스코드 가져오는 설명은 아래 링크 참조


https://codelabs.developers.google.com/codelabs/firebase-web/#3


index.html 에 소스코드를 입력할때 다음 순서로 넣는다. 빨간 부분이 넣은 부분이다.

<!-- Firebase -->

<!-- ***********************************************************************************************************************

     * TODO(DEVELOPER): Paste the initialization snippet from: Firebase Console > Overview > Add Firebase to your web app. *

     *********************************************************************************************************************** -->


<script src="https://www.gstatic.com/firebasejs/3.5.3/firebase.js"></script>


<script>

  // Initialize Firebase

  var config = {

    apiKey: "AIzaSyCql1C-ZzCVvSoKfnjdj48Y70THgGdYZ-4",

    authDomain: "austin-gcs.firebaseapp.com",

    databaseURL: "https://austin-gcs.firebaseio.com",

    storageBucket: "austin-gcs.appspot.com",

    messagingSenderId: "41293526285"

  };

  firebase.initializeApp(config);

</script>


<script src="scripts/main.js"></script>

</body>

</html>


index.html 에 소스코드를 입력 후, 저장한 뒤에

npm 명령어를 이용하여 firebase-tools 를 설치한다.


만약 npm 명령어가 안된다면 먼저 설치 후, 위 작업을 한다.


sudo apt install npm

sudo npm -g install firebase-tools

firebase 가 제대로 설치 되었는지 확인한다.


sudo firebase version


현재 설치 했을때의 최신 버전은 3.0.8 이다. 


로그인 명령어를 통해 firebase에 로그인 한다. 


sudo firebase login


현재 구글계정을 이용하여 로그인하기 때문에 허용여부에 대한 웹 창이 뜨고 수락하면 된다.



web-start 폴더에서 아래와 같은 명령어로 현재 로그인한 계정의 프로젝트 별명을 설정할수 있다.

sudo firebase use --add



채팅 프로그램을 실행한다.


sudo firebase serve


실행 후, http://localhost:5000 (이게 기본 로컬 주소)로 접속하면 채팅 화면창이 뜬다.

메시지 입력 후, SEND 버튼을 누르면 Sign in 해야된다는 문구가 뜰 것이다...


sign-in 하는 건 소스코드를 입력해야되는 부분이다.


https://codelabs.developers.google.com/codelabs/firebase-web/#6


위 링크를 참조하여 소스 코드를 입력하여 sign-in 버튼을 활성화시켜서 화면에 나오는지 확인한다.
만약, 나오지 않는다면 확인해야할 경우의 수가 몇가지 있다.
1. index.html 순서 확인
2. 브라우저 쿠키 삭제
3. firebase.json 파일에 아래 내용 입력 후, 재 실행 

{

  "hosting": {
    "public": "./",
    "rewrites": [
      {
        "source": "**",
        "destination": "/index.html"
      }
    ]
  }
}


3번의 경우, 안해도 잘되긴 했다...


기존 데이터 불러오기 및 메시지 전송은 아래 링크에 나와 있는 내용으로 진행하면 문제없이 진행된다.


데이터 불러오기

https://codelabs.developers.google.com/codelabs/firebase-web/#7


메시지 전송

https://codelabs.developers.google.com/codelabs/firebase-web/#9


이정도면... 실시간 채팅 앱이 되긴한다.... 룰 설정과 google 계정 외의 다른 메일로의 연동은 다음에 작성해야겠다.




반응형

Ubuntu 16.04 에서 CUDA 7.5를 설치 하려면 먼저 그래픽 드라이버를 설치해야한다. 

CUDA를 다운로드 받아서 설치할때 드라이버 설치 여부를 물어보긴 하지만,

몇 번 시도해본 결과, 시스템이 꼬여서 원복하는 상황을 맞았기 때문에... 

그래픽 드라이버를 별도로 설치 후, CUDA설치 한다.


그래픽 드라이버 설치 전에 


그래픽 드라이버 설치는 repository 등록 후, update 


sudo add-apt-repository ppa:graphics-drivers/ppa

sudo apt-get update


update 이후 apt-get 으로 그래픽 드라이버 설치 


sudo apt-get install nvidia-352*


버전은 CUDA에 맞는 버전으로 한다. 7.5에서는 위 버전으로 하면 될꺼 같다....


만약 기존에 그래픽드라이버가 설치 되어 있다면, 기존 드라이버를 제거 후에 설치해야된다.


sudo apt-get remove --purge nvidia-*



그래픽 드라이버를 설치 완료 했다면 CUDA를 설치한다. 

CUDA 설치 파일 다운로드 경로는 https://developer.nvidia.com/cuda-downloads 이다.



현재 Nvidia에서 Ubuntu 16.04에 대한 CUDA 버전이 별도로 존재 하지 않아서 Ubuntu 15.04 버전의 run 파일을 다운로드 받는다.

다운로드 받은 후, 설치전에 사전에 설치해야되는 게 있다.


sudo apt-get install libglu1-mesa libxi-dev libxmu-dev libglu1-mesa-dev freeglut3-dev


CUDA를 이용하는데 필요한 라이브러리 인거 같다... 자세한건 추후에 더 알아봐야지...


사전 설치 작업이 끝나면 ALT+CTRL+F1 로 Command Mode로 전환한다.

CUDA 설치 전에 Xorg가 실행 중이면 


sudo init 3

sudo service lightdm stop


위의 명령어로 중지 후 설치를 한다.


cd {CUDA 다운로드한 경로}

sudo sh cuda_7.5.18_linux.run


실행하면 설명화면이 뜨고 q를 누르면 accept여부를 묻는다.

accept를 입력하여 다음으로 넘어가면, 그래픽 드라이버 설치 여부를 묻는데 그건 생략을 하고, 이외의 CUDA와 관련된 설치를 묻는건 모두 y를 입력한다. 

command mode여서 별도의 스크린샷은 안올리는걸로.....(약간의 귀찮음...)


성공적으로 설치하고 나면 


sudo service lightdm start

or

reboot


둘 중 하나로 정상동작을 하게 한다. 개인적으로는 reboot이 편했다는....


CUDA 설치가 끝났으면 예제 하나를 돌려서 제대로 설치가 되었는지 확인해보자.

예제는 nbody로...

기본 경로로 설치를 했다면 /usr/local/cuda 에 설치가 되었을 것이다.

cuda 디렉토리에 보면 samples 디렉토리가 있는데, 이것을 우선 권한을 현재 계정으로 부여하자


sudo chown -R {사용자계정명}:{사용자계정명} /usr/local/cuda/samples/


그리고 CUDA 7.5는 gcc 버전이 4.9이상이면 에러를 보내는데, 이 에러를 무시하기 위해서 config 파일을 고친다.


sudo vi /usr/local/cuda-7.5/include/host_config.h


host_config.h 파일을 열면 아래와 같은 부분을 주석처리 한다.


#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ > 9)


#error -- unsupported GNU version! gcc versions later than 4.9 are not supported!


#endif


그리고 예제로 nbody를 해보기 위해 다음과 같은 순서로 실행해본다.


cd /usr/local/cuda/samples/5_Simulations/nbody

make 

./nbody


정상적으로 작동을 한다면 새로운 창이 뜨고 아래와 같은 화면이 생성된다.




CUDA 7.5 는 정상적으로 설치가 되었으니... 나중에 CuDNN 설치하고, DNN 툴을 설치해서 써봐야겠다.

오늘은 여기까지!



반응형

Maven 을 이용하여 실행 가능한 Jar 파일을 만들어 보자.


게다가 Maven 에서 제공하는 Library 가 아닌 Local Library 를 추가 하는 방법 또한 메모하자.


1. 외부 라이브러리 추가하는 방법


우선, Local Library를 pom.xml 에 추가 하는 방법은 아래 코드를 넣어보자.


<repositories>

<repository>

<id>localrepository</id>

<url>file://${basedir}/lib</url>

</repository>

</repositories>


위의 url 태그 부분에 외부 Library 파일들이 있어야 되고 Dependency 로 추가하기 위해선 파일이 있는 경로를 groupId/artifactId/version/artifactId-version.jar 과 같이 해야 된다.


경로에 파일을 생성 한 뒤, Dependency 관련 정보를 아래와 같이 pom.xml 에 추가 한다. 

(직접 만든 rabbitmq library에 대한 예제. 경로는 "프로젝트 루트경로\lib\rabbitmq\rmq_queue\1.0.0\rmq_queue-1.0.0.jar" 이다.)


<dependencies>

......

<dependency>

<groupId>rabbitmq</groupId>

<artifactId>rmq_queue</artifactId>

<version>1.0.0</version>

</dependency>

......

</dependencies>



2. 실행 가능한 Jar 파일 만들기


실행 가능한 Jar 파일을 만들기 위해선 pom.xml 파일에 Build 태그를 넣어 Plugin들을 추가 한다.


 <build>

<plugins>

......

<plugin>

<artifactId>maven-compiler-plugin</artifactId>

<version>3.1</version>

<executions>

<execution>

<id>default-compile</id>

<phase>compile</phase>

<goals>

<goal>compile</goal>

</goals>

<configuration>

<encoding>UTF-8</encoding>

</configuration>

</execution>

<execution>

<id>default-testCompile</id>

<phase>test-compile</phase>

<goals>

<goal>testCompile</goal>

</goals>

<configuration>

<encoding>UTF-8</encoding>

</configuration>

</execution>

</executions>

<configuration>

<encoding>UTF-8</encoding>

</configuration>

</plugin>

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-shade-plugin</artifactId>

<version>2.4.3</version>

<executions>

<execution>

<phase>package</phase>

<goals>

<goal>shade</goal>

</goals>

<configuration>

<!-- XML schema namespaces 오류 수정을 위해 필요함 -->

<transformers>

<transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">

<resource>META-INF/spring.handlers</resource>

</transformer>

<transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">

<resource>META-INF/spring.schemas</resource>

</transformer>

<!-- 실행 가능한 jar 파일을 만들기 위해서는 main method가 존재하는 클래스를 명시해 주어야 함 -->

<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">

<manifestEntries>

<Main-Class>com.metadataCollector.metadataCollectorMain</Main-Class>

</manifestEntries>

</transformer>

    </transformers>

<!-- Dependency Reduced Pom 파일 미생성 -->

    <createDependencyReducedPom>false</createDependencyReducedPom>

</configuration>

</execution>

</executions>

</plugin>

......

</plugins>

</build>


추가 할때 Main-Class 이름을 넣어 준다. 


위와 같이 모든 준비 작업을 완료하고 mvn package 명령어로 실행가능한 jar 파일을 생성한다.


간단하게 작성했지만... 부족한 부분이 있으면 수정해야지.... 

반응형

전문연구요원 국외여행 허가 관련 신청 방법 링크!

http://harryp.tistory.com/230


반응형

신난다 첫글이다!!! 뭐 올릴지 고민해보자....

반응형

+ Recent posts