----->>>>

네스프레소 오리머신 구매

단비의 일상/생활 2021. 12. 13. 23:03

원래 버추오 네스프레소 머신을 쓰고 있었다. 그런데 버추오머신은 물 양이 저절로 정해지기 때문에 아메리카노라면 모르지만 나같은 라떼파의 경우는 라떼 만들어먹기 좋은 만큼만 끊어먹어야 했다.

라떼를 먹기에는 40ml, 80ml 정도가 적당하니 180ml나 230ml 정도 되는 캡슐은 늘 끊어먹어야 했다. 그런데 잘 알아보니 반대 컨셉의 캡슐커피가 존재했다. 무조건 40ml나 110ml로 추출되고 물을 더 타야하는…

더 큰 용량의 캡슐이라 하더라도 끊어먹어야 하는 상황이니 무조건 40ml로 추출하는 머신이 더 좋아보였다.

그래, 투머신으로 가는거야.

국내 정품은 좀 비싸고, 오리 머신은 고장이 잘 나지 않는다니 AS 불가를 무릅쓰고 직구를 한다. Q10에서 샀는데, 역시 싸긴 싸다.

일주일 여를 기다리니 택배박스가 도착했다.

뭐, 크기도 아담하다.
택배 박스를 벗기면 제품 상자가 나온다.

제품 상자를 열기 위해서는 종이로 만들어진 버클을 풀어야한다.
종이 버클을 살짝살짝 당기면 된다.

일단 본체는 꺼내서 가지고 있던 버추오와 같이 배열해보있다.  좌측이 버추오, 우측이 에센자 미니다. 같이 늘어놓으니 식탁 한줄이 꽉 찬다.

일단 본체를 설치했으니 같이 딸려온 것들을 보자.
맛보기 캡슐과 설명서 3개가 있다.

그런데… 독일어라서 읽을 수가 없다. 영어 설명, 아니 한글 블로그라도 찾아봐야겠다.

마지막으로 맛보기 캡슐. 그동안 버추오는 여러번 먹어봤는데, 오리는 뭘 먹어야 할 지 감을 잡지 못하겠다. 맛보기 캡슐로 한번 알아봐야지.



설정

트랙백

댓글

델파이로 만든 안드로이드 앱에서 외부 앱 호출하기

어쩌다보니 언젠가부터 자꾸 델파이로 앱을 만들고 있다. Android App.

그런데, Android Studio 자료는 많지만 델파이 자료는 없다보니 삽질 중인데, 어차피 안드로이드 앱이라는게 Java API를 래핑한 것이라 Android Studio 자료만 가지고서도 약간만 응용하면 델파이에서 사용할 수 있다.
외부 앱 실행을 위한 코드는 아래와 같다. 인텐트니 뭐니 다른 것 생각할 필요도 없고 그냥 실행만 시키는 코드다. 아, 실행시킬 앱이 폰에 설치되어 있지 않을 수 있으니 그것에 대한 오류 처리는 해야 한다. 그 오류 처리를 위해 VarIsNull 함수를 썼었는데 원하는 결과가 나오지 않았다.

결국 NULL 체크를 하는데 가장 유용한 try ... except 구문으로 NULL 처리를 했다.

일단 사용 유닛들은 다음과 같다. 안드로이드 앱 만들때, 사용 유닛들 정리가 귀찮아서 내가 주로 쓰는 것을 모두 uses 절에 넣어놓는다. 그러면 웬만한 에러는 나지 않는다.

 {$IFDEF ANDROID} 
 Androidapi.JNI.Os, // 권한 호출용 unit 
 Androidapi.JNI.JavaTypes, // 권한 호출용 unit 
 Androidapi.Helpers, // 권한 호출, 종료 확인용 unit 
 Androidapi.JNI.Telephony, // 전화번호 가져올때 쓰는 unit 
 Androidapi.JNIBridge, 
 Androidapi.JNI.GraphicsContentViewText, 
 FMX.Helpers.Android, 
 {$ENDIF}

