맥미니 업그레이드 -> 2.1TB Fusion Drive

2014년 4월 6일 at 12:47 pm

512GB HDD 가 2 개 달려있는 맥미니 서버를 수술했다. 2년 전, 512GB HDD 하나를 128GB 를 교체한 데 이어, 보름 전 512GB HDD 를 2TB HDD 로 교체했다. MAC MINI 에 들어가는 얇은 2TB HDD 를 구입하기 위해 아마존에서 2TB 외장 하드를 구입하여 분해하였다(사실은 본드로 처발러져있어서 강제로 뜯어냈다). HDD 하나를 교체했던 2년 전 작업과 달리 이번 작업은 맥미니를 완전 분해해야했다. 그 과정에서 손만 살짝 닿았을 뿐인데 메인보드에서 똑 떨어진 콘덴서 하나 ㅠㅠ 스카치 테이프를 이용한 외과적 수술을 통해 콘덴서를 재건한 후 HDD 교체 및 재봉합. 결국 맥미니는 2.1TB의 퓨젼 드라이브를 가진 맥으로 다시 태어났다. 작업 시간은 1주일 이상. 난이도 높음. 소감은.. 이런 고생 안 하도록 돈 많이 벌자!

맥북 에어에 넥서스 10을 레티나 디스플레이로 사용

2013년 11월 19일 at 11:22 am

image

맥북 에어에 air display를 이용하 넥서스 10을 레티나 디스플레이로 연결했다………

pros:맥북 에어에서 무려 레티나+듀얼 모니터를 쓸 수 있다!!

cons:반응이 느리다

오늘도 오덕질 실컷 했으니 이제 공부해야겠다.

Protected: HTML for JQM Part I.

2013년 7월 8일 at 5:43 pm

This content is password protected. To view it please enter your password below:

안드로이드 모바일 백신 애플리케이션, 앱에 내장 or 외부 다운로드?

2013년 4월 24일 at 3:32 pm

안드로이드는 구글 플레이에서 다운받는 방법 외의 방법으로 애플리케이션을 설치할 수 있으며 아이폰에 비해 폰의 기능을 관대하게 애플리케이션에 허용하는 편이기 때문에 많은 멀웨어와 유통경로가 존재한다. 그리고 멀웨어 중 일부는 폰의 exploit을 이용하여 자신의 권한을 상승시키고(루트 권한 획득) 이를 이용해 타애플리케이션의 활동을 감시한다.

이로 인해 조심해야 할 부분 중 하나가, 금융거래 애플리케이션이 공인인증 로그인을 하는 과정이 감시당하지 않도록 하는 것이다. 공인인증 로그인 절차를 멀웨어가 감시할 경우 공인인증서와 함께 패스워드를 유출시킬 수 있다(꼭 감시해야만 패스워드를 알아낼 수 있다고 말하진 않겠다). 이 때문에 공인인증 로그인이 들어갈 경우 앱의 위변조 체크 외에도 해당 앱에서 멀웨어가 동작중인지, 폰이 루팅되지 않았는지 등의 확인 작업이 필요하다(강제사항이라고 말하진 않겠다).

이때 앱에 모바일 애플리케이션을 내장하기 위한 방법으로 앱 자체에 백신 엔진을 포함하는 방법과 앱 최초 실행시 구글 플레이 스토어에서 다운 받는 방법이 있다. 이 두 가지 방법을 비교해보자.

 

백신 엔진 내장 방식
장점 단점
  • 백신을 별도로 다운 받을 필요가 없다.
  • 백신의 엔진이 업데이트될 경우 그 엔진을 내장한 애플리케이션도 함께 업데이트하여 스토어에 업로드해야한다.
  • 앱 로딩시 백신이 함께 구동될 필요가 없어 시작 시간이 단축된다.
  • 백신 엔진 업데이트시마다 애플리케이션을 다시 (자체) 검수해야 한다.
 
  • 백신의 엔진 업데이트 후 애플리케이션 업데이트까지는 시간이 걸린다. 이 시간차를 이용한 공격(zero-day attack)에 속수무책이 된다.

 

