야후 모바일

issue 2008/05/26 13:27

주말에 Ipod touch를 이용해 야후 모바일 사이트에 방문해 이런저런 서비스를 써봤습니다.

야후모바일 사이트(http://m.yahoo.com)는 ipod터치를 비롯해 브라우져가 탑재된

스마트폰에서 적절한 사이즈로 야후 모바일 서비스를 사용할 수 있었습니다.

구글 모바일도 마찬가지 이지만 좌측정렬로 UI가 심플하게 구성되어서 인지

꼭필요한 기능만 잘 구성되어 있는것 같습니다.

외국사이트와 달리 국내 웹사이트는 복잡한 UI구성으로 쉽게 모바일로 옴기기가

어렵습니다. 그런이유로 모바일 사이트가 많지도 않구요...

 풀브라우징이 이슈로 떠오르는 시점에서 심플하고 직관적인 UI가 해답이 아닐까 생각됩니다.


Posted by joker
mvn install:install-file
  -Dfile=<path-to-file>
  -DgroupId=<group-id>
  -DartifactId=<artifact-id>
  -Dversion=<version>
  -Dpackaging=<packaging>
  -DgeneratePom=true
Posted by joker

http://www.yolinux.com/TUTORIALS/LinuxTutorialNetworking.html

Ubuntu / Debian IP Configuration Files:

File: /etc/network/interfaces

Static IP example:
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
        address 208.88.34.106
        netmask 255.255.255.248
        broadcast 208.88.34.111
        network 208.88.34.104
        gateway 208.88.34.110

Dynamic IP (DHCP) example:

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

auto eth1
iface eth1 inet dhcp

auto eth2
iface eth2 inet dhcp

auto ath0
iface ath0 inet dhcp

auto wlan0
iface wlan0 inet dhcp
Interfaces:
  • lo: Loopback interface (network within your system without slowing down for the real ethernet based network)
  • eth0: First ethernet interface card
  • wlan0: First wireless network interface

Also see "man interfaces"




위의 내용을 바탕으로 이렇게 수정했더니...
뭐 굳이 공유기에서 강제로 IP를 수정하지 않아도 되는구만.
어쨌든 여러가지 방법을 확인했으니 그걸로 됐다^^

# The primary network interface

# using dhcp
#auto eth0
#iface eth0 inet dhcp

# using static ip
auto eth0
iface eth0 inet static
        address 192.168.0.5
        netmask 255.255.255.0
        broadcast 192.168.0.255
        gateway 192.168.0.1



출처: http://maxnim.tistory.com/1166706143?srchid=BR1f2975a6d4a0a1cc22fbdb5679c34849fefe9bccb

Posted by joker
Posted by joker

태국여행

jour·ney 2007/08/29 00:36
지난 8월 14일 3박5일 일정으로 태국여행을 다녀왔다. 여행목적으로는 처음해외로 나온거라자유여행은 아니었지만 나름 들뜬마음으로 출발했다. 인천공항에서 타이항공에 몸을 싣고 약5시간만에 방콕 스완니폼 공항에 도착했다. 공항은 전세계에서 나와같은 여행객들로 붐볐다.
입국심사대에서 우물쭈물하자 심사관이 한국말로 숙소를 적으라고해 놀랐다. 하긴 성수기에 인천에서 스완니폼 국제공항에 들어오는 비행기가 하루 14대라고 하니 매일 6~7천명이 넘는 한국인 관광객을 맞이하다 보면 그리 크게 놀랄일도 아니라는 생각이 든다.

입국게이트를 지나 밴을타고 호텔로 이동했다. 호텔로 이동하면서 보게된 방콕의 도심 풍경은 한국의 도시들과 크게 다르지 않았으며 (결혼식때문에 첨 가게된 대구시내정도...의 분위기) 교통체증은 서울만큼 심했다.
호텔도착후 약 10시간정도의 자유시간이 주어져 방콕시내를 관광하기로 했다. 사전에 준비가 없었던터라 함께간 친구가 가져온 책을 보고 왓퐁과 시암스퀘어에 가기로 했다. 호텔로비에서 가는길을 물어보니 교통체증때문에 BTS(지상으로 운행되는 METRO)를 이용하라고 했다.
호텔이 Ari역 근처에 위치해서 Ari역까지 툭툭이라고 불리는 삼륜택시를 타고 BTS로 갈아탄후 왓퐁에 도착했다. BTS는 에어컨도 시원하고 방콕주요 지점을 빠르게 갈수 있어 편리했다.

왓퐁거리는 가운데 옷과 악세사리를 파는 노점상을 중심으로 좌우에 노천바나 술집들이 즐비해 있었다. 관광객임을 알아찬 호객꾼들이 여기저기서 호객행위를 하며 달려들었고 거리를 거닐면서 중간중간 go go bar라고 불리는 스트립바도 눈에 띄었다. 날씨가 더운탓에 적당히 둘러보고 적당한 술집에 들어가 맥주를 마셨다. 하이네켄을 한병에 한국돈으로 약 3000원 정도였는데 현지 물가치고는 조금 비싼 편 이었다는걸 나중에 알게됐다. 맥주를 마시고 종업원에게 시암스퀘어로 가는방법을 물어봤는데 걸어서 15분정도거리라고 해 걸어가기로 했다.

친구와 함께 시암스퀘어로 가는 밤거리를 거닐면서 걷기로 한것을 후회했다. 더운날씨도 더운날씨였지만 시암스퀘어로 가는동안 특별이 인상적인 풍경도 없었으며 길거리에 개들이 많아 괜한 위헙을 느끼며 걸었다. 방콕의 택시비는 기본요금이 약 900원이어서 왠만한 거리는 교통체증이 심하지 않는한 싸게 이동할 수 있다.

씨암스퀘어는 방콕중심에 위치한 큰 백화점을 중심으로 주변에 비교적 고급스런 레스토랑이나 술집들이 많은 곳이었다. 바로 BTS역과 연결되어 있어 낮에는 꽤나 많은 젊은이들이 돌아다닐것 같았다. 저녁 8시경이어서 백화점의 매장들이 하나둘씩 문을 닫고 있었다. 백화점은 서울의 왠만한 백화점에 비해 꽤 큰편이었으며  내부는 마치 코엑스몰을 돌아다니는것 같아 특별히 인상적이진 않았다.

씨암스퀘어를 둘러보고 호텔근처의 술집에 들렀는데 태국식 생선요리도 시켰다.
향신료를 꽤나 쓴 요리였는데 생각보다 역하거나 하지않고 먹을만했다. 친구와 맥주잔을 기울이며 방콕에서의 아쉬움을 달랬다.



Posted by joker
3G, 이동통신의 세대교체의 과제와 전망이라는 주제로 디지털 커뮤니케이션 2007컨퍼런스&전시회가 열렸습니다.
사용자 삽입 이미지

오전 keynote Session과 오후 3개의 Track으로 구성되었는데 정보통신부에서 3G 이동통신의 주요 이슈 및 정책방향에 대한 발표를 시작으로 연세대, 삼성전자, KTF순서로 keynote세션이 있었습니다. 오전발표에서 연세대 정보대학원 교수님의 발표내용중 급변하는 모바일환경변화에서 모바일 2.0서비스가 가져야할 핵심은 즉시성이라는 말이 인상적이었습니다.
 
결론을 얘기하자면 기존의 웹2.0을 단순히 모바일로 옮기는것을 넘어 모바일의 특성과 강점을 살려 웹과 차별화된 서비스형태가 사용자에게 가치를 제공해줄수 있다는 것입니다.



오후세션은 Network & service, Terminal & Platform, Killer App & Contents 세가지 트랙으로 진행되었습니다.

Network & service Track에서 상반기에 상용서비스를 시작한 이동통신사와 달리 후발주자로 나선  KT Wibro서비스에 대한 세션에 참석했습니다. 발표내용은 모바일 2.0을 캐치프라이즈로 한 Wibro 서비스 전략에 대한 내용이었습니다. Wibro는 1차적으로 서울을 중심으로 수도권지역에서 망이 구축되었으며 향후 전국주요도시 망 구축을 통해 전국 서비스를 계획하고 있다고 합니다. 8월중으로 와이브로 폰이 출시될 예정이라고 하네요. KT의 Wibro 상용화 계획은 Wibro망을 통해 접속하는 사용자에게 디바이스에 관계없이 동일한 서비스 제공을 목표로 하고 있으며 iphone이나 prada폰과 같은 차세대 스마트폰에대한 전략도 준비중이라고 합니다. 

하반기부터는 3G가입 업체에 관계없이 영상통화가 가능해질 전망이라고하니 3G 이동통신 보급도 활발해 질것 같습니다. 국내기술인 Wibro가 하루빨리 이동통신의 표준으로 채택되고 상용화되어 휴대폰을 통해 종량제 요금으로 고품질의 음성통화와 멀티미디어 데이터 서비스를 즐길날이 왔으면 하는 바램입니다.

Terminal & Platform Track에서 발표된 주제에도 관심이 많았는데 동시에 진행되는 바람에 참석하지 못했습니다.

Killer App & Contents Track에서는 발표된 모바일 웹2.0이라는 주제를 중심으로 Wibro기반 모바일 서비스, 모바일 웹표준기술, 풀브라우징, RIA기술, mashup등의 내용과 휴대폰 대기화면, 유무선 연계 서비스 사례등의 내용이 발표되었습니다.

모바일 웹2.0이라는 주제에 걸맞게 weblike rendering에 초점을 맞춰 진행된것 같습니다. 국내에서도 모바일웹 표준을 위한 모바일 웹 포럼이 적극적으로 국제표준을 제안하고 있다는점이 고무적입니다.

웹2.0에이어 모바일 웹2.0이 이슈가 되고 있는것 같은데요. 이는 웹기술의 발달과 모바일 시장의 변화, 휴대인터넷 기술의 진화등 여러 요인으로 인해 모바일 시장에대한 기대감이 반영된것 같다는 생각이 듭니다.

모바일 시장은 향후 기술발전의 중심에 있으며 여러가지 응용서비스들이 가능하지만 사용자가 가치를 느낄만한 서비스를 만들기위한 많은 고민들이 필요한것 같습니다.


Posted by joker

python_oracle

dev/python 2007/06/15 14:31

Oracle module 소개

Oracle에 접속하기 위해서는 Oracle접속 모듈이 필요한데 이는 파이썬 소스코드를 통해 쉽게 Oracle 서버에 접근할 수 있도록 해주며 SQL명령어를 실행함으로써 얻은 결과를 파이썬코드에서 유용한 형태로 사용할 수 있도록 해준다. 파이썬을 통해 Oracle에 접근하기 위해서 본 글에서는 cx_Oracle 모듈을 사용했다. cx_Oracle모듈은 다음 싸이트에서 최신버전을 다운받을 수 있다. http://sourceforge.net/projects/cx-oracle/ 설치되어 있는 파이썬 버전과 사용하고있는 오라클 버전에 맞는 모듈을 다운받아 설치하면 된다. 그밖에 다른 모듈을 사용할 경우 다음 페이지를 참조하여 적절한 모듈은 사용하면 된다. http://www.python.org/topics/database/modules.html

설치방법

리눅스

$ tar -xzvf cx_Oracle-4.3.1.tar.gz

$ cd cx_Oracle-4.3.1

$ python setup.py build

$ python setup.py install

윈도우

다운받은 실행파일을 실행하면 python설치 디렉토리를 찾아 자동으로 설치된다. cx_Oracle-4.3.1-win32-10g-py25.exe

Oracle 접속방법

  • 1.먼저 설치된 cx_Oracle모듈을 import한다.

>>> import cx_Oracle

  • 2.Database에 접속한다.
  • connect( [user, password, dsn, mode, handle, pool, threaded, twophase])
  • 일반적인 접속을 위해서는 id와 passwd 그리고 dsn(data source name:TNSNAMES.ora파일 참고)이 필요하다.
  • 추가적인 파라미터는 필요에 따라 접속시 지정할 수 있으며 일반적인 접속을 위해서 아래와 같이 접속하였다.

>>>orcl = cx_Oracle.connect('id/passwd@dsn')

예제코드

  1. >>> import cx_Oracle
    >>> orcl = cx_Oracle.connect('id/passwd@dsn')
    >>> curs = orcl.cursor()
    >>> curs.execute('select * from blogmore where btype=\'BEST\'')
    >>> row = curs.fetchone() #상위 1개의 row만 가져온다.
    >>>print row  #해당 row가 turple형태로 출력된다.
    (155, 'BEST', 'antiright', '\xb4\xeb\xb8\xb6\xbf\xd5', '\xb4\xeb\xb8\xb6\xbf\xd5 \xb9\xe6\xb6\xfb\xb1\xe2', None, None, 'http://cfs7.blog.daum.net/upload_control/download.blog?fhandle=MDNPcmlAZnM3LmJsb2cuZGF1bS5uZXQ6L1BST0ZJTEUvMC8wLmpwZy50aHVtYg==&filename=0.jpg-', datetime.datetime(2006, 12, 4, 19, 45, 33))
    >>> print row[0], row[1]
    155 BEST
    >>> rows = curs.fetchall() #모든 row를 가져온다.
    >>> print rows #검색된 모든row가 list형태로 출력된다.
    
    >>> print rows[0]
    첫번째 row 출력
    >>> print rows[0][1]
    첫번째 row의 첫번째 필드 출력
    

참고문헌

http://www.oracle.com/technology/pub/articles/devlin-python-oracle.html

http://www.python.net/crew/atuining/cx_Oracle/html/front.html

이 글은 스프링노트에서 작성되었습니다.

Posted by joker

python_file

dev/python 2007/05/29 00:51

file.close(), file.read([size]) , file.readline()

file.readlines(): 전체라인을 readline()을 이용하여 읽어들인 라인을 리스트에 넣어서 리턴한다.

file.write(str): 문자열 str을 파일에 쓴다.

file.writeline(str): 문자열 리스트를 파일에 쓴다. 줄바꾸기가 자동으로 삽입되지는 않는다.

file.seek(offset,[whence]): whence의 기본 값은 0이다. 0이면 시작 기준, 1이면 현재 위치 기준, 2이민 끝 기준에서 offset만큼 떨어진 위치에 파일 포인터를 위치시킨다.

file.tell(): 파일의 현재위치를 리턴한다.

file.flush(): 버퍼가 다 채워지지 않았어도 내부 버퍼의 내용을 파일에 보낸다.

file.fileno(): file 객체의 파일 기술자(File Descriptor)(정수)를 리턴한다.

file.truncate([size])파일 크기를 지정된 크기로 잘라버림. 인수를 주지 않으면 현재 위치에서 자른다.

file.mode: 파일이 오픈된 모드, file.closed: 1 or 0을 리턴, file.name: open()할 때 사용된 파일 이름


이 글은 스 프 링 노 트에서 작성되었습니다.

Posted by joker

python_util

dev/python 2007/05/29 00:26

  #1 디렉토리의 파일목록 얻기
glob모듈의 glob함수 사용: 와일드카드문자 ?(임의의문자 1개와 매칭),* 를 지원한다.
ex)import glob
glob.glob('./[0-9].*')

