티스토리 툴바

지메일을 쓴다면 구글 메신저 대화 내용도 메일 화면에서 찾을 수 있다. 홍길동과 대화한 내용을 찾고 싶다면 아래처럼 한다.


거의 매일 꾸준히 쓰다보니 누군가에게 메신저로 불러줬던 내용을 찾을 수 있어 좋았다. 오늘 아침 경험한 유용한 상황 두 가지를 메모해둔다.

  • 다시 대화를 하려는데 어제(마지막으로) 했던 대화가 가물가물할  
어제 했던 말을 다르게 기억하고 대화를 다시 하거나, 했던 말을 또 하면 상대를 당혹스럽게 하거나 번거롭게 한다. 이러한 의사소통 혼선/낭비를 막기 위해 '마지막에 무슨 이야기를 했지' 확인해보는 것. 매우 유용했다. 확실히 정하지 않은 약속 일자를 확인하거나... 마지막으로 논의했던 쟁점을 다시 떠올릴 때.. 점점 약해지는 기억력 보조 수단으로 구글 토크는 아주 좋다. 사내 메신저나 여타 메신저도 대화 저장은 제공하지만, 파일로 저장하는 경우 내용 검색에는 제한이 있어 확실히 지토크의 이점이다.

  • 인터넷이 끊겼을 때 주의사항
구글 토크를 쓸 때 주의할 점도 있다. 마지막으로 대화하다가 인터넷이 끊겼을 때 종종 다음 대화가 어색한 경험을 한다. 화자가 마지막에 한 이야기와 청자가 마지막으로 들은 이야기가 다르기 때문임을 오늘 확인했다. 전에는 A, B, C 순서로 말하다 끊기면 A, B 까지만 가서 그런가 하고 내 입장에서만 생각했는데... 눈에 보이는 것만 고려해 양방향이란 점은 생각 못했다.

방금 비슷한 상황을 경험했다. 끊기기 전 내 화면은 ... (업무정보/개인정보보호를 위해 일부 내용 조작)

안영회: 장군님 혹시 오늘 오후에는 미팅이 어려울까요?
Sent at 10:29 AM on Friday
안영회: 이따가 1시반에 영감님 뵈러 궁궐에 가거든요
길게 할 이야기가 아니라 2시쯤에 가능하시다면
논의할 내용을 좀 정리해서 2시나 2시 반에 뵈었으면 합니다.

인터넷이 끊기고 나서 확인차 검색해보니

: 장군님 혹시 오늘 오후에는 미팅이 어려울까요?
10:30 똘이장군: 가능할 것 같습니다. 몇시에 뵙지요?
10:34 저는 2시에서 3시 사이가 좋을 것 같습니다.
 : 이따가 1시반에 영감님 뵈러 궁궐에 가거든요.
 똘이장군: 그럼, 도착하시면 연락 주세요 ^^

밑줄 그은 내용을 못 봤으니 다시 대화를 재개하면.. 예의 혼선이나 의사소통 낭비가 발생한다.

설정

트랙백

댓글

찾아보니 2년 전에도 같은 내용의 글,  G메일과 구글 카렌더를 함께... 구글 개인화된 홈을 쓴 바 있었다. 구글 개인화 페이지는 나에게 맞지 않아 접었다. 마일린 사용 빈도가 높아지면서 노트북을 사용한 일정관리가 늘고, 프랭클린 다이어리의 역할이 많이 줄었다. 로딩 속도가 느려서 한 동안 쓰지 않던 구글 캘린더를 다시 도입해보려고 한다. 메일과 왔다 갔다 하는 번거로움을 줄이려고 Integrated Gmail을 깔았다.

사용자 삽입 이미지

메일과 캘린더를 한 화면에 넣었다. 더불어 CustomizeGoogle 확장을 통해 스팸함의 카운터를 안보이게 했다. 평소 빈번하게 스팸함에 카운터가 보이면 지워주느라 매일 시간 낭비하던 것을 없애줄 것이다.

이틀 정도 써보니 종종 적용이 안되고, Gmail이 뜨기도 해, 이럴 때 카렌더가 필요하면 새로 고침을 하기도 했다. BetterGmails2나 GustomizeGoogle을 함께 써서 그런 것인지도 모른다. 아직 유용한지 결론을 내릴 수 없지만, 적어도 없는 것보단 좋다. @@

설정

트랙백

댓글

Series Recap: Coding in the small with Google Collections을 보면서 google-collections가 실효성이 있나 보고 있다.

먼저 Preconditions을 보면  NullPointerException 반환하는 메소드는 그리 유용해 보이지 않으니 checkArgument가 적용 전과 후를 비교해본다.

if (composite.getProp() == null) throw new IllegalArgumentException();

Preconditions.checkArgument(composite.getProp()!= null);