마켓 다운로드 방식
장점 단점
  • 애플리케이션이 백신과 API 를 통해서만 연계되므로 백신 업데이트로 인한 유지보수가 불필요하다.
  • 애플리케이션 최초 구동시 구글 플레이스토어로 이동, 백신 다운로드 및 설치 과정이 필요하다.
 
  • 고객이 백신을 삭제했을 경우 다음번 구동시 구글 플레이스토어로 이동, 백신 다운로드 및 설치 과정이 필요하다.

이외에도 국민은행 앱처럼 백신을 구글 플레이가 아닌 자체 사이트에서 다운로드받도록 하는 방법이 있는데, 이는 구글 플레이의 가이드라인에 위배되니 참고하자. 이유는 아마 보안상의 이유가 주일 것이며, 그 외에도 부분유료 앱의 결제경로 등 몇몇 문제가 얽혀있을 것이다.

블로그 클라우드로 옮기기 프로젝트

2013년 4월 5일 at 11:29 pm

The cloud is the answer to joomoney.net ?

현재 주머니닷넷은 운영자의 옷방에 설치된 HP Microserver 36L 에서 구동되고 있다. 이 서버는 AMD 의 Dual Core CPU 와 약 4.5TB의 하드디스크, 8GB의 램으로 운영되고 있는데, 다른 건 충분하나 CPU Power 가 몹시 부족한 것이 흠이다. 게다가 윈도우 2008 R2 를 설치하고 IIS 위에서 wordpress 를 돌리니 속도가 몹시 답답하다. 튜닝을 위해 갖가지 리서치를 다 해보았으나, 차라리 APM 에서 돌리는 게 낫겠다! 라는 것.

그렇다고 TV 에 USB로 물려서 Server Ultimate 앱으로 서버 역할을 하고 있는 안드로이드 기기에서 돌리기는 그렇고.. 처음에는 Xen 이나 VMWARE 의 가상화 솔루션(XenServer 나 VMWARE esxi)등을 고려했다. 하지만 Xen 의 경우 듀얼코어 중 하나를 Xen 을 위해 할당, vmware 도 만만치 않은 부하를 감당하기 힘들어보여 외부에서 제공하는 클라우드 서버를 찾아보았다.

제일 먼저 Google App Engine, 이미 몇차례 사용해 본 적이 있으나, 역시 가장 큰 문제는! Python 과 자바만을 지원하며, DB는 SQL DB 가 아닌 Datastore 를 사용해야 한다는 것이다. JAVA 또는 python 을 사용하는 GAE 용 블로그를 설치하여 돌리는 방법의 고려에 있어서는, 먼저 GAE용 블로그 엔진이 wordpress 만큼 훌륭한 점이 없다는 점, 그리고 기존의 DB 를 모두 새로운 블로그 엔진을 위해 마이그레이션하는 부담이 너무 크다는 점, 그리고 나중에 다시 wordpress 로 옮겨가기 힘들 것이라는 점 때문에 기각했다.

사실, 구글도 유료이기는 하나 MySQL 기반의 DB Service 를 제공한다. Google Cloud SQL 이 그것인데, 무료 서비스가 없다는 것이 단점 작년 말부터는 적은 램과 0.5GB의 스토리지, 조금의 IO 에 대해서는 무료로 Introductory Trial 을 제공한다. PHP 는 Quercus 라는 자바 기반의 PHP 엔진을 돌리는 방법을 생각해볼 수 있을 것이다. 쉽진 않은 길이겠지.

PHP 를 개발한 Zend 사에서 제공하는 RightScale 을 고려해본 것은 구글의 MySQL 서비스가 여전히 유료일 것으로 오해하였기 때문이다. MySQL 과 PHP 를 함께 제공하면서도 믿을만하고 내가 원하는 약간의 서비스를 무료로 쓸 수 있는 곳은 RightScale 정도이리라..고 생각했는데.. 어랏, 그런데 60일만 무료.

또다른 서비스를 찾아보다가 Red Hat 의 OpenShift 를 찾게 되었다. 3 gear 까지 무료. 자세한 정책은 좀 더 탐구해봐야겠다. 가장 고무적인 것은, 약간의 구글링을 해보았더니 wordpress 를 OpenShift 로 옮기는 방법이 많이 나와있으며, 이를 “migrate” 라고 표현하고 있다는 것이다. GAE 와 달리 아주 간단한 작업이 될 것이라는 얘기.