#2 파일의 추가정보 알아내기

isfile(path)- path가 일반 파일이면 True 리턴
isdir(path)- path가 디렉토리이면 True 리턴
islink(path), ismount(path), exist(path)

파일크기, 접근시간
os.path.getsize('py.py') //실제파일 사이지(윈도우에서는 파일읽기를 통해 계산하는 사이즈와 다를수 있음)

import time
os.path.getatime(path)  #접근시간
os.path.getatime(path)  #수정시간

#3 경로명 다루기
import os
p=os.path.abspath('a.log')   #상대경로를 절대경로로
'C:\\python23\\t.py'
os.path.split(p)
('C:\\python23', 't.py') #(디렉토리와 파일을 분리)
os.path.join('C:\\python23', 't.py') #(디렉토리와 파일을 결합)

#4  URL다루기
urlparse함수는 아래와 같이 분리하여 튜플을 리턴
(addressing, scheme, network location, path, parameter, query, fragment, identifier)
ex)
>>> import urlparse
>>> a='http://3355.daum.net/daum/search/top/TotalList?q=스파이더맨3&skey='
>>> x=urlparse.urlparse(a)
>>>x
('http', '3355.daum.net', '/daum/search/top/TotalList', '', 'q=\xbd\xba\xc6\xc4\xc0\xcc\xb4\xf5\xb8\xc73&skey=', '')
>>> urlparse.urlunparse(x)
'http://3355.daum.net/daum/search/top/TotalList?q=\xbd\xba\xc6\xc4\xc0\xcc\xb4\xf5\xb8\xc73&skey='
>>> urlparse.urljoin(a, 'SearchTop')
'http://3355.daum.net/daum/search/top/SearchTop'
>>> urlparse.urljoin(a, '/')
'http://3355.daum.net/'




