2016년 11월 22일 화요일

웰케어 칫솔 / 험블 칫솔(친환경)

웰케어 칫솔
http://www.wellcare79.com/


험블 칫솔 (친환경)
웰케어 보다는 많이 비싸...
과학하고 앉아있네 팟캐스트에서 광고를 들었다.

http://blog.naver.com/PostView.nhn?blogId=eos312&logNo=220851274768&parentCategoryNo=&categoryNo=98&viewDate=&isShowPopularPosts=true&from=search

http://storefarm.naver.com/humblebrush/products/423277962

지마켓은 좀 더 비싸..
http://gmkt.kr/g1ogTs

http://item2.gmarket.co.kr/Item/DetailView/Item.aspx?goodscode=899810540

다른 대나무 칫솔도 있는 것 같다.

한국 치과의사가 만든 것 ?
http://m.blog.naver.com/6010832/220626594222

한국 프로젝트 노아
http://m.blog.naver.com/6010832/220626594222

여기 저기에서 200원 짜리라고 되어 있는데, 정말 그 가격인지는 모르겠다.
그러나, 실제로 활동적인 곳은 찾을 수 없었다. 1회성이서 이제는 없어졌거나, 자선 활동이어서, offline으로 옮겨져서 online에서는 찾을 수 없게 되었거나.

아이졸라 칫솔


중국산도 있는데, 험블과 가격이 거의 같다.
IDEACO(아이데코) 제품 뉴질랜드 제품이라는 둥 헷갈린다.

====

나는의사다 팟케스트에서 소개되었던 부드러운 칫솔이라던 것이 있다. 수입품인 것으로 알고 있다. 이름은 나중에 최근 방송에 나온 댓글에서 알게 되었는데, 
큐라덴 칫솔 
이라고 한다. 더 자세한 것은 알아내지 못했다. 찾아 볼 시간이 없었다.

-
-

2016년 11월 15일 화요일

메일 전달할 때에 첨부파일 성가신 이상한 것: Winmail.dat 를 읽어주는 프로그램

어떤 email 중에서 메일을 전달해 줄 때에 Winmail.dat 라는 이상한 형태의 첨부 파일로 전달되는 경우가 있다.
때로는
Winmail.dat  로 첨부되던가, 아니면,
ATT00001.dat   또는,
ATT00005.eml    등등의 형태로 첨부되는 경우가 있다고 한다.

이것은 표준 파일 형식이 아니고, MS에서 사용하는 첨부파일 형태라고 한다.

아래의 프로그램을 이용하면, 읽기가 가능해 진다.

Winmail.dat Reader
http://www.winmail-dat.com/

-
-

2016년 10월 30일 일요일

[메모]TeX4ht 한글 구현 오래된 연구 파일 위치 http://faq.ktug.org/faq/TeX4ht/한글구현

http://faq.ktug.org/faq/TeX4ht/%C7%D1%B1%DB%B1%B8%C7%F6
http://faq.ktug.org/faq/TeX4ht/한글구현

문서의 맨 처음에 있는 

2594 (by Karnes) 2005-02-05 글은, 이제 옛 게시판이 되어서,
인터넷에서의 주소 위치가 아래로 바뀌어 있다.
https://ktug.kldp.net/jsboard/read.php?table=contrib&no=2594

그리고, 첫번째 예제 파일인, testdhucs-html.zip 파일도 거기에 기록된 위치에서는
찾을 수 없고, 2594 게시글처럼 다른 위치로 바뀌어, 아래의 위치에서 찾을 수 있다.
https://ktug.kldp.net/jsboard/data/contrib/files/20050205012112/testdhucs-html.zip

이 글 머리에 있는 위키 문서가 이제 편집/수정이 불가능하게 되어 있어서, 여기에 기록을
남긴다.

-
-
-



2016년 8월 10일 수요일

요즈음 한동안 약간의 관심을 갖고 있었던 변호사님의 근황. 우연히 한겨레 기사에서 알게 되었다.

아래가 우연히 보게 된 그 변호사님의 현재 근황 기사...
http://www.hani.co.kr/arti/society/area/755937.html
그 직전에 전주 삼례수퍼 사건의 다음 스토리 펀딩에서 알게 되었을 때쯤에
한겨레에 나왔던 기사...
http://www.hani.co.kr/arti/society/society_general/722574.html

그 이후, 몇달 정도 더 관심이(관심만, 그저 관심만..) 있었으나,
그 스토리 펀딩에 진전이 없어서 궁금했었다.
이번에 업무를 보다가 인터넷을 해야 하니... 우연히 알게 되었다.
파산이시라니... 안타깝다.
-
-


2016년 8월 8일 월요일

up up and away.. MS 사의 판매 서비스 홈페이지에 나온 Back-to-school essentials 에 그림..


https://www.microsoftstore.com/store/msusa/en_US/cat/Back-to-school-essentials/categoryID.67998200?icid=en_US_Store_UH_sale_gm_bts

에 나온 그림이 있다.
요즈음, '디지털 치매'라는 책을 읽고 있는데, 학교에서의 컴퓨터 사용에 대한
신랄한 비판이 주된 내용이다.
MS 사의 고객 페이지에
Back-to-school essentials package 에 나온
지구본을 보고 있는 아이들의 사진과 이 광고의
주인공인.. 컴퓨터 화면...그 내용이라고
옆에 나오는 화면 내용이 흐릿하게...

'Prep for success'(성공을 위한 준비)라는 제목이 옆에...
오른쪽에는 화면에.. up up and away 이것은 검색해 보니, 1967년에 나온
히트곡의 제목이라고 한다.
그 오른쪽에 Apollo 11 (수십년전의
달 탐사선..) 사진은 충격적이게도, 그와 별 관련 없는 우주왕복선 콜럼비아 호 ..
고체 연료통의 색이 누렇게 된 것으로 봐서는 비참한 사고로 연소되어 사라지기
얼마 전쯤의 여러 번 발사된 후의 재발사 사진으로 추측된다.

어린이 옆에 내용이 일관성이 없는 제목과 사진, 그 사진은 비참한 사고로
몇 명의 목숨이 사라진 실패한 우주선...

'디지털 치매'의 주장에 의하면, 이런
Microsoft의 문구(성공을 위한...)는 (개-거짓말)이라고 할 수 있을 듯 하다.

그 아래의 내용은... 학생들에게 XBOX 게임기를 할인해서 판매한다... ㅋ

뭔가 그 화면과 비슷한 내용을 찾을 수 있을까 싶어서 아래의 검색을 해 봤다.
_( up up and away apollo 11 )_

http://history.nasa.gov/ap11fj/14day5-landing-prep.htm
아폴로11호에 대한 좋은 내용을 찾을 수 있었지만,
up up and away 와는 직접적인 관련이 없어 보인다.

대신.. Michael Collins(마이클 콜린스)가 아폴로11호 사령실 내부에 낙서(?)한 글에서
아폴로 11 호와 콜럼비아 호 사이의 관계를 얼핏 알아낸 듯하다.

http://history.nasa.gov/ap11fj/cm-107_graffiti.htm

그 낙서의 내용에 의하면, 아폴로 11호의 정식 명칭은 (Space craft 107) (우주선 107)
이며, 아폴로 11호는 alias(별칭)이며, 이 별칭 말고도 다른 별칭이 더 있는데,
그것이 Columbia(콜럼비아) 호 라는 것이다.
---

어쨌든, 도무지 좋게 보이지 않는 것은 왜 그럴까...
뻔뻔한 거짓말과 유혹에 둘러싸여... 어떻게 살아야 할지 걱정된다.

-


-
-

2016년 7월 28일 목요일

hexedit 정보.

다짜고짜 reactos 홈페이지로 갔다.
스크린샷을 봤다.
https://www.reactos.org/gallery
그중 하나에 hexedit 이 작동하는 스크린샷이 있었다.
거기에는  hexedit 정보가 있었다.
http://www.catch22.net/