그러면 패키지 이름만 가지고 다른 앱을 부를 수 있다. 아래가 그 코드다.

procedure TfrmMain.lunchApp;
var
  s : String;
  PackageManager: JPackageManager;
  Intent : JIntent;
begin
  s := 'com.chbreeze.jikbang4a'; // 폰에 존재하는 앱으로만 해야 함
  try
    Intent := TJIntent.Create;
    PackageManager := SharedActivityContext.getPackageManager;
    Intent := PackageManager.getLaunchIntentForPackage(StringToJString(s));
    Intent.setAction(TJIntent.JavaClass.ACTION_MAIN);
    SharedActivity.startActivity(Intent);
  except
    on e:Exception do
    begin
      MessageDlg('실행하려는 앱이 설치되지 않았습니다 종료하시겠습니까?', System.UITypes.TMsgDlgType.mtInformation,
        [
          System.UITypes.TMsgDlgBtn.mbYes,
          System.UITypes.TMsgDlgBtn.mbNo
          //System.UITypes.TMsgDlgBtn.mbCancel
        ], 0,
        procedure (const AResult: TModalResult)
        begin
          if AResult = mrYes then SharedActivity.finish;
        end
        );
    end;
  end;
end;

 

그런데, 저 위 코드를 실행시키기 위해서는 앱에 권한을 추가로 부여해야 한다. Query all packages 권한을 부여한다. 위험한 권한이 아니기 때문에 추가로 승인을 받을 필요도 없다. 그냥 툴에서 퍼미션 체크만 해주면 된다.

 

설정

트랙백

댓글

RadStuio MessageDlg 한글로 표시하기

RadStudio를 사용하면 델파이로 앱을 개발할 수 있다. 그런데 외산 툴의 한계가 있어서 MessageDlg등의 명령어를 사용하여 다이얼로그 박스를 만들면 종료 메시지는 한글로 쓸 수 있지만 예, 아니오 등의 기본 언어가 영어로 나온다.

그것을 해결하는 방법은 어렵지 않다.

FMX.Consts.pas 파일을 프로젝트 디렉토리로 복사해 온 후, 아래 내용을 영어에서 한글로 바꿔주면 된다. 프로젝트 디렉토리로 pas 파일을 복사해 오면 그 프로젝트에만 해당 내용이 반영된다.


기본적으로 영어로 되어 있으니 표현하고자 하는 부분을 한글로 바꿔준다.


이런 것을 보면, MS의 툴들은 다국어를 잘 지원하지만 델파이는 아직은 멀었다… 싶기는 하다

설정

트랙백

댓글

RadStudio WebView Zoom Control 없애기

웹뷰를 이용한 앱을 만들고 있는데, 화면에서 pinch Zomm In/Out 기능을 건드리다보니 뭘 잘못건드렸는지 이상한 표시가 생겼는데 그게 눈에 거슬렸다.

이런 아이콘이 생겨서 눈에 무지하게 거슬렸다. 

Zoom Control

그래서 그 해결책을 찾아봤더니 이분 블로그에 있었다. 

그런데 인터넷에서 앱 관련 모든 자료는 안드로이드 스튜디오 기준이다. 하지만 난 RadStdudio로 개발하고 있으니 그에 대응하도록 해서 반영했다.

먼저, 디폴트 값을 바꿀것이니 소스 중 FMX.WebBrowser.Android.pas 파일을 가져다가 프로젝트 디렉토리에 복사한다. 그러면 프로젝트 디렉토리에 있는 파일의 내용을 반영한다.

그리고 소스 중 일부 내용을 바꿔준다. -> setDisplayZoomControls(False)로 바꿔준다.

FMX.WebBrowser.Android.pas 파일 중 일부

그러면 Zoom Control이 없어진다.

