windows에서 프로그램이 실행되지않았으나 작업관리자 > 프로세스에 남아있거나,

먹통이 되었을때 강제 종료하는 방법이다.

명령프롬프트 (cmd) 창을 열고 아래 명령어로 강제종료할 수 있다.

 

taskkill /f /im xxxx.exe
taskkill /f /pid 0000

/f    : 강제종료
/im  : 이미지 이름 지정
/pid  : PID 값(숫자) 지정

 

* 출처 : https://www.snoopybox.co.kr/1623

2018년 말에 노트북을 하나 장만했다. 

그동안 데스크탑만 썼는데.. 차지하는 공간과 이동이 불편한 점.. 등 때문에 노트북으로 갈아탔다.

저렴이로 고르다보니 .. ssd 용량이 128GB 이다. 1TB HDD가 있긴 하지만 데이터 백업용도로 사용할 예정이라 

OS 및 프로그램 설치용으로 128GB는 턱없이 부족하다.

마침 Amazon에서 세일하는 삼성 1TB ssd를 구매했다. 

생각했던 것 보다 훨씬 작다.

삼성홈페이지 가면 기존 ssd 내용을 그대로 옮길 수 있는 툴(Data Magration Tool)이 있다. (https://www.samsung.com/sec/support/model/MZ-N6E1T0BW/)

그걸 사용하려면 m.2 ssd를 usb로 연결할 수 있는 장치가 필요하다.

그래서 또 샀다. 

M.2 ssd를 넣을 수 있는 본체와 케이블 본체를 열때 사용할 드라이버가 들어있다.

본체 기판은 이렇게 생겼다.

가운데 M.2 ssd를 꼽아주기만 하면 된다.

노트북에 연결후 Data Migration Tool로 기존 ssd 데이터를 신규 ssd로 옮기는 중이다.

이젠 노트북을 뜯어야한다.

생각보다 뜯기 쉽다. 겁먹지 않아도 된다..

우선 노트북 바닥에 밀림방지 고무 4개를 뽑아낸다.

뽑고보면 나사가 보인다.

나사를 풀고 .. 

노트북 바닥을 들어내야하는데.. 

얇은 플라스틱(책받침) 같은 것을 이용하면 수월하다.

안에서 바닥과 옆면이 맞물린 구조라 

약간의 힘을 가해야 빠진다.

뚜드득 소리가 나면서 밑바닥이 아래처럼 분리된다.

내부는 이렇게 생겼다.

하단에 하얀건 베터리

옆에 철판은 HDD (하드)

쿨러와 베터리 사이에 보이는게 M.2 ssd 이다.

삼성노트북인데.. M.2 ssd는 삼성브랜드가 아니다. .. 충격~

이건 HDD 이거 뜯어내면 무게가 확 줄어들듯하다.

기존 M.2 ssd를 빼내고 새로산 M.2 ssd를 장착한다.

커버를 덮고 볼트를 조이고 고무패킹을 넣으면 끝.

하기전에는 AS 센터가서 할까 고민이 많았는데...

막상하고보니 쉽다.

돈 굳었다.

#docker 설치
sudo curl -fsSL https://get.docker.com/ | sudo sh

# 확인
sudo docker version

# 권한설정
sudo usermod -aG docker pi

# ha 이미지 다운로드
sudo docker pull lroguet/rpi-home-assistant:latest

#  home-assistant 사용 폴더 생성
sudo mkdir /etc/home-assistant


# 도커 이미지를 통한 도커 컨테이너 생성
sudo docker run -d -p 8123:8123 --name ha -v /etc/localtime:/etc/localtime:ro -v /etc/home-assistant/:/config lroguet/rpi-home-assistant:latest

8123:8123 : 접속 Port 번호
--name ha : 컨테이너 이름
/etc/home-assistant/ : home-assistant의 config 파일 저장 위치
lroguet/rpi-home-assistant:latest : docker 컨테이너에 사용할 이미지

# 확인
sudo docker ps

# 도커 컨테이너 재실행
sudo docker restart ha

#HA 접속
http://rpi_ip:8123


2015년 부터 살았는데 현관문에 고무패킹이 없다는것을 불과 몇달전에 알았다.

현관이 휘어진 탓도 있지만... 

고무가 없어서 바람과 냄세가 더 잘 들어온거 같다. 

늦었지만 더 늦기 전에 교체 해주었다. 

 

"현관 고무"로 검색하면 여러개 나온다. 

불안붙는 것도 있고 걍 고무도 있고.. 가격차이가 조금 난다. 

난 그냥 고무로 .. 주문했다. 

 

총알 배송.. 하루만에 왔다

고두 2줄과 사은품 목장갑.. 그것도 코팅으로 와~ 많이 팔리는 이유가 있음

 

설명서를 보면 기존것을 빼고 넣으라고 되있다.

사실 설명서가 필요한 정도는 아니다. 

 

우리집엔 원래 없어서 이 상태다..

저기에 고무패킹을 끼우면 끝.

 

끼우고 가위로 조금 긴듯하게 잘라주면 된다.

작업소요시간 5분...

소음, 바람 유입이 감소한 듯^^

만원의 행복^^

바베큐가 하고싶은데.. 집에서 챠콜은 연기때문에 좀 그렇고.. 

어디선가 본건 있어서 알리익스프레스에서 저렴한 버너를 구매했다.

 

 

부탄가스 연결부품과 함께 약 10불정도에 구매한것 같다.

싸서 샀는데... 생각보다 분해가 용이하다.

위 불나오는 부분을 돌리면 빠지고 나사 2개만 풀면 완전 분리된다.

밑둥은 구멍사이로 젖가락을 넣어 돌리면 그것도 빠진다. 

그러면 점화플러그 부분과 버너 부분도 분리된다.

말로 하려니 어렵네... 

 

웨버37에 끼워봤다. 

구멍 뚫어서 넣으면 이쁘게 들어갈텐데.. 귀찮기도 하고

자주 사용하는게 아니라서.. 걍 있는 구명이 넣는 것으로 정했다.

 

개조라고 하니 좀 거창한데.. 이건뭐 사실 개조 축에도 못끼는 거다.

불을 붙여 테스트 해보았다. 

처음에 빨간불 ... 안에 이물질이 타는 듯.. 하다

계속 켜놓으니 파란불로 바뀜.

 

 

전날 마트에서 사와서, 시즈닝해놓은 고기를 올렸다.

시즈닝은 간단히, 소금과 통후추를 갈아서 뿌리고... 올리브오일을 발라놨다.

 

누군가 후드아래서 하면 냄세도 연기도 안난나고해서 나도 그렇게... 후드 밑에 자리를 잡았다.

쿠킹호일로 기름 받이를 만들어주고

불을 당긴다.

 

뚜껑을 덥었다.

 

혹시 불이 꺼질까봐 걱정했는데.. 안꺼지고 잘 붙어있다.

서서히 온도가 오른다.

금세 170도 ... 

이상태로 계속유지된다. 

온도 조절이 너무 용이해서 좋다. 

중간에 온도를 좀 올려 봤다. 음~ 역시 조절이 잘된다.

후드를 켜놓고 했는데.. 진짜 연기1 냄세1도 없다. 

만족~!

 

2시간쯤 지나서 뚜껑을 열었다. 아직 덜익었다. 고기 심부온도가 약 70도

돼지고기는 77도는 되어야 .. 해서 더 익혀줬다.

 

시작한지 3시간쯤지나니 심부온도가 적정온도로 나온다. 

고기를 꺼내 코일에 싸서 레스팅을 한다. 약 20분

썰어서 한상 차려봤다.

또 먹고 싶다.

2시간 정도면 될 줄 알았는데..

3시간이나 걸리다니..... 너무 오래걸리네

다른 분들 후기를 보니 150도로 5시간 했다는 분도 있네..

다음부터는 좀더 여유를 가지고 해야겠다. 

 

인생은 고기서 고기니까 자주 먹어줘야겠다.


주말에 도서관가거나 

한밤중에 야식사러 갈때 

자전거를 주로 이용한다.


달리다보면 뒤를 확인하고 싶어질 때가 있는데..

그 때마다 고개를 돌리려니 영 불편한게 아니다.


그래서 알리익스프레스에서 사이드미러 2개 셋트를 구매했다. 

무배에 6800원 정도 .. 배송은 약 2주만에 왔음.


포장 굿~


퀄리티도 나름 좋다


7000원이 채 안된다는 사실에 또한번 감탄한다


달고 나가 봤다.. 도서관 가는길...


미러 앞은 반사판이 붙어있음. 나름 잘 샀음. 뿌듯.


그런데.. 이거 거울이 안습이다. 

와이드가 아니라서 잘 안보인다.. 

그리고 바닥이 울퉁불퉁하면 충격이 전달되 미러가 지맘대로 왔다갔다한다 .. 고정이 잘안됨

다이소에서 자동차용 미러 둥그런거 사다 붙여야 겠다.


https://www.aliexpress.com/item/Deemount-1-Pair-Bicycle-Rear-View-Glass-Mirror-Bike-Cycling-Wide-Range-Back-Sight-Reflector-Angle/32799656352.html?spm=a2g0s.9042311.0.0.201f4c4dEy1cuW


그사이 가격이 좀 올랐네

사실 낚시 잘 모른다.

어릴적 아버지따라 저수지가서 붕어낚시 해본적 몇번 있음..


요즘 낚시가 대세인가? 아니면 나이를 먹어서 인가..?

낚시가 하고싶어 졌다.


먹지 못하는 민물은 말고 

바다에 가서 먹을 수 있는 물고기를 잡고 싶었다.


그래서 일단 낚싯대를 샀다.

너무 싸구려는 금방 못쓰게 될것 같고...

그나마 브랜드 있는 것으로 6만원정도 주고 샀다.

시마노 이게 자전거 기어 브랜드인줄만 알았는데 릴도 만드네...

암튼 다이와 시마노 릴이 유명하다고 함.

내가 산 건 그중 제일 저렴이...


주문하고 다음날 택배가 왔다. 7ft 릴대, 시마노 2500번릴, 가위, 루어 세트


루어랑 바늘이랑...세트다


이 가위가 정말 유용함


릴은 이렇게 생겼다


낚싯대가 왔으니 고기를 잡으러 갔다. 

국민 낚시터 시방 (시화방조제)

집에서 약 50Km 거리 1시간정도 걸리는 듯

새벽같이 출발해서 도착하니 6시쯤... 6시 30분쯤이 만조라

이시간에 갔음

사실 지금도 잘 모르지만 물때라는 것이 있어 

때를 잘 맞춰야한다고 함


일출이 멋진 하늘


평일 새벽인데도 많은 분들이 낚시를 즐기고 있었다.


티라이트 휴게소에 차를 대고

휴게소 2층 낚시 용품점에서 

고등어 채비하고 소세지 찌 채비 지렁이를 사서

낚싯대 첫 개시...


하자마자 고등어 채비 바닦에 걸려서 끝..

소세지 찌로 겟지렁이 달아서 시도해봤지만.. 

고기가 있는건지? 의심될 정도로 감감 무소식

바람도 엄청 심하게 불고...

배도 고프고



사실 매듭법도 하나도 모르고

릴 사용법도 모르고

낚시줄 거는 것도 모르고

2시간 동안 헤메다 왔음


집에 와서 유튜브 동영상보고 공부해서 조금 알게됨.

매듭법과 릴 사용법.. 그리고 각종 채비들... 


이건 지난주 좌대 쭈꾸미 낚시 1마리도 못잡음


아직 초보고 내공이 없어서 그랬다고 

스스로 위로하며 다음을 기약했음


근데.. 낚시 또 가고 싶다. 병인듯~

오늘의 안주는 바지락술찜입니다.

이건 뭐 요리도 아님.. 걍 바지락을 냄비에 넣고 끓이면 끝..

캠핑가서는 화로대 잔불에 호일로 싼 바지락을 올리면 끝~


<재료>

1. 바지락 800g (이마트에서 손질 바지락을 구입함)

2. 마늘 많이

3. 청양고추 2개

4. 올리브유 2 숟가락


<양념>

1, 후추



<만드는 법>


1. 바지락을 물로 씻어줍니다. 손질 바지락이지만 혹시 몰라 소금을 뿌리고 해감을 했습니다.


해감할때는 캄캄하게 해놔야 해감이 더 잘된데요.. 그래서 도마로 덮었어요


2. 마늘을 편내어 썰어주고, 청양고추도 썰어서 준비해주세요.


3. 해감 후 물로 행군 바지락을 냄비에 넣어주세요


4. 올리브유를 2숟가락 정도 두르고, 바지락위에 마늘과 청양고추를 넣어줍니다. 그리고 후추를 뿌려주세요~


5. 뚜껑을 덮고 중간불로 익혀주면 끝이네요~ 이거 쉬워도 너무 쉬운거 아닌가요?


바지락이 입을 벌리고 있네요^^


김이 나기 시작했습니다.


고지가 코앞이네요, ㅋㅋ


완성되었습니다.


아~ 맛있겠네요~


소금을 1도 안넣었지만, 바지락에서 우러나온 국물이 좀 짜요~

소주 안주로 아주그냥 끝내줍니다^^

바지락 다 건저 먹고 칼국수 넣고 물부워서 끓여먹어도 맛있을 것 같습니다. (한번도 그렇게 해본적은 없네요 ㅎ)






1년 전쯤 지인에게 받은 야관문 200g으로 야관문주를 만들었었는데.. 

맛만 볼까하고 개봉한 야관문주 2.4L를 그 자리에서 다 비워버렸다. (물론 나혼자는 아니고 지인들과 함께임)

맛도 맛이지만, 효능때문에 멈출수가 없다는 마성의 야관문주.. 잊지 못해 또 만들었다.


청양에 놀러 갔을 때, 우리 농산물 판매 업소에 들렀는데, 

거기서 야관문을 보고 사야지 했으나 인터넷을 검색해보니 훨씬 싼 가격에 씻어 말린 야관문을 팔고 있길래 

인터넷으로 주문했다.


600g 에 9900원이었나? 암튼 만원이 넘지 않았음.. 오프라인 매장에서는 250g 에 6000원 이었음.


<재료>

1. 야관문 (인터넷 주문 세척 야관문 600g 약 12000원(배송비포함))

2. 담금주 (트레이터스 구매 10.5L 약 29000원정도) 

3. 밀폐가능한 유리병 (4L짜리 2개는 다이소- 개당5,000원, 2.4리터 짜리 1개는 이마트 6000원이었나? 

                             다이소가면 종료별로 다있음 다이소에서 사는 것을 추천함 )



<만드는 법>


1. 유리병을 깨끗이 씻어 주세요. 



세제로 싰고 , 베이킹파우더로 닦아줬습니다. 그리고 다시 물로 행굼.. 

지난번에는 뜨거운 물로 살균했었는데.. 그러면 병이 깨질 수 있다고 해서... 베이킹파우다로 닦았네요.


2. 야관문 600g 입니다. 딱 봐도 양이 많습니다.


3. 신문지를 깔고 제조할 준비를 합니다.


4. 야관문을 빈병에 3분의 1정도 채웁니다.


5. 담금주 30% 10.5L입니다. 뚜껑을 따고 술을 부워줍니다.


담금주를 큰 놈을 샀더니, 처음부터 들고 붓기가 힘들어서 컵으로 부워줬는데.. 바닦에 술 엄청 흘렸습니다. OTL


다 부웠습니다. 술양이 아주 딱맞네요~ 


6. 이제 밀봉만하면 끝입니다.


7. 이제 기다림의 시간이 시작됩니다. 서늘한 곳에 놔두면 됩니다.


최소 3개월 정도 숙성해서 개봉하라는데.. 언제 기다리나..

1년은 지나고 개봉해야 맛도 향도 좋을 듯 합니다. 

내년 여름에는 야관문주 풍년이 들겠네요~^^

벌써 부터 기대됩니다.

데이터가 제법 많은 목록에서 제목을 LIKE 검색하는 경우,

혹은 공백을 포함한 문자열의 공백 제거 후 검색을 하는 경우,

속도 이슈가 발생한다. 


이런 경우 DBMS에서 제공하는 FullTextSearch 기능을 사용하면 훨씬 빠른 결과를 얻을 수 있다. 


그런데 Devexpress GridControl을 사용하는 경우.... 

AutoFilter에서 검색시 Filter 정보에는 

contains([검색필드명], N'검색어') 로 입력되며,


실제로 DBMS에서 실행되는 Query문을 확인해보면 

    (isnull(CharIndex(N'검색어', [검색필드명]), 0) > 0 


이런 식이다... 대략 낭패 OTL


어찌해야 AutoFilter에서  FullTextSearch를 사용할 수 있을까?


찾아보니 아래와 같이 ICustomFunctionOperatorFormattable 인터페이스를 구현한 클래스를 추가하면 가능하다는 것을 알았다.


< 구현 방법 >


1. ICustomFunctionOperatorFormattable 를 구현한 클래스를 생성한다.

이름 지정과 포멧 함수 구현이 핵심인 듯...

using System.Data;
using DevExpress.Xpo.DB;
using DevExpress.Data.Filtering;

public class FullTextContainsFunction : ICustomFunctionOperatorFormattable {
    #region ICustomFunctionOperator Members
    // Evaluates the function on the client 
    public object Evaluate(params object[] operands) {
        // Full text search is not available on the client and should not be used there 
        throw new NotImplementedException();
    }
    public string Name {
        get { return "FullTextContains"; }
    }
    public Type ResultType(params Type[] operands) {
        return typeof(bool);
    }
    #endregion
    #region ICustomFunctionOperatorFormattable Members
    // The function's expression to be evaluated on the server 
    public string Format(Type providerType, params string[] operands) {
        // This example implements the function for MS SQL databases only 
        if (providerType == typeof(MSSqlConnectionProvider))
            return string.Format("contains({0}, {1})", operands[0], operands[1]);
        throw new NotSupportedException(string.Concat("This provider is not supported: ", 
            providerType.Name));
    }
    #endregion
}


2. 프로그램 시작시 ICustomFunctionOperatorFormattable 를 구현한 클래스의 인스턴스를 CriteriaOperator에 커스텀 함수로 등록한다.


// program.cs 나 MainForm 에 추가한다.

CriteriaOperator.RegisterCustomFunction(new FullTextContainsFunction());



3. 그리고 필터에서 검색시 아래와 같이 필터를 입력한다.


CriteriaOperator.Parse("FullTextContains([필드명], '검색어')");




결과는 아주 잘 작동한다.


* 참고 : https://documentation.devexpress.com/CoreLibraries/3246/DevExpress-ORM-Tool/Examples/How-to-Implement-a-Full-Text-Search






+ Recent posts