끝.
-
hexedit에서 긁어온 정보들. 중요한 것은...
github.com/strobejb/HexEdit
에서 소스 코드를 관리하고 있다고 한다.
-
https://github.com/strobejb/HexEdit
에 적힌 내용에 의하면, 
소스코드는 VisualC++2010 이상에서 컴파일이 된다고 한다.
Building HexEdit

HexEdit requires Visual C++ 2010 (or later). HexEdit can be built using the IDE, or via the Visual Studio command-prompt by using the /build/build.bat command.

The resulting binaries will be located in the /bin directory.

When using the build.bat commandline tool, packaged zipfiles will be located in the build/out directory
-
Win32 Software & Programming Tutorials

    Home
    Software
    Source
    Tutorials
    Contact

hexedit-x86-2.0.6.49.zip

Published on 15 Jun 2013

264.33 Kb
Download
hexedit-amd64-2.0.6.49.zip

Published on 15 Jun 2013

299.42 Kb
HexEdit 2.0

HexEdit is a hexadecimal file editor for Microsoft Windows. HexEdit allows the user to view and edit any type of file, no matter what format it is saved in.

With a maximum file size limit of 16Exabytes (17,179,869,184 gigabytes!!), HexEdit can cut, copy, paste, insert and delete any amount of data with no decrease in performance with larger files. With unlimited multi-level undo and redo capability, no matter how large the file, HexEdit brings a new level of control over file editing.
Open Source

HexEdit 2.0 has been fully open-sourced under the MIT licence. Visit github.com/strobejb/HexEdit to clone the sourcecode repository using Git, or download the entire source bundle as a single Zip file.
Features

    16 Exabyte files - opens files of any size, with no decrease in performace
    Unlimited Undo & Redo
    Modify file time-stamps
    Search & Replace for Hex, Ascii, Unicode and Numeric data
    Flexible hex display options (hex, decimal, binary, byte, word, dword)
    Fill data ranges

Custom types & structure viewer

    TypeView provides a structured view on top of a file's raw hex bytes
    Underlying structure of a file can interpreted and modified through the TypeView window
    Supports full C syntax for structure definitions
    Structures can be edited within HexEdit, or in an external source editor

 Bookmarks and Annotations

    Bookmarks and annotaitons within the hex display
    Annotate any range(s) of bytes within a file
    Fast access to saved bookmarked positions, through the bookmark viewer.
    Automatically saves bookmarks for future use

Clipboard formats

Import & Export files or clipboard data, using many different formats of data:

    Hex, Ascii & Raw data
    Base64, UUEncode
    Intel Hex & Motorola S-Records
    HTML
    C++, Assembler

Supported Platforms

Windows 2000, XP, Vista, 7

32bit & 64bit versions available

29 Jan 2012

Posted in Software
Screenshots
Powered by Drupal

-

2016년 7월 4일 월요일

맨홀뚜껑이 둥글지 않아도 되는 이유

맨홀 뚜껑이 원형이 아니어도 되는 이유
맨홀 뚜껑 둥글지 않아도 되는 이유
Reuleaux triangle, Reuleaux polygon
뢸로 삼각형, 뢸로 다각형
curve of constant width
정폭곡선, 정폭도형

http://zetawiki.com/wiki/%EB%A7%A8%ED%99%80%EB%9A%9C%EA%BB%91%EC%9D%B4_%EB%91%A5%EA%B8%80%EC%A7%80_%EC%95%8A%EC%95%84%EB%8F%84_%EB%90%98%EB%8A%94_%EC%9D%B4%EC%9C%A0

혈압 재는 좋은 시간

혈압 재는 좋은 시간.

나는의사다3 255회
24분 - 27분
아침에 일어나자마자 누운상태에서 재고,
저녁에 자려고 누워서 10분 정도에 다시 잰다.

2016년 6월 23일 목요일

facebook 에서 도움 요청된 문제....

1 + x + x^2 + x^3 + x^4 + x^5 + x^6
1 + x + x^2 + x^3 + x^4 + x^5 + x^6
1 + x + x^2 + x^3 + x^4 + x^5 + x^6
1 + x + x^2 + x^3 + x^4 + x^5 + x^6

1 + x + x^2 + x^3 + x^4 + x^5 + x^6
1 + x + x^2 + x^3 + x^4 + x^5 + x^6
1 + x + x^2 + x^3 + x^4 + x^5 + x^6
1 + x + x^2 + x^3 + x^4 + x^5 + x^6

1 + x + x^2 + x^3 + x^4 + x^5 + x^6
1 + x + x^2 + x^3 + x^4 + x^5 + x^6
1 + x + x^2 + x^3 + x^4 + x^5 + x^6
1 + x + x^2 + x^3 + x^4 + x^5 + x^6

출처:

1 + x + x^2 + x^3 + x^4 + x^5 + x^6
1 + x + x^2 + x^3 + x^4 + x^5 + x^6
1 + x + x^2 + x^3 + x^4 + x^5 + x^6
1 + x + x^2 + x^3 + x^4 + x^5 + x^6

1 + x + x^2 + x^3 + x^4 + x^5 + x^6
1 + x + x^2 + x^3 + x^4 + x^5 + x^6
1 + x + x^2 + x^3 + x^4 + x^5 + x^6
1 + x + x^2 + x^3 + x^4 + x^5 + x^6


16=
6+6+4+0 =
6+6+3+1 =
6+6+2+2 =

6+5+5+0 =
6+5+4+1 =
6+5+3+2 =

6+4+4+2 =
6+4+3+3 =

6+3+... 은 나머지 2개가 최대라고 해도 ...+3+3 일 수 밖에 없는데, 15라서, 16
도달할 수 없다. 그래서, 6+3+... 계열과 6+2+... 계열 등등인, 6+... 계열은 더 이상 없다.

5+5+5+1 =
5+5+4+2 =
5+5+3+3 =

5+4+4+3 =
4+4+4+4




2016년 6월 22일 수요일

2016년 6월 6일 월요일

heterosis 님 블로그 모음?

-

http://heterosis.egloos.com
http://heterosis.tistory.com

http://heterosis.net
http://heterosis.net/publications
http://heterosis.net/about

트위터를 그만둔 이유
https://youtu.be/w5wIiEhuoO4
-
-

2016년 6월 5일 일요일

쓸데없이 읽게 된 글들 내가 내 공부했던 것을 쓰고 싶은데, 도움?을 주는 것들..

-

https://madscientist.wordpress.com/2016/04/27/과학에-대한-글을-쓰고-싶은-과학자에게/

‘처음부터 다시 읽기’가 어려운 이유
http://ppss.kr/archives/77457?dable=10.1.4


--
애도되지 못하는 존재들
http://ppss.kr/archives/77941

국민일보에 있다는 유서를 복사해왔다.
--
다음은 A군이 남긴 유서 전문이다. 

제 유서를 퍼뜨려 주세요. 

**이 형이 딱 이맘때에 떠난 것 같아서 봤더니 아니나 다를까, 오늘이군요. 생명과학부 12 월 18 일엔 뭔가 있나 봅니다. 저도 형을 따라가려고요. 

힘들고 부끄러운 20 년이었습니다. 저를 힘들게 만든 건 이 사회고, 저를 부끄럽게 만든 건 제 자신입니다. 하지만 이제는 괜찮습니다. 더 이상 힘들고 부끄러운 일은 없습니다. 지금은 제 인생에서 가장 행복한 순간입니다. 

많은 이들이 이렇게 말했습니다. “남은 사람들을 위해서라도 죽으면 안 된다.” 엄마도 친구도 그러더군요. 하지만 이는 저더러 빨리 죽으라는 과격한 표현에 불과합니다. 저를 힘들게 만든 게 누구입니까. 이 사회, 그리고 이를 구성하는 ‘남은 사람들’입니다. 죽는 것조차 마음대로 못 하고, 나를 괴롭힌 그들을 위해서 죽지 못하다니요. 

