우체국의 우편번호 주소 DB 텍스트 파일을 열어보니 ANSI 로 나오는데 mysql 에 밀어 넣으려면 utf-8 로 변환해야 합니다.

ANSI 인데 한글인 경우 cp949 를 utf-8 로 변경하면 됩니다. ( euc-kr 로 하니까 샾아파트 같은 문자는 깨지네요~ )

AcroEdit 와 같은 편집기를 이용해서 변환해도 되지만 리눅스 명령어로 치환하는 방법입니다.

[root@ivps zipcode_DB]# file -bi 강원도.txt
text/plain; charset=iso-8859-1
[root@ivps zipcode_DB]# iconv -c -f cp949 -t utf-8 강원도.txt > 강원도1.txt
[root@ivps zipcode_DB]# file -bi 강원도1.txt
text/plain; charset=utf-8

 

블로그 이미지

영은파더♥

가상서버호스팅 VPS 리눅스 서버관리 윈도우 IT

,

윈도우의 모니터 화면을 로컬네트워크(유.무선) 대역에 있는 스마트폰의 스크린으로 모니터를 확장할 수 있는 프로그램입니다.

안쓰는 스마트폰이나 태블릿을 듀얼모니터로 활용이 가능합니다~

https://spacedesk.net/ 여기에서 다운로드 받으시면 됩니다.

SpaceDesk 무선 모니터 확장 프로그램

윈도우7, 8.1, 10 버전에서 PC용 프로그램을 설치한 다음에
확장 모니터로 활용할 Remote Viewer 는 윈도우, 안드로이드, iOS, HTML5, 아마존에서 설치를 할 수 있습니다.

스마트폰 두대도 확장 연결이 되더군요~ 최대 몇 대까지 될지는 모르겠지만  x10 가 있는 것으로 보아 10대까지 가능한 것 같습니다.

확장 모니터로 연결된 스마트폰 화면입니다.

세로 모드와 가로 모드로 전환시 끊김 현상이 있지만 생각 보다 훌륭한 프로그램 같습니다.

 

SpaceDesk Remote Viewer Options

프레임 속도와 해상도 설정 옵션도 있습니다.

 

블로그 이미지

영은파더♥

가상서버호스팅 VPS 리눅스 서버관리 윈도우 IT

,

한글로 된 파일이름을 다운로드 할 때 예제 PHP 샘플소스입니다.

<?php
	if(!isset($_GET['filename'])) {
		echo "file not found";
		return;
	}
	$filename = $_GET['filename'];
	$filepath = dirname(__FILE__)."/파일경로/".$_GET['filename']; // 경로에 맞게 수정
	if(!file_exists($filepath)) {
		echo "file not found ". $filepath;
		return;
	} else {
		header("Content-Type: application/octet-stream");
		header("Content-Disposition: attachment; filename=\"$filename\"; filename*=UTF-8''".urlencode($_GET['filename']));
		header("Content-Transfer-Encoding: binary");
		header("Content-Length: ".(string)filesize($filepath));
		header("Cache-Control: cache, must-revalidate");
		header("Pragma: no-cache");
		header("Expires: 0");
		readfile($filepath);
	}
?>

위 코드를 download.php 파일로 저장하고 호출은 download.php?filename=파일이름 이렇게 하시면 됩니다.

 

블로그 이미지

영은파더♥

가상서버호스팅 VPS 리눅스 서버관리 윈도우 IT

,

문서 열기에서 최근항목에 보면 통합문서에 이전에 열어본 엑셀 파일들이 리스트에 나타납니다.

이것을 제거하는건 아니고 안보이게 하려면 옵션 -> 고급 -> 표시할 최근 통합 문서 수

정수 0 ~ 50까지 입력이 가능한데 0으로 입력하면 됩니다.

0으로 했다가 다시 숫자를 올리면 이전에 문서가 다시 리스트에 나타납니다.

완전히 지우려면 레지스트리에서 삭제를 하여야 한다고 하는군요~

 