if 보다는
Preconditions.checkArgument가 읽기에 좋지만, IllegalArgumentException가 발생하는 것이 암묵적인 내용이 된다. checkArgument가 IllegalArgumentException을 반환한다는 사실을 알아야 한다. 굵은 색으로 표시한 곳에 표현식(expression)을 넣어야 한다. 다시 말하면 일종의 비즈니스 규칙을 명제로 표현해야 한다. isOOO 류의 메소드로 도메인 객체의 Validation 메소드를 표준화한다면, Validation 메소드 안으로 저 내용이 들어가면 유익할 듯하다.

notNull()이 필요한 경우 Short cut은 쓸만하다.
Preconditions.checkNotNull(givenName);
this.givenName = givenName;
null이 아니면 할당을 하게 하는 위 구문은 짧게 쓸 수 있다.
this.givenName = Objects.nonNull(givenName);
Iterables.getOnlyElement를 보면 Set.iterator().next()List.get(0) 보다는 읽기에 좋다.

Comparators.max는 확연하게 마음에 든다.

return a.compareTo(b) > 0 ? a : b;
return Comparators.max(a, b);

숫자로 값을 반환하는 것은 진부한 것이 아닌가 생각된다.

Objects.equal and hashCode 경우도 IDE나 이클립스 플러긴을 이용하거나 직접 작성하는 것보다 좋아 보인다.
// equlas 구현 일부
return
(address != null ? address.equals(that.address) : that.address == null)
         && (targetArrivalDate != null ? targetArrivalDate.equals(that.targetArrivalDate)
             : that.targetArrivalDate == null)
         && lineItems.equals(that.lineItems);
// Google Collections 사용 시
return
Objects.equal(address, that.address)
          && Objects.equal(targetArrivalDate, that.targetArrivalDate)
         && Objects.equal(lineItems, that.lineItems);

// hashcode 구현
public int hashCode() {
   int result = 0;
   result = 31 * result + (address != null ? address.hashCode() : 0);
   result = 31 * result + (targetArrivalDate != null ? targetArrivalDate.hashCode() : 0);
   result = 31 * result + lineItems.hashCode();
   return result;
}


//
Google Collections 사용 시
 public int hashCode() {
   return Objects.hashCode(address, targetArrivalDate, lineItems);
 }


Lists.immutableList도 간소하다.
this.steps = Collections.unmodifiableList(new ArrayList<Step>(steps)); // 사용 전
this.steps = Lists.immutableList(steps); // 사용

슬슬 지루해진다. 나머지 API 역시 전체적으로 설계 사상은 비슷하다.
Collection을 이어붙이는 Iterables.concat도 있고, 하나의 키에 여러 개 요소를 Map에 담을 때 유용한 Multimap, SQL 문을 수작업으로 할 때 유용할 Join, 코드성 데이터 처리에 유익한 BiMap 등이 있다.

설정

트랙백

댓글

어제 구글 분석기(Analytics)에 가입하고 스크립트를 티스토리 스킨에 추가해 넣었습니다. 안내문이 영어인지라 건성으로 읽어서 <head>부에 넣었더니 방문자가 전혀 없더군요. </body> 바로 앞에 넣으라는 문구를 찾아서 이를 반영하고 하루가 지나니까 역시 다양한 분석 기록을 보여줍니다. :)


재미로 사용하는 저로써는... 유용성을 떠나서, 일반 요약보기가 보여주는 비주얼에 넘어갑니다. 헐~

구글 분석기(Analytics)
를 보니 몇 가지 의문이 해결되네요. 우선 urchin.js라는 파일 이름의 기원과 함께 막강한 기능의 출처가 상용 웹로그 분석기를 인수해서 무료로 서비스를 제공하는 것이란 점...

아래 내용은 구글 분석기에 대한 소감을 메신저로 나눈 내용입니다. 특별 출연: 고과장(?)

more..


설정

트랙백

댓글

G메일과 구글 카렌더가 별도의 탭으로 열어야 해서 번거로웠는데 구글 개인화 홈을 우연히 알게 되었다. 이삼구글 블로그에서 구글에 추가 버튼을 눌렀다가 http://www.google.com/ig 페이지를 보게 되었다. 포틀릿 형식으로 자유롭게 화면을 구성할 수 있다는 것이 장점이다.

워낙 다양한 서비스를 선택할 수 있다는 것이 장점이자 단점이다. :)

나로써는 일단 G메일과 카렌더를 북마크 없이 한화면에서 접근할 수 있다는 것만으로도 충분히 매력적이다. 차츰 쓸모있는 기능을 하나씩 추가하면 될 것 같다. 이미, IP 체크를 위한 기능을 추가해봤고, 데스크탑에 설치한 To-do 관리를 대체할 수 있을지 테스트해보려고 할 일 목록을 추가했다. 날씨의 경우는 weather.com 플러그인을 설치하지 않아도 되니 매우 유용하다.

다소 불안한 점은 있다. 레이아웃이 종종 설정한 것과 다르게 나타나기도 한다.

설정

트랙백

댓글

GOOGLE NOTEBOOK - 메모기능에 소개된 것인데 쓸만해보입니다.
또한 인터넷 익스플로러와 함께 파이어폭스 플러그인으로도 지원합니다. :)

설정

트랙백

댓글