또 죽는다는 것이 여러분이 생각하는 것만큼 비합리적인 일은 아닙니다. 이걸 주제로 쓴 글이 ‘글쓰기의 기초’ 수업에서 좋은 평가를 받았으니 제 유서에 써도 괜찮은 내용일 겁니다. 제가 아는 경우에 대해서, 자살은 삶의 고통이 죽음의 고통보다 클 때 일어납니다. 다분히 경제적인 사고의 소산입니다.

말이야 이렇게 했지만, 그렇다고 저를 너무 피도 눈물도 없는 사람으로 보지는 말아 주십시오. 20년이나 세상에 꺾이지 않고 살 수 있던 건 저와 제 주위 사람들에 대한 사랑 때문입니다. 아직 날갯짓 한 번 못 한 제가 아까워 잠실대교에서 발걸음을 돌렸고, 제가 떠나면 가슴 아파 할 동생과 친구들을 위해 옥상에서 내려온 게 수 차례입니다. 

하지만 지금은 너무 힘이 듭니다. 동시에 부끄럽기까지 합니다. 제 자신과 세상에 대한 분노가 너무 큰 고통으로 다가옵니다. 이만 꺾일 때도 됐습니다. 

무엇이 저를 이리 힘들게 했을까요 

제가 일생동안 추구했던 가치는 합리입니다. 저는 합리를 논리 연산의 결과라 생각합니다. 어느 행위가 합리적이라 판단하는 것은 여러 논리에서 합리적이라고 규정하는 것에 부합하기 때문입니다.
하지만 이 세상의 합리는 저의 합리와 너무나도 달랐습니다. 그렇다고 그걸 비합리라고 재단할 수 있는가 하면 또 아닙니다. 그것들도 엄밀히 논리의 소산입니다. 먼저 태어난 자, 가진 자, 힘 있는 자의 논리에 굴복하는 것이 이 사회의 합리입니다. 제 개인적으론 비합리라 여길 수 있어도 사회에서는 그 비합리가 모범답안입니다.

저와는 너무도 다른 이 세상에서 버티고 있을 이유가 없습니다. 

돌이켜보면 좋은 기억이 없는 건 아닙니다. 가장 행복했던 기억을 꼽으라면 둘이 있습니다. 하나는 작년 가을에 무작정 여권 하나 들고 홀로 일본을 갔다 온 일이고, 다른 하나는 이번에 제주도에서 돌아온 다음 날의 일입니다. 즐거운 여행을 끝내고 일상으로 돌아가는 건 보통 힘든 일입니다. 하지만 그날 들은 수업은 너무나도 흥미로웠습니다. 먼저 생물학 시간에 인간과 미생물의 상호관계를 배우고 너무나 감명 받았습니다. 인간과 미생물은 정말 넓은 분야에 깊게 상호작용 하고 있었습니다. 연달아 있는 서양사 수업에서는 베버의 '프로테스탄트 윤리와 자본주의 정신'을 배웠습니다. 유물론적 사관에 익숙한 저에겐 신선한 충격이었습니다.

수업을 마치고 8 동을 나오는 길에 든 생각이 잠자리까지 이어졌습니다. 베버는 '직업으로서의 학문'에서 학문을 하는 것은 정신적 귀족이 되는 것이라 표현했습니다. 그때만큼은 제가 그 정신적 귀족이 된 느낌이었습니다. 서로 수저 색깔을 논하는 이 세상에서 저는 독야청청 ‘금전두엽’을 가진 듯 했습니다.
하지만 저는 금전두엽을 가지지도 못했으며, 생존을 결정하는 것은 전두엽 색깔이 아닌 수저 색깔이군요.

맛있는 걸 먹고 싶습니다. 이 글을 쓰면서 목이 너무 말라 맥주를 찾았지만 필스너우르켈은 없고 기네스뿐이어서 관뒀습니다. 처갓집 양념치킨을 먹고 싶지만 먹으면 메탄올의 흡수 속도가 떨어질까 봐 먹지 못하겠네요.

혹시 제가 실패하더라도 저는 여러분을 볼 수 없을 겁니다. 눈을 잃게 되거든요. 오셔서 손이나 잡고 위로해 주십시오. 많이 힘들 겁니다. 

제가 성공한다면 억지로라도 기뻐해 주세요. 저는 그토록 바라던 걸 이뤘고 고통에서 해방됐습니다. 그리고 오셔서 부조 좀 해 주세요. 사랑하는 우리 동생 **이가 닭다리 하나나 더 뜯을 수 있게 해 주세요.

마지막으론 감사를 전해야겠습니다. 우울증은 상담치료와 약물치료로 완화됩니다. 상담치료로썬 환자의 말을 잘 들어주고 공감해 주는 것도 있지만 ‘실질적’인 위로를 주는 것이 중요합니다. 근거도 없는 ‘다 잘 될 거야’ 식의 위로는 오히려 독입니다. 여러분의 사랑하는 사람이 우울증으로 괴로워 할 때 저런 말은 절대 해서는 안 된다는 것을 기억해 주세요. 

실질적인 위안이 된 사람으로 둘이 기억나네요. 하나는 **누나입니다. “힘들 때 전화해, 우리 가까이 살잖아.” 이 한마디로 전 몇 개월을 버텼습니다. 전화를 한 적은 없지만, 전화를 할 사람이 있다는 것, 그것도 이렇게 멋진 사람이 날 위로해줄 수 있다는 것이 정말 힘이 됐습니다. 누나 정말 고마워. 미안해. 결국 전화를 하지 못했네... 

다른 하나는 ***입니다. ***도 정말 좋은 사람입니다. 질문 하나 할 때도 매번 안부 물어봐 주고 이것저것 챙겨다 주고 고마웠습니다. 또 제가 약대 준비할 땐 교재도 빌려 주고 결과 발표 일시도 상기시켜주는 등 물심양면으로 도와줬습니다. 약대 붙으면 맛있는 스시를 사기로 했는데, 결국엔 사지 못하게 됐네요. 고맙고 미안해... 행복하게 지내렴. 

출처=서울대생의 자살, 그리고 유서 전문/온라인 커뮤니티 캡처 
--

황우석 관련 소식?

나는 궁금했다.
팟캐스트 황우석 10년 취재기에 의하면, 진실은 황우석 박사가 매우 억울한데,
그에 대해 비난과 공격을 계속하는 사람들이 있기 때문이었다.
이 사람들 중에는 유명한 사람도 몇몇 있어 보였고, 황우석 비판의 내용이나
관점이 무엇인지 알고 싶었다.

제대로된 황우석 비판은 여기일 듯..
이제 찾아낸 곳이다.
내가 재미있게 들은 적이 있는 팟캐스트 방송 '과학하고 앉아 있네' 자매 시리즈인
'과학같은 소리하네'의 한 회에 나오셨던 김우재님의 글들이다.
https://medium.com/science-scientist-and-society-korean/황우석과-초파리-939c2aae514b#.qa395ef4c

이분이 위키에 기록을 정리했다고 하는데, 링크를 따라가 봤지만, 해당 페이지가 없어졌다! ( 여기가 위키피디아 의 한 페이지인데, 그냥 사고로 없어졌다고 하기엔 미심쩍다.)
한글 기록인 나무위키도 많이 변화가 생겼다. 위키피디아도 어딘가에 글이 남아 있을지?

아래가 아마도 개인적인 글들의 모음인듯... 글의 수가 매우 많다.
https://madscientist.wordpress.com/2014/03/05/stap-cell을-만드는-상세한-프로토콜/

http://heterosis.net

아래는 시골피디님의 블로그 글이다.
http://blog.hani.co.kr/nopd/20241

Creative Geneticist 

김우재님이 불쾌한 글이었다는 내용을 남긴 문제의 시골피디님의 글이다.
댓글에는 김우재님의 해명 댓글과 시골피디님의 답글도 있다.
http://blog.hani.co.kr/nopd/20205

시골피디님은 호칭을 문제 삼았지만,
어쨌든 원래 투고되었던 김우재님의 pressian 투고기사 내용 자체는 매우 비판적인 것이다.
http://www.pressian.com/news/article.html?no=95289