블로그 이미지

영은파더♥

가상서버호스팅 VPS 리눅스 서버관리 윈도우 IT

,

안드로이드 폰마다 해상도가 달라서 그리드뷰에서 이미지가 다르게 나오는군요~

폰의 화면 해상도에 따라 각 셀의 이미지 폭을 계산하는 방법입니다.

	<GridView
	    xmlns:android="http://schemas.android.com/apk/res/android"
	    android:id="@+id/gridview"
	    android:layout_width="fill_parent"
	    android:layout_height="0dip"
	    android:layout_weight="1"
	    android:columnWidth="100dp"
	    android:numColumns="3"
	    android:verticalSpacing="10dp"
	    android:horizontalSpacing="10dp"
	    android:stretchMode="columnWidth"
	    android:gravity="center"
	    />

위의 android:numColumns 숫자로 Width 를 나누면 됩니다.

그리고 나누기 전에 horizontalSpacing 이 있으므로 그 값을 미리 빼서 나누어야 합니다.

mGridView = (GridView)findViewById(R.id.gridview);
mCellSize = (this.getResources().getDisplayMetrics().widthPixels - mGridView.getRequestedHorizontalSpacing() ) / 3;

여기서 구한 mCellSize 를 mGridView.setAdapter 함수 호출시 값을 전달합니다.
mGridView.setAdapter(new ImageAdapter(getBaseContext(), thumbPath, mCellSize));

public class ImageAdapter extends BaseAdapter {
	private Context mContext;
	private int mCellSize = 0;

	public ImageAdapter(Context c, String[] thumbPath, int cellSize) {
		mContext = c;
		mCellSize = cellSize;
	}

	public Object getItem(int position) {
		return null;
	}
	
	public long getItemId(int position) {
		return 0;
	}
	
	public View getView(int position, View convertView, ViewGroup parent) {
		ImageView imageView;
		if(convertView == null) {
			imageView = new ImageView(mContext);
			imageView.setLayoutParams(new GridView.LayoutParams(mCellSize, mCellSize));
			imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
			imageView.setPadding(1, 1, 1, 1);
		}
		else {
			imageView = (ImageView)convertView;
		}
		
		imageView.setImageURI(Uri.parse(thumbPath[position]));
		
		return imageView;
	}
}

GridView에 자동으로 표시하는 옵션이 생기면 좋을텐데 아쉽군요~

 

블로그 이미지

영은파더♥

가상서버호스팅 VPS 리눅스 서버관리 윈도우 IT

,

자신의 USB 메모리의 종류가 SLC, MLC, TLC 인지 알아내는 방법입니다.

모델명이 있다면 인터넷에 검색해서 알아낼 수도 있지만 ChipGenius 라는 유틸리티로 칩을 인식할 수가 있습니다.

https://www.usbdev.ru/files/chipgenius/ 여기에서 다운로드 받으면 됩니다.

http://www.usbdev.ru/?wpfb_dl=8505 바로 받으려면 여기를 눌러서 받으시면 됩니다.

압축파일에 비밀번호가 걸려있는데 usbdev.ru 입니다.

USB 메모리 종류 인식 ChipGenuis

제가 가지고 있는건 SanDisk Single Channerl MLC 16GB 라고 확인이 되네요~

MLC 수명이 10000회 정도라는데 실제 수명은 더 적다고 보면 됩니다.

그래도 TLC 보다는 더 오래 사용이 가능합니다~

 

블로그 이미지

영은파더♥

가상서버호스팅 VPS 리눅스 서버관리 윈도우 IT

,

토탈커맨더는 ftps 는 사용이 가능한데 sftp 는 플러그인을 추가하여야 사용이 가능합니다.

http://www.totalcommander.ch/win/fs/sftpplug.zip 여기에서 플러그인을 다운로드 받습니다.

그리고 압축을 풀고, 다른곳에 있어도 상관은 없겠지만 C:\totalcmd 안에다 옮겨 놓습니다.

