전체 글
- [android] flutter guide 2020.10.28
- [Android] JavaDoc 사용법 링크. 2020.10.28
- [Andriod] Timer and TimerTask 2020.10.22
- Singleton class 설계 2020.10.07
- Android Studio 입력 멈춤 (입력 불가, frozen typing ) 이슈 관련 정리 2020.10.06
- Ubuntu 에서 숫자키패드( number pad)로 방향키 사용하기 2020.08.26
- 지도 정보를 활용하기 위한 데이타 구하기 2020.05.12
- Conda 설치, SSL error 대응 2020.01.14
[android] flutter guide
[Android] JavaDoc 사용법 링크.
'Android, Java,Kotlin' 카테고리의 다른 글
JNI, Native code build 시 유의점 (0) | 2022.04.21 |
---|---|
[Copy&Paste]String 다루기 (0) | 2020.11.11 |
[Copy&Paste] Array를 List로 바꾸기 (0) | 2020.11.04 |
[Andriod] Timer and TimerTask
public class SimulatorView extends View{
TimerTask timerTask = new TimerTask(){
int frame = 0;
@Override
public void run() {
// sim.grow();
frame++;
if(frame > 100) {
invalidate();
frame = 0;
}
}
};
:
public void start(){
timer = new Timer();
timer.schedule(timerTask,0, 20);
}
}
'개발 Note > Codes' 카테고리의 다른 글
Singleton class 설계 (0) | 2020.10.07 |
---|---|
C++ object 관리를 위한 ObjectRef 구조 설계 (0) | 2015.06.26 |
sorting algorithms (0) | 2014.02.26 |
c++ while 문 - 잘 안쓰는 표현 (0) | 2013.10.23 |
UML2 Sementics (0) | 2012.01.11 |
Singleton class 설계
유용하면서 간단한 디자인패턴 : 싱글톤 패턴
Singleton class Basic type
public class Singleton {
private volatile static Singleton uniqueInstance = null;
private Singleton() {}
public static Singleton getInstance (){
if ( uniqueInstance == null){
synchronized( Singleton.class){
if (uniqueInstance == null)
uniqueInstance = new Singleton();
}
}
return uniqueInstance;
}
}
'개발 Note > Codes' 카테고리의 다른 글
[Andriod] Timer and TimerTask (0) | 2020.10.22 |
---|---|
C++ object 관리를 위한 ObjectRef 구조 설계 (0) | 2015.06.26 |
sorting algorithms (0) | 2014.02.26 |
c++ while 문 - 잘 안쓰는 표현 (0) | 2013.10.23 |
UML2 Sementics (0) | 2012.01.11 |
Android Studio 입력 멈춤 (입력 불가, frozen typing ) 이슈 관련 정리
2020-10-06 기록 -
몇달 전부터 제 컴에서 android studio에서 코딩 중에 키보드 타이핑이 안되는 현상이 발생했습니다.
(귀차니즘으로 이제야 적어보네요)
OS - Ubuntu 14.04
다른 기능들은 다 되는데, 타이핑만 안되는 문제.
구글링해서 원인이 무엇인지 찾아봤는데, 정확하게 이것이 문제다 라고 확답이 명확하지 않더군요.
그리고 다양한 OS들에서 비슷한 현상들이 있는것 같습니다.
해결책 중 하나인 XMODIFIERS를 이용하는 방법인데, 제 경험으로는 이 방법이 가장 해결책에 근접했던것 같습니다.
원인이 iBus와 충돌이 있는것으로 보이는 문제에 대한 해결 방법인데,
android studio 실행을 아래와 같이 XMODIFIERS로 실행하는 방법입니다.
$ XMODIFIERS= ./bin/studio.sh
[출처]stackoverflow.com/questions/30756488/keyboard-issues-with-android-studio-on-ubuntu
이 방법도 사실 완벽하진 않았던것이, 타이핑에는 문제가 없었지만, symbol을 찾거나 하는 기능들이 잘 동작하지 않을때가 있었습니다.
이상!!. 즐거운 코딩생활!!!
'Linux' 카테고리의 다른 글
using shared samba folder in ubuntu. (0) | 2020.12.04 |
---|---|
[Ubuntu VMWare] resolution issue 를 해결하기 위한 솔루션들 (0) | 2020.11.27 |
Ubuntu 에서 숫자키패드( number pad)로 방향키 사용하기 (0) | 2020.08.26 |
relro,Stack Canary 방어 (0) | 2018.06.05 |
tput: no value for $term 에러 발생 (0) | 2017.11.21 |
Ubuntu 에서 숫자키패드( number pad)로 방향키 사용하기
숫자 키패드의 방향키에 익숙하신 분들은 , 우분투나 리눅스 계열에서 사용할때
control/shift/alt 와 같은 키 조합과 같이 사용할때 windows에서와 동작이 달라서 상당히 불편함을 느끼게 되실 겁니다.
home, end, page up, page down 이 모두 한곳에서 처리가 되기 때문에 여기에 익숙해지신 분들은 number lock이 켜질 틈이 없죠 ^^.
저도 너무 숫자 키패드의 방향키에 익숙해져서 일반 방향키에는 손이 잘 안갑니다.
(진지하게 96 keyboard로 바꿀까 고민이 되는 부분)
그런데 리눅스 와 Windows의 방향키와 숫자패드의 방향키가 다르게 동작합니다.
그래서 항상 이를 수정해서 사용하는데,
저와 같은 분들이 있을것 같아서 정리 했습니다.
xmodmap 을 이용해서 key code를 아래와 같이 변경하고 나면, 숫자키와 방향키의 동작을 같게 맞출 수 있습니다.
$ xmodmap -e "keycode 80 = Up"
$ xmodmap -e "keycode 88 = Down"
$ xmodmap -e "keycode 83 = Left"
$ xmodmap -e "keycode 85 = Right"
물론 이방법 외에도 여러가지 방법들이 있는 것으로 알고 있습니다.
--------------------------------------------------------------------------------------------
2nd way
Here's how I got numeric keys working with java applications (like Intellij) on a Debian derivative of Linux:
- Switch to root user
- cd /usr/share/X11/xkb/symbols
- cp keypad keypad.original (just in case)
- Edit keypad and replace all occurrences of KP_Up, KP_Down, KP_Left & KP_Right with Up, Down, Left & Right, respectively
- Save
- dpkg-reconfigure xkb-data
- Reboot
즐거운 코딩생활!!
'Linux' 카테고리의 다른 글
[Ubuntu VMWare] resolution issue 를 해결하기 위한 솔루션들 (0) | 2020.11.27 |
---|---|
Android Studio 입력 멈춤 (입력 불가, frozen typing ) 이슈 관련 정리 (0) | 2020.10.06 |
relro,Stack Canary 방어 (0) | 2018.06.05 |
tput: no value for $term 에러 발생 (0) | 2017.11.21 |
link error, undefined symbol (0) | 2017.03.28 |
지도 정보를 활용하기 위한 데이타 구하기
진행하고 있던 프로젝트에서 지도 정보가 필요하여 찾아봤던 자료들 입니다.
무료로 좌표계를 받을수 있는 곳을 찾기가 힘들어 고생했던 기억이 있어서 그당시 찾아봤던 site들을 정리해봤습니다.
결국 위도 경도 정보를 data로 구해야 해서 저는 python panda로 data를 구했었습니다.
https://www.esrikr.com/arcgis-guide/arcgis-pro-master-2/
지도 정보 찾기
Global Map data archives
https://globalmaps.github.io/glcnmo.html#code
http://www.diva-gis.org/datadown
https://datascienceschool.net/view-notebook/ef921dc25e01437b9b5c532ba3b89b02/
pandas
import geopandas as gpd
import matplotlib.pyplot as plt
import matplotlib.path as mpath
import matplotlib.patches as mpatches
gpd.__version__
def get_pos(PosData) :
return PosData[0],PosData[1]
print(gpd.__version__)
countries = gpd.read_file(gpd.datasets.get_path('naturalearth_lowres'))
cities = gpd.read_file(gpd.datasets.get_path('naturalearth_cities'))
#countries.tail(3)
print(countries.name)
china = countries[countries.name == "China"].geometry
china.boundary.squeeze()
china.plot()
rect = china.total_bounds
fig = plt.figure()
ax =fig.add_axes(rect,)
fig.delaxes(ax)
fig.add_axes(ax)
# sub plot
# ax = plt.subplots()
# pos = [[china.total_bounds[0],china.total_bounds[1]],
# [china.total_bounds[2],china.total_bounds[1]],
# [china.total_bounds[2],china.total_bounds[3]],
# [china.total_bounds[0],china.total_bounds[3]]]
# Path = mpath.Path
# path_data = [
# (Path.MOVETO, (pos[0])),
# (Path.LINETO, (pos[1])),
# (Path.LINETO, (pos[2])),
# (Path.LINETO, (pos[3])),
# (Path.CLOSEPOLY, (pos[0])),
# ]
# ax.plot(path_data)
# #
# codes, verts = zip(*path_data)
# path = mpath.Path(verts, codes)
# patch = mpatches.PathPatch(path, facecolor='r', alpha=0.5)
# ax.add_patch(patch)
# x, y = zip(*path.vertices)
# line, = ax.plot(x, y, 'go-')
# ax.grid()
# ax.axis('equal')
plt.figimage(fig)
plt.show()
#china.
with open("china_map.txt", mode='wt') as f:
f.write(china)
print(china)
#ax.set_title("세계 지도")
#ax.set_axis_off()
#print(countries)
i=0
while 1 :
i+=i
결과
result:
"{\"type\": \"FeatureCollection\", \"features\": [{\"id\": \"139\", \"type\": \"Feature\", \"properties\": {}, \"geometry\": {\"type\": \"MultiPolygon\", \"coordinates\": [[[[109.47520958866365, 18.197700913968575], [108.65520796105616, 18.507681993071387], [108.62621748254044, 19.367887885001906], [109.11905561730804, 19.821038519769345], [110.21159874882281, 20.101253973872033], [110.78655073450221, 20.077534491450052], [111.01005130416458, 19.69592987719072], [110.57064660038677, 19.25587921800927], [110.33918786015147, 18.678395087147592], [109.47520958866365, 18.197700913968575]]], [[[80.2599902688853, 42.34999929459906], [80.1801501809943, 42.92006785742694], [80.86620649610126, 43.18036204688101], [79.96610639844141, 44.91751699480463], [81.9470707539181, 45.31702749285312], [82.45892581576906, 45.539649563166506], [83.18048383986047, 47.33003123635086], [85.16429039911324, 47.0009557155161], [85.72048383987067, 47.452969468773105], [85.7682328633083, 48.45575063739699], [86.59877648310336, 48.549181626980626], [87.35997033076265, 49.21498078062912], [87.75126427607671, 49.297197984405486], [88.01383222855173, 48.599462795600616], [88.85429772334676, 48.069081732772965], [90.28082563676392, 47.69354909930793], ...
'개발 Note > it 이야기' 카테고리의 다른 글
DevOps 선택하기... (0) | 2022.05.25 |
---|---|
SW를 개발하기 위해서는 가장 중요한것이 무엇인가?? (0) | 2021.08.20 |
AI assistant battle (1) | 2019.10.29 |
Synergy (0) | 2019.09.27 |
Galaxy Home - mini (0) | 2019.08.28 |
Conda 설치, SSL error 대응
Conda 설치
여기에서 각 OS에 맞는 anaconda를 설치하세요.
https://www.anaconda.com/distribution/
설치후 shell을 실행하면, (base) 로 conda가 활성화 되어있습니다.
이를 제거 하려면,
$ conda config --set auto_activate_base false
이렇게 설정 하시면 됩니다.
사용 방법
conda 설치 후에 가상 환경을 만듭니다.
$ conda create -n torch python=3.6 # torch라는 가상 환경을 만듭니다.
(torch) $ conda activate torch # 가상환경 torch를 activate 시킵니다.
(torch) $ conda deactivate # 가상환경 torch를 deactivate 시킵니다.
[출처] [Ubuntu18.04 환경설정] Anaconda3 설치 및 가상환경 생성|작성자 DL연구생
Trouble shooting #1
conda 설치할때, 방화벽이 있거나 보안이 철저한 환경에서 셋업을 할때는 아래와 같은 설정을 해줘야 합니다.
이런 정보들 찾아서 시도해보고 다시 정리하고 하는 것은 정말 많은 시간을 낭비하게 되네요.
회사들 마다 보안 환경들이 모두 다르기 때문에 더더욱 시간 허비가 심하죠.
그래서 도움이 될까 해서 정리 했습니다.
SSL 또는 Proxy error
ConnectTimeout(MaxRetryError("HTTPSConnectionPool(host='repo.anaconda.com', port=443): Max retries exceeded with url: /pkgs/main/linux-64/current_repodata.json (Caused by ConnectTimeoutError(, 'Connection to repo.anaconda.com timed out. (connect timeout=9.15)'))"))
프록시 설정을 .condarc 파일 에서 하기
ssl_verify: <my crt file>.crt
proxy_servers:
http: http://<proxy server url : port>
https: https://<proxy server url : port>
다른 방법
cert file 설치을 pip 의 certi file 로 설정하는 방법
pip config set global.cert path/to/ca-bundle.crt
pip config list conda config --set ssl_verify path/to/ca-bundle.crt
conda config --show ssl_verify# Bonus while we are here...
git config --global http.sslVerify true
git config --global http.sslCAInfo path/to/ca-bundle.crt
패키기 설치(Package install)
conda install [pkgname]
[참고]
conda configuration guide
'머신러닝 & 텐서플로 & 파이썬' 카테고리의 다른 글
트랜스포머는 시퀀스-투-시퀀스(seq2seq) 모델입니다. (0) | 2023.09.25 |
---|---|
cer file을 pem 변환하기 (0) | 2020.01.14 |
GAN 스터디 (0) | 2019.03.27 |
데이타 크롤링 (0) | 2018.04.02 |
머신러닝 유투브 영상모음 (0) | 2018.03.29 |