--
나무위키에 있는 글이 황우석 박사에게 비판적이면서도 쌍방이 내세우는 모든 사실을 다 적은 글들을 대표할 만하다고 생각된다.

현재 '나의 황우석 10년 취재기'에서 내세우는 음모론이
에 처음 여기에도 적히기 시작했다.

그 이후,
에서는 사라졌다가, 그 직후인 (r59)에 잘 정리된 모습으로 다시 적혔다.

에 내용이 보강되었다.

그런데, 그 한참 후에 [음모론] 부분이 통째로 삭제되었다.
이 글의 편집 역사에서 약 2명 정도가 편집에서 소송이라는 말을 사용하며 대결한 기록도 보였다. 서로 몇개의 글을 바꾸고, 다시 돌려놓고를 몇번 겪었다. 어떤 편집자는 사유가 적혀 있지 않은채로 차단되었다는 기록도 있었고, 서로 대결했던 편집자들은 아이디가 취소되었다는 기록이 나왔다.
나무위키의 편집이 이런 상황이라면, 위키피디아의 편집도 이런 비슷한 일이 있지 않았을지 생각된다.


2016년 06월 01일
제목: "황우석 귀환" 줄기세포 10년 회고록(육성강연:한중미 글로벌 바이오 허브)

http://www.sisa-news.com/news/article.html?no=104756

https://www.youtube.com/watch?v=koTcPZUQwXQ

==========
매머드 복제

2012년 YOUTUBE
https://www.youtube.com/watch?v=_rya6Jhzlzw&lc=z12wedw4foj3upnu5235zfzg3wqbfvkbs04


황우석 기여와 관련한 내용.
https://www.youtube.com/watch?v=xmlpSOHc5A4

_(구글:  TEDxDeExtinction )_
2015년
TED
https://www.ted.com/talks/hendrik_poinar_bring_back_the_woolly_mammoth?language=en

==

DeExtinction
x = independently organized TED event

https://www.ted.com/tedx/events/7650


_(구글 검색:  NGC mammoth clone project )_

2014년 영국 telegraph (한국인 과학자들에 의해 Woolly-매머드가 복제될 지도 모른다.)
http://www.telegraph.co.uk/news/earth/wildlife/11234151/Woolly-mammoth-could-be-cloned-by-South-Korean-scientists.html

2013년

http://www.livescience.com/27930-images-deextinction-species.html

10개의 관련 페이지가 나오고 _( NEXT )_ 를 클릭해서 _( 9 of 10 )_ 페이지에서
가장 관련이 있을 것 같은 내용을 발견했다.

National Geographic magazine covers de-extinction in its April 2013 issue. The National Geographic Society also hosted a forum on the subject, TEDxDeExtinction, in Washington, D.C., on March 15. - See more at: http://www.livescience.com/27930-images-deextinction-species.html#sthash.BrBztn9h.dpuf

여기에서 위의 2015년 검색어인 _( TEDxDeExtinction )_ 을 찾았다.

--
--
--
2016-0701 갱신..

뜻밖에 인기 팟캐스트 방송인 '이이제이'에 (황우석 사건과는 관련 없는) 다른 주제 때문에
황우석 사건을 결정적으로 제기한 경력이 있는 MBC 피디수첩의 그 당시 제작자(?)인
최PD께서 출연하셨는데, 여기에서 그저 소개정도로 약간 나온 황우석 사건 내용 때문에,
황우석 지지자들이 항의를 제기하자, 이작가는 이것이 싫었는지, 그 다음 방송에서
황우석 사건을 아주 많이 다뤘고, 여기에는 서울대학교 수의학과 교수인
우희종 박사가 나와서 결정적으로 황우석을 비판하는 견해를 밝히고, .. 그리하여 내가 듣게 되어서 이 관심을 가지게 된
시골피디의 팟캐스트 방송에서도 반박 방송을 하고,
(허, 참나...) 서로 관련이 없는(?) 두 방송이 서로 얽히게 되었다.
그런데, 우희종 박사의 이름이 웬지 낯이 익은 듯하여 예전의 페이스북을 뒤져보니,
내가 시골피디의 방송을 처음 듣게 된 직후,
페이스북에서
"서울대 수의과대학 교수의 퀀텀에너지 논문 하하하" 라는 비판 내용인
웬 이상한 퀀텀 에너지를 이용한 사이비라는 인상을 풍기는 섬유 개발과
상용화 기사에 등장한 것이, 바로 여기(최근 이이제이 방송(2016년7월1일 현재) )에서
황우석 박사를 비판한 우종천 박사이다. 이분도 서울대 수의학과라는 공통점(?) 때문에,
특히 물리학과 학생들에게 사이비같은 인상을 진하게 느끼게 만드는 '퀀텀에너지' 관련 기사
에서 같이 엮여서 똑같은 사기꾼 취급을 받을 뻔했는데, 시골피디의 방송을 들은 사람이
말렸고, 잠잠해진 글타래에 얽혀있다.
https://www.facebook.com/groups/ko.physics/permalink/1030931536994313/
이 무슨 악연(아니면 인연)일까?

더우기 _(구글검색
우희종, 양명기석과 양자에너지 조절 조치와 Quantum Energy 융합섬유가 미치는 면역적 기능분석 보고
)_ 에서 나오는 내용에 의하면, 정말로 이 논문이 발표가 된 것처럼 보도된 기사가
몇개 뽑혀 나온다. 그러나, 그 기사에 같이 붙어 나오는 사진은 무척 어설퍼 보인다. 발표가 된 장소도 특정 기업의 구내에서 였던 것으로 보인다. 그다지 제대로 된 발표가 아닌 것으로 보인다. 그 발표에는 계속 그 사장이라는 사람이 반복적으로 나오는 듯하다. 그 사장이라는 사람이 어떤 사람인지, 기사를 썼던 기자는 어떤 의도(?) 또는 경위로 기사를 쓰게 된 것인지 궁금하다.

-------
16년 10월 20일
황우석에게 많이 미련이 남은 것 같다.
팟캐스트를 듣고 있는데, 계속 궁금하다. 오늘은 
시골피디 저널리즘 블로그를 찾아 봤다.
http://blog.daum.net/pd-diary
http://blog.hani.co.kr/nopd/
나무위키 - 황빠

http://rock1209.tistory.com/1631
http://www.goodfunding.net/gf/project_view&prj_code=15020020

-
-

2016년 6월 1일 수요일

Rebar Control: Nancy Cluts (October1996, updated June25, 1997)


출처:
https://msdn.microsoft.com/en-us/library/ms997549.aspx

The Rebar Control: Using a Coolbar in Your Application

  Nancy Winnick Cluts
Microsoft Corporation
October 1996
Updated June 25, 1997

Contents

What Is a Coolbar?
Creating a Coolbar
Messages and Notifications
Summary

Abstract

One of the controls created for Internet Explorer 3.0 is the Rebar control. It is most commonly known, however, as the coolbar. A coolbar contains child windows such as toolbars, combo boxes, and bitmaps, and manages the size and position of the child windows it contains. Once you create the child windows and assign them to the coolbar, the child windows are displayed in it. This article demonstrates how to create and use a coolbar. The sample that accompanies this article, creatively named "Rebar," was written using Microsoft® Visual C++® version 4.2, the Win32® Software Development Kit (SDK), and the ActiveX™ SDK for Internet Explorer 3.x. If you are going to use the coolbar in an application targeted to Internet Explorer 4.0, use the Internet Client SDK (INet SDK) instead of the ActiveX SDK.

What Is a Coolbar?

If you use Internet Explorer 3.0, you've seen the coolbar at the top of the screen, and probably thought that it was just a funky toolbar. Take a look:
ms997549.rebar1(en-us,MSDN.10).gif
Figure 1. The Coolbar for Internet Explorer 3.0
Figure 1 shows a coolbar containing several child windows: a toolbar, a list of Internet links, a drop-down combo box listing the URL history, and an animation control. Note that the toolbar control is transparent to the background bitmap of the coolbar. This works because the toolbar and the coolbar both speak the same "transparency" language. Currently, the toolbar is the only control that supports this type of transparency.
In order to create a coolbar like the one in Figure 1, you need to:
  1. Create the coolbar.
  2. Create your child windows.
  3. Insert each child window into the coolbar.