그 외에도 상세하게 API를 제공하지 않는 델파이 컴포넌트의 속성을 변경할때 소스파일을 가져다가 내용을 변경하면 적용된다. 그렇기 때문에 델파이는 높은 수준의 API 접근성을 굳아 제공하지 않는 경우도 있다.

설정

트랙백

댓글

델파이 WebView Zoom IN/Out 해결

요즘 간간히 앱을 만들고 있었다.

그런데 요구사항 중 하나가, 특정 사이트에서 핀치 줌/아웃이 되게 해달란다. 그 사이트는 메타태그로 핀치 줌인을 막아놓고 있는 것이었다.

<meta name="viewport" content="width=device-width, user-scalable=no"> 

문제는, 이런 비슷한 해결방법들이 Android Studio에는 많치만 상대적으로 사용자가 적은 델파이(RAD Studio)에는 잘 알려지지 않았다는 거다.

그래서 답은 안드로이드 스튜디오 용으로 일단 찾아놓고.. https://yenne.tistory.com/4 이분이 답을 알려주셨다.

어차피 델파이도 언어가 델파이(오브젝트 파스칼)이라서 그렇지 SDK는 Android Studio를 쓰니 방법은 같을 것이라는 생각에 똑같이 해봤다.

거기 나온 방법대로 WebView 초기값을 주기위해 FMX.WebBrowser.Android.pas 파일을 프로젝트 디렉토리에 복사해 놓고 수정해보기도 하고.... 그런데 별로 소용이 없었다.

처음에는 D.P.F 패키지를 깔아서 해결하려 했는데, 설치도 어렵고... 버전업도 안되고 했는데 기본 컴포넌트로 해결하는 방법이 있었다.

TWebbrowser 컴포넌트 자체에 자바스크립트를 실행시키는 프로시저가 존재했다. 그것은 EvaluateJavascript 라는 프로시저인데, 프로시저 이름에서 풍기는 포~쓰! 그렇다. 아주 쉽게 자바스크립트 실행이 가능했다. 이걸 몰라서 D.P.F 패키지를 깔기 위해 그 뻘짓을 했으니... 

방법은 간단하다.

웹뷰가 문서를 다 로드한 시점에 실행되는 DidFinishLoad 이벤트에 다음 코드를 넣어주면 된다.

그런데 한번 넣어서는 안되고, initial-scale=0 으로 한번 initial-scale=1.0 으로 한번 도합 두번을 넣어주어야 한다.

procedure TfrmMain.WebBrowser1DidFinishLoad(ASender: TObject);
begin
  WebBrowser1.EvaluateJavaScript('document.querySelector("meta[name=viewport]").setAttribute("content", "width=device-width, initial-scale=0, maximun-scale=2.0, user-scalable=yes");');
  WebBrowser1.EvaluateJavaScript('document.querySelector("meta[name=viewport]").setAttribute("content", "width=device-width, initial-scale=1.0, maximun-scale=2.0, user-scalable=yes");');
end;

설정

트랙백

댓글

거실에 널브러진 NAS 나부랑이 정리

단비의 일상/생활 2021. 6. 20. 21:47

거실에 TV 옆에 전자제품이 하나 둘 늘어난 것은 약 10년 정도 전부터 였나보다.

처음에 NAS 대용으로 포고 플러그를 들이고, 또 한대 더 들이고, 라즈베리파이를 들이고, 영화를 보려고 WD Live TV를 들이고. 공유기를 설치하고, 포트가 모자라니 허브를 사다 달고…

거기다 PS4를 들이고 닌텐도 스위치를 들였다.

이렇게 한대 한대 늘다보니 더 이상 손 쓸 수 없는 지경이었는데,

65인치 TV를 사겠다는 결정을 하고보니 어떻게든 치워야 하는 상황이 된거다. 내가 집에 없을때 배송이 올텐데, 설치 기사보고 치워가며 설치하라고 할 수는 없는거니까.