찾다보니 Heroku 에도 MySQL add-on 이 있는 등, 그간 세상이 매우 많은 종류의 PaaS 출시되었음을 알 수 있었다. 리서치할 부분이 너무 많아졌달까.

아무튼, 이 느리고 불안한 블로그, 어서 안정적이고 빠르게 돌아가는 곳으로 옮겨가자!

What google needs for the tablet game

2012년 11월 14일 at 12:17 am

Google just launched Nexus 10 tablet. The specification of Nexus 10 is really really wonderful. Besides the CPU and 2GB RAM, it has super display. The resolution of the display is 300 dpi. The display has 2560X1600=4 mega pixels! With the display, it is not required to print PDF documents for reading. However, it has very critical weak points which would brake the nexus bomb. It is the lack of tablet apps.

Whereas iOS apps draw screen pixel by pixel, android draw screen along with layout style. Therefore, iOS apps seem beautiful, and android apps show on any size of displays. For Retina iOS apps, Apple provided with new drawing methods. Basically, Retina apps draw just as they draw on low density display. When the app point one pixel, the iOS point four pixels. However, when the app write texts or draw high resolution image, the text or image shows in high density. It helps iOS developers build high resolution app easily. Android does not have that kinds of comfortable methods. I would suggest some advances on Android.

First of all, Android should adapt the function that maps physical resolution to virtual resolution. MS GW-Basic(or MSX-Basic.. both? I’m not sure) had the function. It would help tablet apps look still beauty. With advanced remapping functions, developers would remap parts of physical display area to the size suitable to their resources. Of course, fonts must be look as the physical resolution, not virtual resolution. (See Pic.1)

Pic1.

Also, google should make cross compiling environment for developers to build their app for MS-Windows or MacOSX. It would encourage developers to build tablet apps for big screen. Developers would be able to make android tablet, win, mac apps all together. Google should make thin android layer inside the runnable application, and provide installer such as install-shield(See BlueStack). Just building structure of .app directory could be enought for MacOSX applications. To advance, if Playstore for those apps is serviced, more developers would build multi platform android apps.

With the functions mentioned above, Android tablet apps will get more and more.

Aquamacs 에서 PRO*C 환경 설정

2012년 9월 23일 at 12:55 am
  1. cedet 설치
    1. http://sourceforge.net/projects/cedet/files/latest/download?source=files 에서 최신 cedet 을 다운로드
    2. cd ~/Library/Application Support/Aquamacs Emacs
    3. tar xvf ~/Downloads/cedet-1.1.tar.gz
    4. cd cedet-1.1
    5. make EMACS=/Applications/Aquamacs.app/Contents/MacOS/Aquamacs
    6. mkdir info
    7. cd info
    8. find .. -type f -name '*.info' | while read i; do j="$(basename $i)"; ln -s "$i""$j"; install-info --info-dir="$(pwd)" "$j"; done
    9. cd ..
    10. vi site-start.el
    11. (load-file “/Users/stone/Library/Application Support/Aquamacs Emacs/cedet-1.1/common/cedet.el”)

      (global-ede-mode 1) ; Enable the Project management system

      ;; These two options below are only for the stand-alone CEDET. Not the one

      ;; now included with newer Aquamacs/Emacs.

      (semantic-load-enable-code-helpers) ; Enable prototype help and smart completion

      (global-srecode-minor-mode 1) ; Enable template insertion menu

  2. ecb 설치
    1. http://sourceforge.net/projects/ecb/files/latest/download?source=files
    2. cd ~/Library/Application Support/Aquamacs Emacs
    3. tar xvf ~/Downloads/ecb-2.40.tar.gz
    4. cd ecb-2.40
    5. ln -s info-help info
    6. cd info
    7. install-info --info-dir="$(pwd)" ecb.info
    8. cd ..
    9. vi site-start.el
    10. (add-to-list ‘load-path

      “/Users/YOUR USERNAME/Library/Application Support/Aquamacs Emacs/ecb-2.40”)

      ;; Choose one of the following…

      ;; If you want to load the complete ECB at (X)Emacs-loadtime

      ;; (Advantage: All ECB-options available after loading

      ;; ECB. Disadvantage: Increasing loadtime2):

      (require ‘ecb)

      ;; If you want to load the ECB first after starting it by ecb-activate

      ;; (Advantage: Fast loading3. Disadvantage: ECB- and semantic-options

      ;; first available after starting ECB):

      ;; WARNING: This doesn’t work with the CVS version of ECB unless edit Makefile

      ;; and run make.

      ;(require ‘ecb-autoloads)

  3. mmm-mode 설치
    1. http://sourceforge.net/projects/mmm-mode/files/latest/download?source=files
    2. cd ~/Library/Application Support/Aquamacs Emacs
    3. tar zxvf ~/Downloads/mmm-mode-0.4.8.tar.gz
    1. mkdir info
    2. cd info
    3. find .. -type f -name '*.info' | while read i; doj="$(basename $i)"; ln -s "$i""$j"; install-info --info-dir="$(pwd)" "$j"; done
    4. cd ..
    5. vi site-start.el
    6. (require ‘mmm-mode)

      (set-face-background ‘mmm-default-submode-face nil)

      (mmm-add-classes

      ‘((embedded-sql

      :submode sql-mode

      :front “EXEC SQL”

      :back “;”)))

      (setq-default mmm-global-mode t)

      (mmm-add-mode-ext-class ‘c-mode “\.pc$” ’embedded-sql)

      (mmm-add-mode-ext-class ‘c-mode “\.sqc$” ’embedded-sql)

      (setq-default mmm-never-modes

      (append ‘(ediff-mode) ‘(text-mode) mmm-never-modes))