Each area that contains a child window is referred to as a band. Coolbars can contain one or more bands. Each band can have any combination of the following: a gripper bar, a bitmap, a text label, and a child window. However, each band cannot contain more than one of these items. For example, you cannot have two grippers or two child windows within one band.
All bands, except those that have the RBBS_FIXEDSIZE style, can be resized via the gripper bar. You can also single-click the gripper bar to minimize or maximize the band. The coolbar manages the size and position of the child window assigned to that band.

Creating a Coolbar

Creating a coolbar is similar to creating any other type of common control: You initialize the common control library and use the CreateWindowEx function.

Using InitCommonControlsEx

The first thing your application must do is register the coolbar window class via the InitCommonControlsEx function. This function is different from InitCommonControls (which took no parameters) in that it is passed a structure, INITCOMMONCONTROLSEX, that describes what you want initialized. You need to fill in the dwSize member of this structure to successfully initialize the common control classes. This member allows the system to determine which version of the common controls you are using. INITCOMMONCONTROLSEX also contains the dwICC member, which specifies the common control you would like initialized. This member can be any combination of the following:
Table 1. Common Control Class Constants
Value Meaning
ICC_ANIMATE_CLASS Load animate control class.
ICC_BAR_CLASSES Load toolbar, status bar, track bar, and tooltips control classes.
ICC_COOL_CLASSES Load the coolbar class.
ICC_DATE_CLASSES Load date and time picker control class.
ICC_HOTKEY_CLASS Load hot-key control class.
ICC_LISTVIEW_CLASSES Load list view and header control classes.
ICC_PROGRESS_CLASS Load progress bar control class.
ICC_TAB_CLASSES Load tab and tooltips control classes.
ICC_TREEVIEW_CLASSES Load tree view and tooltips control classes.
ICC_UPDOWN_CLASS Load up-down control class.
ICC_USEREX_CLASSES Load ComboBoxEx class.
ICC_WIN95_CLASSES Load the animate control, header, hot-key, list view, progress bar, status bar, tab, tooltips, toolbar, track bar, tree view, and up-down control classes.
The code to initialize the common control class for a coolbar is as follows:
INITCOMMONCONTROLSEX icex;

icex.dwSize = sizeof(INITCOMMONCONTROLSEX);

// Load the coolbar. 
icex.dwICC = ICC_COOL_CLASSES;   

InitCommonControlsEx(&icex);

Setting Up the Coolbar

Once the class has been registered, the application calls CreateWindowEx, specifying REBARCLASSNAME as the class name to create the coolbar (remember, the "real" name of the coolbar is Rebar). If you are going to add an image list to your coolbar, your application must send the RB_SETBARINFO message. This message passes a pointer to a structure, REBARINFO, in its lParam. The structure information below is based on information in the ActiveX SDK:
typedef struct tagREBARINFO{
   UINT        cbSize;
   UINT        fMask;
   HIMAGELIST  himl;
} REBARINFO, FAR *LPREBARINFO;

where:
  • cbSize — The size of this structure, in bytes. Your application must fill this member before sending any messages that use a pointer to this structure as a parameter. Use sizeof(REBARINFO) to fill in this member.
  • fMask — Flag value that describes the structure members that are valid and the characteristics of the coolbar. Currently, there is only one valid mask value, RBIM_IMAGELIST, which specifies that the himl member is valid in the REBARINFO structure.
  • himl — Handle to an image list. The coolbar will use the specified image list to obtain images. If you create a coolbar that will contain static images, you can use the image list functions to manage those images.

Coolbar styles

Special styles are associated with coolbar windows. These are listed in Table 2. Specify these styles in the same way that you specify other window styles in your call to CreateWindowEx.
Table 2. The REBARINFO Styles
ValueMeaning
RBS_TOOLTIPSTooltips are supported. This style allows you to use the same tooltip in all of the inner bands. There is no hot region in the coolbar that will otherwise cause the tooltip created by this style bit to be shown.
RBS_VARHEIGHTThe coolbar displays bands at the minimum required height when possible. Without this style, the coolbar displays all bands at the same height. The control uses the height of the tallest visible band to determine the height of other bands.
RBS_BANDBORDERS A border is placed around each band in the coolbar.
RBS_FIXEDORDERThis style prevents the user from reordering the coolbar bands.
Like the INITCOMMONCONTROLSEX structure, the REBARINFO structure also contains a sizing member, cbSize, that your application must fill in before sending a message that uses the structure. The code below does the following:
  1. Creates an image list to associate with the coolbar and adds an image to it.
  2. Creates a coolbar that supports variable band height and has a background bitmap associated with it.
  3. Associates the image list with the coolbar.
    // Create the image list.
    hIml = ImageList_Create (
       MIN_COMBOCX, // width
       MIN_COMBOCY, // height 
       0,              // creation flags
       NUM_LINKS + 1,           // number of images
       0);             // amount this list can grow
    
    // Load the bitmap and add it to the image list.
    hBmp = LoadBitmap (hInst, MAKEINTRESOURCE (IDB_SMEAR));
    idxFirstImage = ImageList_Add (hIml,  // handle to image list
       hBmp,        // handle of bitmap to add
       NULL);       // handle of bitmap mask
    
    // Create the COOLBAR control.
    hWndRebar = CreateWindowEx( 
       0L,
       REBARCLASSNAME,
       NULL,
       WS_VISIBLE | WS_BORDER | WS_CHILD | WS_CLIPCHILDREN |
          WS_CLIPSIBLINGS | CCS_NODIVIDER | CCS_NOPARENTALIGN |
          RBS_VARHEIGHT | RBS_BANDBORDERS,
          0, 0, 400, 275,
       hWndParent,
       (HMENU)ID_REBAR,
       hInst,
       NULL );
    
    if (!hWndRebar)
       return 0;
    
    // Set the image list for the coolbar.
    rbi.cbSize = sizeof(rbi);
    rbi.fMask = RBIM_IMAGELIST;
    rbi.himl = hIml;
    SendMessage(hWndRebar, RB_SETBARINFO, 0L, (LPARAM)&rbi);
    
    

Using an Extended Combo Box

Now that the coolbar has been created, we'd like to add some bands to it. Within each band, there will be one child control. In our example, we have two bands: one containing an extended drop-down combo box and the other containing a transparent toolbar. Let's first talk about the extended combo box that I decided to add.
Combo boxes have been extended to support images and indentation. In the Rebar sample, I include an image for each item in my drop-down list of links to the Internet. You create an extended combo box by specifying "ComboBoxEx32" (in versions of Internet Explorer later than 3.x, use WC_COMBOEX) as the class in your call to CreateWindowEx. To use an image list, send the CBEM_SETIMAGELIST message with the handle to the image list after creating the combo box. Inserting items into the combo box is easy; you simply send the CBEM_INSERTITEM message with a pointer to a COMBOBOXEXITEM. This structure contains a field, fMask, that specifies which items in the structure are valid. Valid masks specify characteristics such as indented (CBEIF_INDENT), textual (CBEIF_TEXT), image (CBEIF_IMAGE), and extra data (CBEIF_LPARAM). Setting the iItem member of this structure to –1 indicates that you want the item inserted at the end of the list.
// Global array of cool links.
COOLLINKS rgLinks[] = 
{
   {TEXT("Microsoft"),TEXT("http://www.microsoft.com/default.htm"), 
      IDB_MSFT},
   {TEXT("Microsoft Developer Network Online"), TEXT("http://www.microsoft.com/msdn/default.htm"), 
      IDB_FDO},
   {TEXT("Site Builder"), TEXT("http://www.microsoft.com/workshop/default.htm"), 
      IDB_SB},
   {TEXT("Win32 Development"),TEXT("http://www.microsoft.com/win32dev/default.htm"), 
      IDB_WIN32},
   {TEXT("Interactive Media"), TEXT("http://www.microsoft.com/imedia/default.htm"), 
      IDB_IM},
   {TEXT("Microsoft Developer Network"),TEXT("http://www.microsoft.com/msdn/default.htm"), 
      IDB_MSDN},
   {TEXT("Internet Explorer"),TEXT("http://www.microsoft.com/ie30/default.htm"), 
      IDB_IE}
};

