git 저장소와 작업 디렉토리 변경

요즘 이클립스와 함께 git 서비스를 사용하게 되었네요.

새로운 뭔가라고 생각하고 시작해보면

어느덧 아 그런가보다 하고 익숙해지긴 하는데

역시 세부적인 건 잘 모르겠네요.

 

내 프로젝트 오른쪽 클릭해서 Refactor > Move 로 원하는 위치로 이동하고

이클립스를 닫은 후

남아있는 .git 디렉토리도 옮겨간 프로젝트 디렉토리 안으로 이동한 후

이클립스를 실행하고

내 프로젝트 오른쪽 클릭해서 Team > share Project… 로

옮겨진 .git의 위치가 자동으로 설정된 것을 적용하면 되네요.

Windows 10 1607 and AddInParameter Problem

윈도우즈 10 1607 업데이트 설치했더니

세션카운트 하는 부분에서 말도 안되는 오류가 발생하네요.

Microsoft.Practices.EnterpriseLibrary.Data 의

AddInParameter 메서드에서 OverflowException 발생

또는 간혹 DivideByZeroException 발생

일단,  이전 빌드로 되돌리기 의 시작버튼을 눌러 되돌리니 다시 정상적으로 돌아왔네요.

0013

FORM Agency

제가 종종 기술지원을 하고 있는 사이트입니다.

모델, 스텝, 포토그래퍼, 스튜디오를 예약할 수 있답니다.

사이트를 보니 모델들이 와우~

http://formagency.net

form_agency

마인크래프트 포지 서버 1.10.2 + 옵티파인

1.10.2

마인크래프트 서버 버전을 1.10.2로 모드를 추가할 수 있도록 forge를 설치했습니다.

OptiFine 모드를 추가해보았습니다.

 

1.마인크래프트 포지 클라이언트 설치

다운 : forge-1.10.2-12.18.1.2011-installer-win

압축파일 안의 exe파일을 실행해서

아래쪽에 마인크래프트 설치위치를 확인하고 Install client 를 선택 후 확인을 클릭하면

 

다음과 같이 forge 프로필이 추가됩니다.

포지프로필.png

 

이대로 Play를 해서 다음과 같은 로딩화면이 나타나면 잘 설치된 것입니다.

포지로딩.png

 

2. Optifine 모드 추가

옵티파인모드는 마인크래프트 최적화 모드로

기본적으로 좀 더 FPS가 높게 나오며

더 멋진 그래픽을 볼 수 있게 쉐이더 팩을 설정할 수 있고

그래픽 성능을 조절할 수 있는 더 많은 그래픽 옵션을 제공합니다.

 

다운 : OptiFine_1.10.2_HD_U_C2

압축파일 안의 jar 파일을 실행해서 Install이 아닌

Extract를 눌러서 마인크래프트 설치 폴더의 mods에 저장합니다.

 

3. 테스트 동영상

아마존 클라우드에 정품 마인크래프트 서버 구축

아마존 클라우드 서비스에 가보니 12개월 무료라기에 냅다 옮겨 봅니다.

서버 버전은 최신 버전인 1.10 프로스트번(frostburn) 입니다.

아래는 서버 주소입니다.

mc.jworld.pe.kr

 

혼자서 들어가보니 아주 쾌적하네요.

수 명 정도는 버틸 수 있지 않을까 합니다.

 

AWS에서 12개월 무료로 클라우드 서비스를 받으시려면

기본적으로 신용카드가 있어야 합니다.

 

EC2에서 CentOS 7 머신이미지 고르고

인스턴스 타입은 무료는 t2.micro 고르래서 고르고

1vCPU에 메모리는 1기가네요. 마인크래프트 올리기 딱인가…

이메일로 승인하고…

 

ssh 접속하려면 좀 복잡하네요.

Key Pair 만들어서 다운 받아서

putty 사용하면 putty용으로 변환해서

접속할 때 인증옵션에 변환한 파일 추가해서 접속해야하구요.

 

파일질라는 로그온 유형을 “키 파일”로 바꾸고

받은 파일을 키 파일 찾아보기로 등록하고 접속하면 됩니다.

아무생각없이 접속해서 계정을 막 쳐대니까

뭐뭐로 로그인하라고 알려주네요.

 

yum update 해주고

자바깔고

집에서 키우는 마이크로서버에 운영중이던 소스

그대로 가져다 돌리니 잘 돌아가네요.

 

craftbukkit 1.9.2 서버에 한 참 만들던 것도 있고

모딩질 하려고 forge 1.9.4 서버도 세팅했는데

자바 실행 옵션이 1기가 사용이 기본이라

aws는 메모리가 부족해서 하나 밖에 못돌리겠네요.

 

azure에 centos 7 설치해서 named replication dig질

메인 dns서버를 클라우드에 올리기 위해 작업을 시작했다.

 

azure에 최최신 버전 centos 7.x를 깔고 named를 설치했다.

 

nslookup랑 dig이랑 대충 찍어보고 잘 되기에

리눅스의 named를 master로

윈도우즈의 dns를 slave로 만들어 보고자 했으나

dns로그에 이벤트 ID 6527과 6524로 빨갛게 채워 나갔다.

 

처음엔 윈도우 dns의 FQDN 부분이 안나와서 reverse DNS가 문제인 줄 알고

무한삽질에 들어갔다.

azure가 reverse DNS가 안되서 그런가 하고

powershell로 azure 설정하는 기능도 깔아보고