RECENT STUDIES

2009년 1월 1일 at 12:34 pm

GWT(Google Web Toolkit)을 이용해서 자바로 하는 AJAX 프로그래밍

GCJ 혹은 EVE VM 등을 이용한 자바 for Windows Mobile

gnucash 의 SQL backend

jgnash 의 모바일 포팅 가능성에 대한 조사

TOSTUDY LIST

2008년 12월 6일 at 6:26 pm

J2EE, EJB, GWT. Echo3, Spring F/W, Nanning Aspect, JBoss 4, PicoContainer, Hibernate, JDO, HiveMind, iBatis, GLUE, ………..

공부한 것은 별로 늘지 않는데 해야 할 것들은 엄청나게 늘어간다.

책 한 권씩만 봐도 몇천페이지, 몇만페이지가 될 지 알 수가 없는 일이다.

죽어버리겠군………………. But,

“영원히 살 것처럼 배우고, 내일 죽을 것처럼 살아라!”

여행 비용을 공평하게 나누어라! (프로그래밍 도전과제)

2008년 11월 23일 at 11:13 am

여행 

 

한 클럽의 학생들이 있는데 이들은 매년 다른 곳으로 여행을 간다. 과거 그들의 목적지는 인디애나폴리스, 피닉스, 내쉬빌, 필라델피아, 산호세, 애틀랜타 등이었다. 이번 봄에 그들은 아인트호벤으로의 여행을 계획하고 있다.

 

그들은 여행 경비를 동등하게 지불하고자 하지만, 모든 비용을 발생할 때마다 분배하는 것은 현실적으로 불가능하다. 따라서 각자는 식비, 숙박비, 택시비, 비행기표 등을 지불한다. 여행이 끝난 후에 각 학생들의 각 지출이 계산되고, 돈은 교환될 것이며 따라서 결국 비용은 센트 단위까지 같을 것이다. 과거에는 이러한 돈 계산이 지루하고 시간을 지나치게 소모하는 일이었다. 당신이 할 일은 지출내역으로부터 교환되어야 할 돈의 최소량을 동등하게(센트 단위까지) 모든 학생들에게 분배하는 것이다.

 

Input

Standard input will contain the information for several trips. Each trip consists of a line containing a positive integer n denoting the number of students on the trip. This is followed by n lines of input, each containing the amount spent by a student in dollars and cents. There are no more than 1000 students and no student spent more than $10,000.00. A single line containing 0 follows the information for the last trip.

 

Output

For each trip, output a line stating the total amount of money, in dollars and cents, that must be exchanged to equalize the students’ costs.

 

Sample Input

 

3

10.00

20.00

30.00

4

15.00

15.01

3.00

3.01

0

 

Sample Output

 

$10.00

$11.99

 

 

 

http://www.programming-challenges.com/pg.php?page=downloadproblem&probid=110103&format=html