int idx, idxImage;
REBARBANDINFO rbBand;
COMBOBOXEXITEM cbI;
HBITMAP  hBmp;

// Create the combo box.
hWndCombo = CreateWindowEx ( 
   0,                                   // extended styles
   "ComboBoxEx32",                      // extended combo box – will 
   TEXT(""),                            // default text
   WS_VISIBLE | WS_CHILD | WS_TABSTOP |
      WS_VSCROLL | WS_CLIPCHILDREN | WS_CLIPSIBLINGS | CCS_NORESIZE |
      CBS_AUTOHSCROLL | CBS_DROPDOWNLIST,
   0,0,                                 // x, y
   MIN_COMBOCX,                         // width
   MIN_COMBOCY * NUM_LINKS,             // height
   hWndParent,                          // parent window
   (HMENU)ID_COMBO,                     // ID
   hInst,                               // current instance
   NULL );                              // no class data

if (hWndCombo == NULL)
   return 0;

// Set the image list for the combo box.
SendMessage( hWndCombo, CBEM_SETIMAGELIST, 0L, (LPARAM)hIml);

// Add strings to the combo box.    
for (idx=0; idx < NUM_LINKS; idx++)
{
   // Load the bitmap and add it to the image list.
   hBmp = LoadBitmap (hInst, MAKEINTRESOURCE (rgLinks[idx].iBmp));
   idxImage = ImageList_Add (hIml,  // handle to image list
      hBmp,        // handle of bitmap to add
      NULL);       // handle of bitmap mask

   rgLinks[idx].idx = idxImage;

   // Each item has text, an lParam with extra data, and an image.
   cbI.mask = CBEIF_TEXT | CBEIF_LPARAM | CBEIF_IMAGE;    
   cbI.pszText = rgLinks[idx].szName;         // Name of the link.
   cbI.cchTextMax = sizeof(rgLinks[idx].szName) /
                    sizeof(rgLinks[idx].szName[0]);    
   cbI.lParam = (LPARAM)rgLinks[idx].szURL;   // Pass the URL as extra data.
   cbI.iItem = -1;          // Add the item to the end of the list.
   cbI.iImage = idxImage;   // Image to display.

   // Add the item to the combo box drop-down list.
   SendMessage(hWndCombo, CBEM_INSERTITEM, 0L,(LPARAM)&cbI);
}

Adding Bands to the Coolbar

Once you create the child windows, your application must fill in a structure called the REBARBANDINFO that describes the characteristics of each band you want to insert. As before, the structure information below is based on information in the ActiveX SDK.
typedef struct tagREBARBANDINFO
{
    UINT        cbSize;
    UINT        fMask;
    UINT        fStyle;
    COLORREF    clrFore;
    COLORREF    clrBack;
    LPSTR       lpText;
    UINT        cch;
    int         iImage;
    HWND        hwndChild;
    UINT        cxMinChild;
    UINT        cyMinChild;
    UINT        cx;
    HBITMAP     hbmBack;
    UINT        wID;
}   REBARBANDINFO, FAR *LPREBARBANDINFO;

where:
  • cbSize — The size of this structure, in bytes. Your application must fill in this member before sending any messages that use a pointer to this structure as a parameter.
  • fMask — Flags that indicate which members of this structure are valid or must be filled. This value can be a combination of the following:
    ValueMeaning
    RBBIM_STYLE The fStylemember is valid.
    RBBIM_COLORS The clrFore and clrBack members are valid.
    RBBIM_TEXT The lpText member is valid.
    RBBIM_IMAGE The iImage member is valid.
    RBBIM_CHILD The hwndChild member is valid.
    RBBIM_CHILDSIZE The cxMinChild and cyMinChild members are valid.
    RBBIM_SIZE The cx member is valid.
    RBBIM_BACKGROUNDThe hbmBack member is valid.
    RBBIM_IDThe wID member is valid.
  • fStyle — Flags that specify the band style. This value can be a combination of the following:
    ValueMeaning
    RBBS_BREAK The band will be on a new line. Use this style if you plan to have more than one line of controls in your coolbar. This style is used by Internet Explorer 3.0.
    RBBS_FIXEDSIZE The band can't be sized. If you use this style, the sizing grip will not be displayed on the band.
    RBBS_CHILDEDGE An edge will appear around the top and bottom of the child window.
    RBBS_HIDDEN The band will not be visible.
    RBBS_NOVERT The band will not be displayed when the Coolbar control is vertical.
    RBBS_FIXEDBMPThe bitmap will not move when the band is resized.
  • clrFore — The band's foreground color, used to draw text.
  • clrBack — The band's background color.
  • lpText — Address of a buffer that contains the display text for the band. If band information is being requested from the control, this member must be initialized to the address of the buffer that will receive the text.
  • cch — Size of the buffer at lpText, in bytes. If information is not being requested from the control, this member is ignored.
  • iImage — Zero-based index of the image that should be displayed in the band, if any. The image list is set using the RB_SETBARINFO message.
  • hwndChild — Handle of the child window contained in the band, if any.
  • cxMinChild — The minimum horizontal size of the child window, in pixels. The band cannot be sized smaller than this value.
  • cyMinChild — The minimum vertical size of the child window, in pixels. The band cannot be sized smaller than this value.
  • cx — The horizontal size of the band, in pixels.
  • hbmBack — The handle to the background bitmap.
  • wID — The ID of the band.
After filling in the REBARBANDINFO structure, an application sends the RB_INSERTBAND message to add the band to the coolbar, specifying the pointer to the REBARBANDINFO structure in the lParam and the zero-based index where the band is to be inserted in the wParam. If you want to add the band to the end of the bar, specify –1 in the wParam. If you have already added a band and want to change the characteristics of the band later (for example, you would like to change the text), use the RB_SETBANDINFO message. Similarly, if you want to retrieve information about a band, use the RB_GETBANDINFO message.
The code below sets the information in the REBARBANDINFO structure and inserts the window into the band via the RB_INSERTBAND message. This band contains an image, idxFirstImage, specified by the iImage member.
// Initialize REBARBANDINFO.
rbBand.cbSize = sizeof(REBARBANDINFO);
rbBand.fMask = RBBIM_COLORS |     // clrFore and clrBack are valid
   RBBIM_CHILD |                  // hwndChild is valid
   RBBIM_CHILDSIZE |              // cxMinChild and cyMinChild are valid
   RBBIM_STYLE |                  // fStyle is valid
   RBBIM_ID |                     // wID is valid
   RBBIM_TEXT |                   // lpText is valid
   RBBIM_IMAGE |                  // iImage is valid
   RBBIM_BACKGROUND;              // hbmBack is valid
rbBand.clrFore = GetSysColor(COLOR_BTNTEXT);
rbBand.clrBack = GetSysColor(COLOR_BTNFACE);
rbBand.fStyle = RBBS_NOVERT |     // Do not display in vertical orientation.
   RBBS_CHILDEDGE |
   RBBS_FIXEDBMP;
rbBand.hbmBack = LoadBitmap(hInst, MAKEINTRESOURCE(IDB_BACK));
rbBand.lpText = TEXT("Cool sites:");
rbBand.hwndChild = hWndCombo;
rbBand.cxMinChild = MIN_COMBOCX;
rbBand.cyMinChild = MIN_CY;
rbBand.iImage = idxFirstImage;

// Add the combo box band to the end.
SendMessage(hWndRebar, RB_INSERTBAND, (WPARAM)-1, (LPARAM)&rbBand);