FQDN 세팅하는 것도 배워보고 했는데

ILPIP가 어쩌구 해서 내멋데로 도메인 설정도 못하고

azure에서 주는 것에 호스트명만 바꿀 수 있고 도움이 안된다.

 

윈도우즈용 BIND도 깔아보았다.

별반 다르지 않았다.

 

6527은 도메인 속성의 SOA부분에 “다음 날짜 이후에 만료” 값을

누군가(설마 난가?) 0으로 잡아놔서 발생한 문제였다.

 

6524는 본격적으로  master와의 불통을 의미하는 것이었다.

와이어샥을 동원했다.  axfr 도메인을 날렸는데 no such name 결과를 돌려줬다.

 

dig으로 q-type을 axfr로 테스트를 해보니

Transfer failed.

라고 대답한다.

 

“transfer failed on dig axfr with bind9” 라고 검색해 본다.

https://forum.linode.com/viewtopic.php?p=41149

위 글을 다 읽었다. 다행스럽게도 맨 아래쪽에 힌트가 있었다.

dnsmasq라는 녀석이 53번 포트를 사용한다는 얘기다.

이녀석 난 왜 모르는 녀석이지? dhcp와 간이 dns 역할을 한단다.

이녀석이 앞에서 가로막고 있었던 것이었다.

 

* Linux to Windows DNS Replication

master => CentOS 7.x , BIND 9.x.x

slave => Windows Web Server 2008 R2, DNS 6.x.x

 

* test Zone Transfer

dig axfr [도메인] @[dns ip]

 

* centos7 service control

서비스 가동 등 systemctl [start,stop,restart,reload,status] named

자동시작 켜기 끄기 systemctl [enable,disable] named

 

 

 

ListView in ScrollView

Screenshot_2016-04-11-14-45-09

ScrollView 안에 ListView를 넣으니 하나의 ListItem 크기 만큼만 나옵니다.

조사를 해보니 여러가지 방안들을 알려줍니다.

그 중 ListItem의 랜더링 후 높이를 알아내어 ListItem 개수 만큼 곱해서 ListView의 높이를 설정해 주는 것이 가장 적절해 보였습니다.

하지만 실제 ListItem 하나를 가져와 measure 메서드를 사용해 받아온 높이는 사용하기에 적절하지 않았고 일정한 수치를 더해서 크기를 맞춰야 했습니다.

그렇게 확인한 높이를 디버그를 통해 일치하는 값을 갖고 있는 필드를 찾아보니 있었습니다.

그래서 다음과 같이 간단하게 하나의 ListItem의 높이를 가져와서 개수 만큼 곱하고 여기에 디바이더 높이를 계산해 넣으니 정확한 ListView의 높이가 나왔습니다.

 

//ScrollView 안의 ListView 고정높이 적용
View listItem = adapter.getView(0, null, mListView);
int totalHeight = listItem.getLayoutParams().height * adapter.getCount();

ViewGroup.LayoutParams params = mListView.getLayoutParams();
params.height = totalHeight + (mListView.getDividerHeight() * (adapter.getCount() - 1));
mListView.setLayoutParams(params);
mListView.requestLayout();

 

더불어 이 ListView를 LinearLayout에 넣어 ScrollView로 싸고

LinearLayout에 배경색을 넣어보니 아래쪽 빈 곳이 생깁니다.

ScrollView에 android:fillViewport=”true” 를 넣으니 가득 채워주네요. [참조]

 

 

안드로이드 스튜디오 디자인 보기 랜더링 문제

안드로이드 스튜디오 랜더링 오류

Rendering Problems

the following classes could not be instantiated:

– android.support.design.widget.FloatingActionButton

Exception Details

android.content.res.Resources$NotFoundException: Unable to find resource ID #0x1080029
at android.content.res.Resources.getResourceName(Resources.java:2235)
at android.content.res.Resources.loadDrawableForCookie(Resources.java:2602)
at android.content.res.Resources.loadDrawable(Resources.java:2540)
at android.content.res.Resources.getDrawable(Resources.java:806)
at android.content.Context.getDrawable(Context.java:458)
at android.support.v4.content.ContextCompatApi21.getDrawable(ContextCompatApi21.java:26)
at android.support.v4.content.ContextCompat.getDrawable(ContextCompat.java:321)
at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:180)
at android.support.v7.widget.TintTypedArray.getDrawableIfKnown(TintTypedArray.java:70)
at android.support.v7.widget.AppCompatImageHelper.loadFromAttributes(AppCompatImageHelper.java:39)
at android.support.v7.widget.AppCompatImageButton.<init>(AppCompatImageButton.java:65)
at android.support.design.widget.VisibilityAwareImageButton.<init>(VisibilityAwareImageButton.java:37)
at android.support.design.widget.FloatingActionButton.<init>(FloatingActionButton.java:109)
at android.support.design.widget.FloatingActionButton.<init>(FloatingActionButton.java:105)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:835)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:70)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:811)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798)
at android.view.LayoutInflater.inflate(LayoutInflater.java:515)
at android.view.LayoutInflater.inflate(LayoutInflater.java:394)

 

Android Support Library 23.2 의 Design Support Library에 FloatingActionButton 과 관련된 버그가 있나 봅니다.

일단 디자인 보기가 안가려지게 하려면 모듈의 build.gradle 파일의 다음 부분을

compile 'com.android.support:design:23.2.0'

다음과 같이 이전버전으로 수정하고 적용해 봅니다.

compile 'com.android.support:design:23.1.1'