그래서 다이소에 가서 정리함 두개를 사다가 일단 치워봤다. 처음에는 엄두가 나지 않았지만 고딩 아들이랑 하니 할만 했다. 단언하건데, 혼자는 죽어도 못할거다.

정리할게 좀 많아야지. 결국 정리해 놓았고 그 사진이다.


설정

트랙백

댓글

이제 앱 개발도 해보네.

IT업계에서 일한지 25년쯤 되어가나보다.

이제는 개발에서 손 놓은지도 꽤 됐는데, 이 사점에서 앱을 만들었다.
이제는 손도 다 굳고… 예전에 쓰던 개발툴의 신버전에서 앱개발을 지원한다기에 한자 한자 두드려가며 만들었다.
그래도 하던 가락이 있어서인지 뭔가 산출물이 나오기는 한다.

아파트 커뮤니티 사용량을 보는 앱인데, 실상은 웹으로 다 만들어 둔 것인데 앱으로 껍데기만 입혀봤다.

안드로이드 개발자 등록은 일회성 비용만 지불하면 되서 아무런 문제가 없는데, 아이폰은 매년 비용을 지불해야되기도 하고 가장 중요한 맥북이 없다.

일단 안드로이드만 만들었다.

앱을 업로드하고 구글 검수를 기다리는 중인데 곧 되겠지.(5/6에 첫 업로드)

아래 사진은 초기화면. 앱이니 폰 전화번호를 받아다가 바로 적용했다. 기존 웹은 너무 입력화면이 많았다.

 

 

개인정보 넣던 화면은 다 없앴고 전화기에서 전화번호를 받아오니 굳이 인증 화면을 둘 필요가 없었다. 전화번호로 인증되면 바로 내역조회로 넘어간다.
은행 ARS에 연결하면 바로 본인인증이 되던 것에서 착안했다.

 

 

연, 월을 입력하면 사용 내역이 보인다. 이렇게 간편한 UI라야 쓸만하지.

 

 

그러다가 좀 예외상황이 발생하면 이전 화면으로 리다이렉션 시킨다. 입력화면이 많아야 보안이 확보되지.

 

 

향후에, 앱 버전을 올렸을때를 대비해서 구버전 앱을 쓰면 안내가 나오게 했다.

 

 초기버전을 만들고 플레이스토어에 퍼블리싱도 했다.
https://play.google.com/store/apps/details?id=com.embarcadero.DMCPVX_COMM_I
그런데 특정사용자만을 위한 앱인지라 사용자가 없다.

 

설정

트랙백

댓글

마스크 쓸때 안경에 김 서리지 않게하기

단비의 일상/생활 2020. 12. 19. 22:39

금년들어 코로나19의 영향으로 늘 마스크를 쓰고다니게 되었다.

그런데 겨울이 되니 문제가 생겼다. 마스크를 쓰지 않을때는 따뜻한 곳에 있다가 갑자기 추운 곳으로 나올때만 김서림을 주의하면 됐지만 이제는 항상 김이 껴서 안경을 뿌옇게 만들어버린다.

왜그런고 하니 숨쉬고 나온 공기가 마스크를 따라 옆으로 빠져나오면서 코 옆으로 빠져나오기 때문이다.


이것에 대한 해결책은 없을까? 하고 찾아봤더니 종이테이프로 해결이 된단다.

요런걸로.

직접 마스크에 붙여보자. 요정도 모양이 된다.


종이 테이프 붙인 부분만 확대해보면 아래 사진 처럼 된다.


이걸 붙인채 안경을 쓰면 되는데, 생각보다 모양이 나쁘지 않다.


실제 착용해봤더니 진짜 김이 "덜"끼기는 한다. 이때의 체크포인트는 종이 테이프를 옆으로 "넓게" 붙여야 한다는거다.

종이 테이프도 폭이 좁은것, 넓은것 두가지를 파는데, 넓은게 쓰기 편하다.