I added the toolbar next to the coolbar. Being artistically challenged, I simply took the standard file buttons and resized them larger for the toolbar. The toolbar supports tooltips and appears "flat" (rather than having raised buttons). An important style to include is the CCS_NORESIZE style, which prevents the toolbar from being resized to the default width and height during creation. Instead, the toolbar uses the width and height specified in the call to CreateWindowEx. If you don't use this style, the toolbar will be automatically resized to the width of the client window and possibly overdraw your other bands.
HWND CreateTheToolBar (HWND hWndParent)
{
   REBARBANDINFO rbBand;

   hWndToolBar = CreateToolbarEx(hWndParent,
        WS_CHILD | TBSTYLE_FLAT | TBSTYLE_TOOLTIPS | WS_CLIPCHILDREN |
           WS_CLIPSIBLINGS | CCS_NODIVIDER | CCS_NORESIZE | WS_VISIBLE,
        ID_TOOLBAR, 
      NUM_TBBITMAPS, 
      (HINSTANCE)hInst, 
      IDB_TOOLBAR, 
        (LPCTBBUTTON)&tbButtons,
        NUM_TBBUTTONS,
      BMP_CX,BMP_CY,                  // width & height of buttons
      BMP_CX,BMP_CY,                  // width & height of bitmaps
      sizeof(TBBUTTON));

   if (hWndToolBar == NULL )
   {
      MessageBox (NULL, TEXT("Toolbar not created!"), NULL, MB_OK );
      return (HWND)NULL;
   }

   // Initialize REBARBANDINFO for all coolbar bands.
   rbBand.cbSize = sizeof(REBARBANDINFO);
   rbBand.fMask = RBBIM_COLORS |  // clrFore and clrBack are valid
      RBBIM_CHILD |                     // hwndChild is valid
      RBBIM_CHILDSIZE |                 // cxMinChild and cyMinChild are valid
      RBBIM_STYLE |                     // fStyle is valid
      RBBIM_ID |                              // wID is valid
      RBBIM_BACKGROUND;                 // hbmBack is valid
   rbBand.clrFore = GetSysColor(COLOR_BTNTEXT);
   rbBand.clrBack = GetSysColor(COLOR_BTNFACE);
   rbBand.fStyle = RBBS_NOVERT |  // Do not display in vertical orientation.
      RBBS_CHILDEDGE |
      RBBS_FIXEDBMP;
   rbBand.hbmBack = LoadBitmap(hInst, MAKEINTRESOURCE(IDB_BACK));
   rbBand.hwndChild = hWndToolBar;
   rbBand.wID = ID_TOOLBAR;
   rbBand.cxMinChild = MIN_TBCX;
   rbBand.cyMinChild = MIN_CY;

   // Insert band into coolbar.
   SendMessage(hWndRebar, RB_INSERTBAND, (UINT) -1, 
       (LPARAM)(LPREBARBANDINFO)&rbBand);

   return (hWndToolBar);
}

To support tooltips in your toolbar, remember to provide the tooltip text when the text is needed. This comes in the form of a WM_NOTIFY message and TTN_NEEDTEXT notification:
case WM_NOTIFY:
   switch (((LPNMHDR)lParam)->code) 
   {
      case TTN_NEEDTEXT:
      {
         LPTOOLTIPTEXT lpToolTipText;
         // warning: static buffer not threadsafe
         static char szBuf[MAX_PATH];

         // Display the tooltip text.
         lpToolTipText = (LPTOOLTIPTEXT)lParam;
         LoadString (hInst, 
            lpToolTipText->hdr.idFrom,   // string ID == cmd ID
            szBuf,
            sizeof (szBuf) / sizeof (szBuf[0]));
            lpToolTipText->lpszText = szBuf;
         break;
      }
   }
   break;

If you build and run the sample, you will see my coolbar replete with background bitmap, combo box images, and toolbar.
ms997549.rebar2(en-us,MSDN.10).gif
Figure 2. The Rebar sample main window

Getting Information About a Band

An item in the Options menu in the Rebar sample gives you the ability to get information about the first band in the coolbar. This information is retrieved via the RB_GETBANDCOUNT, RB_GETROWCOUNT, and RB_GETROWHEIGHT messages and is displayed in a dialog box.
BOOL APIENTRY BarInfo(
   HWND hDlg,
   UINT message,
   UINT wParam,
   LONG lParam)
{
   static UINT uHeight, uRowCount, uBandCount;
   static REBARINFO rbi;

   switch (message)
   {
      case WM_INITDIALOG:
         // Get the number of bands.
         uBandCount = SendMessage(hWndRebar, RB_GETBANDCOUNT, 0, 0);
         SetDlgItemInt(hDlg, IDC_NUMBANDS, uBandCount, FALSE);
         // Get the number of rows.
         uRowCount = SendMessage(hWndRebar, RB_GETROWCOUNT, 0, 0);
         SetDlgItemInt(hDlg, IDC_NUMROWS, uRowCount, FALSE);
         // Get the row height for the first row.
         uHeight = SendMessage(hWndRebar, RB_GETROWHEIGHT, 0, 0);
         SetDlgItemInt(hDlg, IDC_ROWHEIGHT, uHeight, FALSE);
         return (TRUE);

      case WM_COMMAND:              
         if (LOWORD(wParam) == IDOK)
         {
            EndDialog(hDlg, TRUE);
            return (TRUE);
         }
         break;
   }
   return (FALSE);   
}

Cleaning Up

Once your application is ready to exit, you must be sure to destroy your coolbar along with any of the child windows that you may have created and inserted into the coolbar. You also must destroy any image lists that you may have created. I know that this probably sounds rudimentary to many of you, but I'm a mom, so I am accustomed to reminding others to clean up after themselves.
case WM_DESTROY:                  
   if (hWndRebar) 
      DestroyWindow(hWndRebar);

   if (hWndToolBar)
      DestroyWindow(hWndToolBar);

   if (hWndCombo)
   {
      ImageList_Destroy(hIml);                     
      DestroyWindow(hWndCombo);
   }

   PostQuitMessage(0);
   break;

Linking to the Internet

If you build and run the Rebar sample I've provided, you will notice that the items in the combo box are links to the World Wide Web. If you click one of the items in the list, your Internet browser (we hope that it will be Internet Explorer) will be invoked with the URL of the link chosen. I handle this in the window procedure for the combo box in the event of a CBN_SELCHANGE notification—it's simply a matter of calling ShellExecute. The system will look for the browser you have associated with .HTM files and run that browser.
LRESULT CALLBACK ComboWndProc( HWND hWnd, UINT uMessage, 
         WPARAM wParam, LPARAM lParam)
{
   int iSelect;

   if ((uMessage == WM_COMMAND) && (HIWORD(wParam)==CBN_SELCHANGE))
   {
      // Get the currently selected item.
       iSelect = SendMessage(hWndCombo, CB_GETCURSEL, 0, 0);

      ShellExecute( NULL, TEXT("open"), rgLinks[iSelect].szURL,
         NULL, NULL, SW_SHOWNORMAL );
   }

   return (CallWindowProc(lpfnDefCombo, hWnd, uMessage, wParam, lParam));
}

Messages and Notifications

This section lists the messages and notifications supported by coolbar controls, based on information in the ActiveX SDK for Internet Explorer 3.x.

Coolbar Control Messages

