9월, 2011의 게시물 표시

노트북 백 라이트 교체

이미지
몇년전에 올린 게시물인데, 가져왔다. LED 아닌이상 모두 백라이트를 사용할 것 같고, 수리도 마찬가지일것 같아서 다시 포스팅 해놓는다. 영어 공부겸 영어로도 남긴다.(발영어) 테두리를 덮고 있는 케이스를 뜯어 낸모습.(Remove top case) 판넬을 분리하기전 뒤쪽 커넥터.( LCD Connector before remove from LCD panel) LCD 판넬 뒷모습(Back side of LCD panel). 아래쪽에 문제의 고장난 백라이트 커넥터가 보인다.(Connector of The Broken BackLight , bottom of LCD panel) 분리된 백라이트. 타서 끊어져있었다.( The Broken BackLight. The BackLight was cutted why was burn) 교체하는 사진을 찍지 못했다.(I missed picture while change the backlight) 백라이트를 교체한 후사진이다.(The figure that backlight is changed) 처음해보는거라 2시간 가량 걸린것 같다. ( It take about 2 hours cuz I don't have experience) 얻어온 금박 테이프가 넓어서 가위로 반톡막내 붙이기 전 사진.( Gold foil tape was wide. so I cutted the tape) 케이스를 조립하기전 테스트 화면.(Test before assemble the laptop) 사진은 잘나왔는데, 처음엔 화면이 하얗게 나와서 전부다 분리하고 다시 조립하고를 2시간가량 했더니 허리가 끊어질것 같았다.(Actually figure is good. but at fist assemble LCD was just WHITE. So I disassemble all unit and assemble again twice. I felt My waist were cutted)

WPF RichTextBox 와 Document의 바인딩

MVVM 패턴을 이용해서 View의 TextBox 등에 바인딩은 간단하게 <TextBox Text="{Binding mystring}"/> 이렇게 하면 된다. RichTextBox 도 마찬가지 일것 같지만, 해보면 안된다. 먼저 RichTextBox가 Content를 표현하는 구조를 알아야 되는데, 그건, 다음에 정리하고, 바인딩 하는 방법은 아래와 같다. 먼저 ViewModel 을  DependencyObject 를 상속고 DependencyProperty 를 정의해준다. public class MyViewModel : DependencyObject { public FlowDocument Document { get { return (FlowDocument)GetValue(DocumentProperty); } set { SetValue(DocumentProperty, value); } } public static readonly DependencyProperty DocumentProperty = DependencyProperty.Register("Document", typeof(FlowDocument), typeof(MyViewModel), new PropertyMetadata(OnDocumentChanged)); public void OnDocumentChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { } } 그 다음 View 의 code-behind 의 생성자에 InitializeComponent(); Binding b = new Binding("Document"); b.Source = richTextBox; b.Mode = BindingMode.OneWay; BindingOperations.SetB

C# 정규식

.Net에서는 정규식을 위해 Regex 라는 클래스를 제공한다. Regex 클래스는 System.Text.RegularExpressions 네임스페이스에 있다. 우선 전화번호는 Regex regex = new Regex(@"\d{3}-\d{3,4}-\d{4}"); \d 는 [0-9] 와 같은 표현식이며 실제로 전화번호는 전부 0으로 시작하기때문에 0 이라고 써도된다. Regex regex = new Regex(@"0\d{2}-\d{3,4}-\d{4}"); 두번째 자리는 핸드폰의 경우는 모두 1 이므로 아래와 같이 수정할수 있다. Regex regex = new Regex(@"01\d-\d{3,4}-\d{4}"); {n} 은 반복되는 횟수이다. \d 는 숫자라는 뜻이다. 첫번째 \d{3} 은 숫자가 3개 반복된다는 뜻이다. 대쉬 "-" 는 그대로 인식된다. \d{3,4} 는 숫자가 3자리에서 4자리라는 표현이다. 여기까지면 전화번호 표현은 끝이다. 첫번째 표현은 아래와 같이 다르게 표현할수 있다. Regex regex = new Regex(@"[0-9]{3}-[0-9]{3,4}-[0-9]{4}"); [0-9] 는 0에서 9 사이의 문자가 올수 있다는 뜻이다. [0-9]{3} 는 0에서 9사이의 문자가 3번 반복된다는 뜻이다. 그럼, 아래 예제를 실행해보자. static void Main(string[] args) { Regex regex = new Regex(@"\d{3}\-\d{3,4}\-\d{4}$"); string[] target = { "011-333-1234",

C# WPF Cross-thread problem

WFP를 이용해서 어플리케이션을 개발중이다. 예외 메시지는 "다른 스레드가 이 개체를 소유하고 있어 호출한 스레드가 해당 개체에 액세스할 수 없습니다." UI를 다른 쓰레드에서 update 할려고 하면 UI를 담당하는 쓰레드가 해당 컨트럴(객체)를 사용하고 있어 접근 할 수가 없다. 이렇게 다른 쓰레드가 사용하는 객체를 다른 쓰레드에서 접근할때 생기는 문제를 Cross-thread라고 한다. 해결방법은 새로만든 쓰레드에서 UI를 update 할때 UI쓰레드에게 할일을 위임해주면 된다. Winform에서는 Invoke 메소드를 이용하고 WPF에서는 Dispatcher.Invoke를 이용하면 된다. 예제는 구글링으로 ~ 구글링은 c# wpf cross thread 등으로 검색하면된다. http://www.google.co.kr/search?gcx=w&sourceid=chrome&ie=UTF-8&q=c%23+cross+thread+wpf+dispatch

소나타 하이브리드

살면서 이벤트에 당첨되거나, 경품에 당첨 되거나 한적이 없었다.  이번에 11번가와 현대차에서 추석때 일주일간 무료로 소나타하이브리드, 벨로스터, 소나타T-GDI를 렌탈해주는 이벤트에 참가했는데, 당첨되었다. ㅋㅋㅋㅋㅋㅋㅋ  현대차 홈페이지에서는 명단에 내 이름이 없어서 , '그럼, 그렇지 ... 내가 당첨될리가... ' 했는데 현대차 성남 대원대리점 소장님께서 직접 전화를 하셨다. 처음엔 거짓말인줄 알았다. 어쨋든 소장님 정말 친절하시고, 쾌활하신 분이었다. 면세 양주나 한병 갔다 드려야겠다. ㅎㅎ 각설하고 출장가서 프리우스를 일주일간 렌트해서 타보았던것 빼고는 하이브리드 차는 경험이 없었다. 중형차라서 저속에서 힘이 딸릴줄 알았는데, 생각보다 잘 나갔다. 전반적인 느낌은 하이브리드인줄 모르고 탈수 있었고, 시내주행 평균 연비가 12~15km 였다. 도로가 많이 밀려 저속으로 오랬동안 간다면 연비는 더 올라갈것같았다. 일부러 어느정도 급가속을 해보곤 했는데, 힘이 많이 딸린다는 느낌은 없었다.6단기어의 영향도 있는것같다. 물론 스펙상 마력차이가 나니 번갈아 타면 차이가 나겠지만, 일반적인 주행은 무리없다고 판단된다.  프리우스 렌탈때는 브레이크가 전자식이라 브레이킹이 정말 짜증났었다. 그래서, 무의식중에 브레이크가 걱정되었던 모양이다. 브레이크를 밟았을때 편한 느낌을 받았다.  내일 부산으로 출발하는데 출발부터 연비확인하면서 가봐야겠다.  여담으로 포르테쿱GDI 1.6 차량(12년식)은 실제로 고속주행을 해보면 연비가 18km나온다. active eco 기능을 꺼놓고 주행하면서 100~140km/h 으로 주행을 했는데 , 18.7km 가 나왔다. 시내주행은 여친사마께서 active eco를 켜놓고 7~9km 정도 나온다.  렌탈기간동안 여러가지 테스트를 해봐야겠다.  어쨋든 성남 대원대리점 임정만 소장님 친절해서 기억이 남았고, 다시 한번 감사드린다.

C#, BinaryReader , Java , ReadDouble

자바에서 ReadDouble() 로 잘 읽어서 사용하였는데 C#에서 ReadDouble() 로 하니 엉뚱한 값이 나온다. window 머신이었는데, hex 값을 보니 little endian 이었다. java로 돌렸을땐 잘돌아가서, 아무 생각없이 하다 삽질만 했다. 어쨌든 해결 방법은 간단하다. http://msdn.microsoft.com/en-us/library/bb384066.aspx 바이트 배열로 읽어서 뒤집어 준다음 Double로 바꿔주면 된다. BitConverter.ToDouble(bytes);