설정

트랙백

댓글

Pocket Informant 인증이 풀릴때

단비의 일상/IT Episode 2020. 12. 2. 21:28

예전부터, 10년 정도 전부터 캘린더 및 할 일 관리를 위해 Pocket Informant라는 앱을 써 왔다. GTD 라느니 할일 관리하는 명제를 따라 꽤나 비싼 앱을 아이폰에서 샀었고, 안드로이드로 이사와서도 계속 사용해왔다.

이렇게 생긴 앱이다.


아이폰4 때 처음 구입했으니 꽤나 본전을 뽑은 것 같기는 하다. 물론 안드로이드 용도 별도로 구매했다. 그당시에도 몇만원짜리 앱이었던 듯.

그간에는 전화기를 바꾼 다음에 저장해두었던 백업자료로 복원하면 온갖 설정과 구매 라이센스까지 같이 복원되서 별 문제가 없었는데, 최근 앱의 이름이 바뀌며 무슨 일이 있었나보다.

핸드폰을 바꿔 다시 깔았는데 라이선스 복구가 안되는거다. 이렇게.

쏠캘린더를 다시 써볼까 싶기은 마음이 잠시 들기도 했지만 그것도 역시 개발 중단된 앱이라 그다지 끌리지 않았다. 워낙 이 앱이 손에 익기도 했고.

혹시 고객센터 같은게 있지 않을까 하는 생각이 들어 찾아봤지만 웹에거 찾을 수는 없었는데, 앱 안에서 찾았다.

About 안에 해당 메뉴가 있었다. 이제보니 copyright가 2014년에 멈춰있는게 특이하다.

설정 메뉴 바로 밑에 이런 지원해주는 메뉴가 있었다.

밑져봐야 본전이니 안되는 영어로 뭔가 이슈를 제기했다. 그랬더니 뭔가 쏼라쏼라 답변이 왔다. 그 답변 오는 타이밍은 절대 실시간이 아니다. 미국과 우리나라의 시간차 때문인지 꼬박 하루씩 걸린다.

이렇게 답이 왔다.

요약하면 설정>지원>unlock application 메뉴에 가서 언락하라는 얘기다. 거기 나온 이메일을 보내달라네.

당장 가서 확인해봤다.

(이메일은 블러처리) 언락코드 넣는 곳이 있었다. 이넘들 말이 맞네. 지원은 해 주려나보다.

해서 해당 이메일 정보를 보냈더니…

언락코드를 보내주었다.

그걸 앱 내에 넣었더니… 언락되었다.
아무렴, 아무렴. 아무리 신 버전의 앱을 냈어도 기존 사용자가 더이상 쓸 수 없는 상황을 만들어서는 안돼지.

이 앱을 쓰는 다른 분들이 혹시라도 앱을 또 사는 일이 발생할까봐 여기 다시 적어둔다.


설정

트랙백

댓글

에어로치노 휘스크 사용법

단비의 일상/생활 2020. 9. 27. 01:06

네스프레소를 버추오를 쓰고 있고, 라떼를 좋아하기에 에어로치노를 구했다.

그 편리함은 기존에 쓰던 수동 거품기와는 비할바가 아니다.


그런데 거품기(휘스크)의 초기 상태가 스프링이 끼워진 상태다.


저걸 저상태로 쓰다보니 카페에서 사 먹던 라떼보다 웬지 거품이 부드럽기도 하고 너무 과하게 우유거품이 풍성했다. 라떼답지 않게…

그래서 알아봤더니, 카푸치노를 먹을때는 저 스프링을 끼워 쓰는거고, 라떼 만들때는 스프링을 빼고 쓰는 거란다.

그러면, 그 스프링은 어디에 보관하느냐! 했더니, 뚜껑에 끼워놓는데가 있다.


이제는 좀 라떼다운 네소프레소를 내려 먹을 수 있을라나.

설정

트랙백

댓글