Table 3 lists the messages that can be sent to coolbar controls.
Note   Whenever you pass the address of a REBARINFO or REBARBANDINFO structure in one of the messages in the table above, you must first set the cbSize member of this structure using the sizeof function; otherwise, the call will fail.
Table 3. Coolbar Control Messages
MessageDescriptionwParamlParamReturns
RB_DELETEBANDRemoves a band from the coolbar.UINT – the zero-based index of the band to delete0 (not used)0 if successful; non-zero otherwise
RB_GETBANDCOUNTReturns the number of bands in the coolbar.0 (not used)0 (not used)UINT – Number of bands in the coolbar
RB_GETBANDINFORetrieves information on the specified band.UINT – the band to checkLPREBARBANDINFO – pointer to a structure containing band information0 if successful; non-zero otherwise
RB_GETBARINFORetrieves information about the coolbar control and the image list that it may use.0 (not used)LPREBARINFO – pointer to a structure containing coolbar information0 if successful; non-zero otherwise
RB_GETROWCOUNTRetrieves the number of rows in the coolbar.0 (not used)0 (not used)UINT – the number of rows
RB_GETROWHEIGHTReturns the height of the specified row in the coolbar.UINT – the zero-based row to check0 (not used)UINT – the height, in pixels, of the row
RB_INSERTBANDInserts a band into a coolbar.UINT – the zero-based index of the place to insert the band; –1 signifies that the band will be added to the endLPREBARINFO - pointer to a structure containing information about the band0 if successful; non-zero otherwise
RB_SETBANDINFOSets the information about an existing band in the coolbar.UINT – the zero-based index to the bandLPREBARBANDIFO – pointer to a structure containing new information about the band0 if successful; non-zero otherwise
RB_SETBARINFOSets information about the coolbar.0LPREBARINFO – pointer to a structure containing new coolbar information0 if successful; non-zero otherwise
RB_SETPARENTSets the window that will receive coolbar notification messages. Note that this message does not actually set the parent of the coolbar control. When you call GetParent, you will still get the handle to the original parent window that was specified when the coolbar control was created.HWND – handle to the new parent window0HWND – handle to the previous parent window; NULL if there is no previous parent

Coolbar Notification Messages

Coolbars have one notification message that is unique to them: RBN_HEIGHTCHANGE. This notification is sent to the coolbar when the height of the coolbar has changed (in the form of a WM_NOTIFY message). The lParam associated with this notification contains the address of an NMHDR structure.

Summary

Now you, too, can have that funky-looking bar at the top of your application! Just follow my instructions and you shouldn't have any problems. Go ahead: Cut and paste the code, if you want. That's why I write this stuff.

2016년 5월 27일 금요일

ini file 위치 ... XP, Vista, 7, 등등...

오래된 MFC 샘플에서 훨씬 더 오래 전에 만들어진 것으로 보이는 샘플이
있었고, 거기에는
SetRegistryKey(_T("Local AppWizard-Generated Applications"));
호출이 없는 샘플이 있었다.
이것이 분명히 어디엔가 설정을 저장할텐데, 도무지 그 ini 파일의 위치를
찾을 수 없었다.
_(구글 검색:   where the ini file in Windows )_ 를 했고,
몇 줄 아래에 답을 찾을 수 있었다.
아래의 곳이 그곳인데, 원래의 내용이 없어질 것에 대비해서 복사를 해 놓았다.
내 샘플의 위치는 약간 다른데, ...
...\VirtualStore\Program Files\... 이 아니라
...\VirtualStore\Windows\... 에 있었다.
아래의 사이트를 살펴 보면, 일반적인 위치라기 보다는 그 회사의 제품인
SpringConnect 라는 제품의 ini 파일 위치를 알려 준 것이라고 생각된다.

정작 MS의 도움말에는 아무리 뒤져봐도 안나왔다. 이래서, 나는
MS에 감정이 좋지 않다. 이런 비슷한 일을 흔히 겪었다. 어쩔 수 없이 사용한다는...
벗어날 실력도 없고..
정리하면,
XP에서는.. C:\Program Files\    에 있을 가능성이 있고,
Vista 에서와 Windows7 에서는..
C:\Users\__사용자_이름__\AppData\Local\VirtualStore
내부에서, 
\Program Files\  또는
\Program Files (x86)\  또는 
\Windows\
폴더 내부에 찾아보면 나올 가능성이 높다.
내 경우에는 \Windows\ 폴더에 들어 있었다.

ini 
출처:
https://support.springahead.com/customer/portal/articles/71462-how-do-i-find-my-ini-file-

==
인용:

How do I find my .ini file?

Problem

You need to locate your .ini file (alternatively called a Configuration File) to either copy your settings or modify them.

Solution

Your .ini file can commonly be found in these places:

  • Windows XP: C:\Program Files\SpringConnect.ini
  • Windows Vista: C:\Users\__사용자_이름__\AppData\Local\VirtualStore\Program Files\SpringConnect\SpringConnect.ini (__사용자_이름__은 Vista의 로그인 이름이다. USERNAME is your Vista login name)
    (Note: Make sure that you have 'Show hidden files' enabled within your Control Panel)
  • Windows 7: C:\Users\USERNAME\AppData\Local\VirtualStore\Program Files\SpringConnect\SpringConnect.ini (USERNAME 은 Windows7의 사용자 로그인 이름이다. USERNAME is your Windows 7 login name)
    (Note: Make sure that you have 'Show hidden files' enabled within your Control Panel)

If your .ini file is not in any of these locations, it may be located on your company’s network, most likely on the drive where your accounting software is located. Here's how to check the location:

  • First, find SpringConnect's shortcut that Windows creates in the Start bar. It will either appear in your frequently used programs list, or you search for it in the Search Program Files and Folders box. Once located, Right-Click on the icon and select Properties.
  • The location of your .ini file will be in the Start In box.

Now you know where your .ini file is located!
==



2016년 5월 3일 화요일

내 북마크-FreeCAD

_(google:  freeCAD )_ 검색
http://www.freecadweb.org

범용 CAD 3차원. 자유 소프트웨어.

_

2016년 3월 28일 월요일

수학 소프트웨어 (mathematica, CaR 등등..)관련 오늘 아침에 헤맨 곳.

수학 소프트웨어 (mathematica, CaR  등등..)관련 오늘 아침에 헤맨 곳.

Contribute to the World of Mathematics
http://mathworld.wolfram.com/contact/contribute.html

Aleph-0 -- from Wolfram MathWorld
http://mathworld.wolfram.com/Aleph-0.html

Math Games:Vector vs. Raster
http://www.mathpuzzle.com/MAA/40-Vector%20vs%20Raster/mathgames_08_01_05.html

Page not found | Mathematical Association of America
http://www.maa.org/editorial/mathgames/mathgames_08_01_05.html
Mathworld에서는 여기를 가리켰는데, 페이지 없다고 나와서 다시 google해서 위를 찾았고, 전부터 이름을 들었던 CaR(Compass and Ruler) 이야기를 봤고, 찾아봤는데, 전부터 알던 Euler_Math_Toolbox 프로그램(기본적으로 행렬 계산을 하던 것이었고, 오랜 역사를 가진 Macsyma를 이어받은 Maxima와 결합해서 Mathematica와 비슷하게 기호연산도 수행하게 된 자유 소프트웨어)를 만들었던 같은 수학자(교수님)이 만든 것이라는 것도 알게 되었다.

Euler Math Toolbox 써 보자 멋지다.

이 수학자님의 홈페이지이다.
René GrothmannHomepage
compass and ruler - Google Search
https://www.google.co.kr/search?client=opera&q=compass+and+ruler&sourceid=opera&ie=UTF-8&oe=UTF-8

C.a.R. - Download
http://car.rene-grothmann.de/doc_en/download.html

HotEqn - Equation Viewer
http://vclab.atp.rub.de/software/HotEqn/HotEqn.html
이곳은 없어졌다. 하지만, 기록 보존의 이유로 남겨둔다. 대신, _( 구글 검색: hoteqn repository )_ 을 통해서 아래의 위치에 소스코드 패키지로 보이는 것을 찾을 수 있었다.

https://src.fedoraproject.org/repo/pkgs/HotEqn/HotEqnSrc.zip/

---

web 에서 수학식 표현하기

 https://codepractice.tistory.com/126

-

MathJax

https://www.mathjax.org/

구글로 검색해 보면 이것에 대한 정보/소개가 많이 있는 편이다. 특히 github에서 수식을 표현할 수 있다는 언급이 있다.

-

KaTeX

https://katex.org/

이것도, MathJax와 거의 동일한 용도로,  많이 쓰이는 것으로 보인다. 역시 구글로 검색해 보면 정보/소개가 많이 있는 편이다.

-

--

-
-