TotalCommander SFTP Plugin

토탈커맨더 환경설정 -> 옵션 -> 플러그인 -> 파일 시스템 플러그인 -> 환경설정을 눌러서 조금전에 다운로드 받은 wfx 를 추가합니다.

화면에 보이는 디렉토리 변경하는 아이콘을 눌러서 연결된 네트워크를 선택합니다.

Secure FTP 에 들어갑니다.

F7 키를 눌러서 sftp 접속 환경을 설정하고 사용하면 됩니다.

 

RaiDrive 같은 유틸리티로 네트워크 드라이브를 잡아서 사용되도 됩니다.

 

 

블로그 이미지

영은파더♥

가상서버호스팅 VPS 리눅스 서버관리 윈도우 IT

,

웹뷰에서 http:// 링크를 열때 "net::ERR_CLEARTEXT_NOT_PERMITTED" 오류 메시지가 나오는 폰이 있네요~

폰 마다 다른데 AndroidOne 이라서 그런지 https:// 페이지는 이상없이 잘 열리는데 http:// 보안서버가 아닌 페이지는 안되는군요~

해결 방법은 AndroidManifest.xml 에서 application 태그안에

android:usesCleartextTraffic="true"

위 코드를 넣어주면 해결이 됩니다.

 

블로그 이미지

영은파더♥

가상서버호스팅 VPS 리눅스 서버관리 윈도우 IT

,

웹 페이지에서 자신이 만든 특정앱을 호출 실행하는 방법니다.

1. AndroidManifest.xml 파일에서 웹링크를 눌렀을때 실행될 액티비티를 정의합니다.

<activity
    android:name=".MyViewActivity"
    android:label="@string/app_name"
    android:screenOrientation="portrait"
    android:theme="@android:style/Theme.NoTitleBar">
    <intent-filter>
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
        <data android:scheme="스키마" android:host="호스트" />
    </intent-filter>
</activity>

  스키마, 호스트 <= 이 부분을 정의합니다.

 

2. MyViewActivity onCreate 함수에 아래 코드를 넣어서 웹에서 호출될 때 값을 파싱합니다.

Uri uriData = getIntent().getData();
if(uriData != null) {
    String param1 = uriData.getQueryParameter("param1");
    Log.e( "MyViewActivity", "Param1 : " + param1);
}

 

3. 웹 페이지에 앱을 실행할 코드를 작성합니다.

<a href="intent://호스트?param1=data1#Intent;
scheme=스키마;
action=android.intent.action.VIEW;
category=android.intent.category.BROWSABLE;
package=com.example.www;
end">
앱호출
</a>

  호스트, 파라메터, 스키마, package 를 자신에게 맞게 수정합니다.

앱을 미리 컴파일해서 실행을 한번 해준 다음에 웹 브라우저에서 위 링크를 눌러서 확인하면 됩니다.

 

 

블로그 이미지

영은파더♥

가상서버호스팅 VPS 리눅스 서버관리 윈도우 IT

,

안드로이드 WebView 에서 html 텍스트를 loadData 함수로 웹뷰가 가능합니다.

하지만 링크가 자동으로 걸리지는 않지요~

http, https 가 있는 문자열을 정규식으로 찾아서 치환해주는 소스코드입니다.

import java.util.regex.Matcher;
import java.util.regex.Pattern;

String regex = "[(https?:\/\/a-zA-Z0-9~#%&_=+:./)]{10,256}";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(html);
while(matcher.find()) {
	System.out.println( matcher.group(0) );
	html = html.replace( matcher.group(0), "<a href='" + matcher.group(0) + "'>" + matcher.group(0) + "</a>");
}

입맛에 맛는 소스가 없어서 한번 만들어 봤습니다.

버그가 있을 수도 있습니다.

있다면 댓글에 좀 남겨주세요~

 

 

블로그 이미지

영은파더♥

가상서버호스팅 VPS 리눅스 서버관리 윈도우 IT

,