이 글은 스 프 링 노 트에서 작성되었습니다.

Posted by joker

python_string

dev/python 2007/05/29 00:26

String method

#1 문자열 찾기

 upper(), lower()  대소문자 변환

find(s),rfind(s), index(s)  문자열을 찾으면 시작 인덱스 반환, 없으면 -1, index는 없으면 Value error를 발생시킴

find는 왼쪽을 시작위치로, rfind는 오른쪽을 시작위치로 (검색시작위치 지정가능)

#2 편집및 치환

rstrip(), lstrip(), strip() 공백제거

 replace(a,b) 문자열 치환

split(str) 문자열을 분할 =>s.split('\n')라인단위로 분리

join(str) 문자열 병합 '\n'.join(list)

center(len), rjust(len). ljust(len)  =>주어진 길이의 문자에서 가운데 오른쪽 왼쪽 정렬

#3문자열 질의

isalnum(), isalpha(), istitle(),isdigit(),islower, isupper(),isspace(),

true or false 리턴


#string 모듈

모듈상수

digits, octdigits, hexdigits, letters, lowercase, uppercase, punctuation, printable, whitespace

모듈함수

capwords(s) - 각 단어의 첫문자를 대문자로 , zfill(s, n) - 왼쪽의 빈자리를 0으로 채운다.


 #문서 문자열

모듈이나

이 글은 스 프 링 노 트에서 작성되었습니다.

Posted by joker
TAG Python, string