번역, 서브 버전과 최초의 통찰력
장마 날씨 참 끝내 주죠, 이번 주말 도서 "서브 버전으로 버전 관리"의 다음과 같은 번역을했다. 불행히도 시간이 짧습니다,하지만이 작업을 위해 일주일에 하루를 예약.
처음에는 그것이 내가 예상했던 것보다 더 어려워 보였습니다, 어쨌든 난 영어를 못한다고, 그냥 읽기 및 쓰기, 그리고 이것은 번역에 대한 충분한 입증했다.
사실은 내가 그것으로 재미 그리고 제가 번역 편안히 것을 발견 해요. 책 자체가 잘 쓰여 있기 때문에 아마이다. 텍스트는 그것을 이해 번역이 단순히 그 결과 제작, 명확하고 읽기 즐거운 것입니다.
결국 나는 동시에 aumenando 나의 어휘와 Subversion을 사용의 기본 사항을 학습에 있어요. 하나 가격으로 두개를 구입합니다.
나는이 들어온다 계속 이미 25% 번역된 초기 챕터를 제공할 수 있도록 노력하겠습니다.
누가 지원 계정 보상해?
내가 읽고 있던 파비오의 Telles에 의해 기사 가 PostgreSQL을 새로운 버전을 지원하지 않았기 때문에 그는 자신의 ERP 공급 업체와 손에 있던 클라이언트의 이야기를했다. 텍스트는 상당히 흥미 롭 및 지원 대 소유자 지원의 문제 해결 "자유를."
대한 견해에서 "무료 지원"은 약 2 사양하겠습니다, 유료, 다른, 다른 포럼과 목록에서 제공하는 "무료 지원"이란 회사가 제공하는 무료 소프트웨어를 지원하는 하나입니다. 지원 "소유자"는 독자적인 솔루션을 회사에서 제공하는 지원이있을 것입니다.
한 모델이 다른보다 낫다는 것을 암시하는 의미하거나 비교하지 않습니다. 각 모델은 자신의 틈새, 기간에 적합합니다. 난 그저 "지원"목록 및 포럼 (많은 가운데) 측면에 대해 얘기하자.
우선, 메일링리스트와 포럼, 지원되는 허세도없는 틀려 않았습니까? 모두의 목표는 정보 교환의 공간이되도록 도울하지만, 지원하지 않을 것입니다. 하나는 틈새 시장에 맞는 공공 및 아니었 때문에이 코스를했습니다. 경우 좋아요.
나도 궁금해 : 기업 지원을 충전한다면, 그는 아마 비용이 있습니다. 그렇다면 나 자신에게 물어 : "자유"를 지원하는 비용을 지불 누구? 저 친구 목록 그러면 무료 지원을 bobões입니까? 그들이 그렇게 좋다면 왜 그들은 수수료를 부과하지 않습니다?
글쎄, "더 이상 공짜 맥주가 없다." 회사는 분석가하거나 사용자에게 제공하는 기술 지원 서비스를 고용하면 직업은 시간당 일정한 비용을 가지고 있습니다. 물론, 어떤 식으로든에서 일하는 모든 사람은 그들의 업무 및 / 또는 시간 "값을 / 시간"을 충전이 되죠. IT 전문가가 포럼이나 메일링리스트에서 힌트를주고 있습니다 때마다, 그것이 최종 제출하는 데 사용되는 문구에서 걸린 시간이 투자된다. 게시물이 잘못하더라도, 다른 사람들이 조만간 그것을 고칠 것이다. 따라서 정보는 앞뒤로 두 가지 방법을 흐르고있다. 투자 가치에 대한 정보가 될 때마다.
의 관점에서 IT 전문가, 대략 제가 목록 또는 포럼에 뭔가를 넣어 때마다 내 시간과 그들이 나에게 목록을 제공 지원을위한 나의 가치 / 시간과 함께, 내가 지불하고 말하기. 내 목록에서 팁을 사용할 때마다, 나는 클라이언트를하는 것 같다. 흥미롭게도 이러한 맥락에서, 누가 지원을 지불하는 것은 지원을 제공 하나이다. 그 대신에, 나는 그들의 경력을 향상시키기 위해 현실 세계에서 사용되는 목록의 경험, 전문 지식과 명성을 얻을.
그리고 명단에 넣지 않는 누구? 당신은 기본값을주는 거죠?
기술적으로, 안돼. 아무도 아무것도 게시 의무되지 않습니다, 그들은 모두 자원 봉사자이며, 나는 그런대로 게시하지 않는 몇 가지 이유를 들었어요 :
다른 사람 사이에 "나는 대답했다면, 제가 게시하는 경우 중복 될 것입니다" "아, 난. 게시 좋지 않아"또는. 사실 둘 다 상식처럼 전혀 유효하지 않습니다. 내 생각에 그것은 반환 아예 안 이후 도보로 총격을 받고 생을 우위를 복용 의도로 도움도되지 못하는, 오직 비윤리적인 될 ...
마지막으로, "자유"를 지원하는 또한 그것이 보일 수 있으므로 역설로 지급됩니다. 그것은 엄청난 가치를 추가하는 작은 비용이지만, 그 경비의 목록 유능한 전문가를 필요로 회사를 해소하지 않는 지원이나 자체 IT 인력 전문 회사입니다.
부 전 QT 년부터
요청이있을 경우, 제가 QT 함께 향한 시작 보여주는 간단한 문서를하기로 결정했습니다.
공간 (예, 우주가 당신의 친구, 떠나지 않을 것입니다)과 여분의 표제와 apanas 20 줄을,, 이미 프레임 워크의 주요 특징을 사용하여 '여러분, 안녕하세요 "차트를 만들 수 있습니다.
나는 다른 플랫폼에서 테스트 할 방법이 없기 때문에, 제가 사용하는 플랫폼이 * nix에서 스크립트는 것을 가정하고, 그리고 QT 개발 라이브러리가 이미 설치되어 있는지뿐만 아니라 표준 빌드 도구를 제공합니다. QT가 설치되어 있지 않은 경우, 그것이 좀 걸릴 것이 시간 링크를 .
완전한 소스 코드는 예제에서 다운로드할 수 있습니다 여기 지만 손으로 그것을 할 원하신다면 어디서든 qthello에 다음과 같은 내용을 main.cpp라는 파일 안에 디렉토리를 만듭니다 :
01 # <qapplication> 포함 02 # <qwidget> 포함 03 # <qpushButton> 포함 04 main ( int argc , char ** argv ) 05 int는 메인 (int는 argc, 문자 ** argv가) 06 { app ( argc , argv ) ; 07 QApplication 응용 프로그램 (argc, argv가); window ; 08 QWidget 창; button ( "Hello World!" , & window ) ; 09 버튼 QPushButton ( "안녕하세요!", & 창); 10 ( 300 , 200 ) ; 11 창 크기 조정 (300, 200).; ( 100 , 85 , 100 , 30 ) ; 12. 버튼 SetGeometry (100, 85, 100, 30); 13 :: connect ( & button , SIGNAL ( clicked ( ) ) , 14 QObject :: 연결 (& 단추, 신호 (()를 클릭) SLOT ( quit ( ) ) ) ; 및 응용, 슬롯 () (종료)); 15 ( ) ; 16 창 표시 ().; app. exec ( ) ; . 17 수익 응용 프로그램 EXEC (); 19} 20
이제 터미널로 가서 해당 디렉토리 및 유형 qmake-프로젝트.
모두가 제대로 설치되어 있으면 파일 qthello.pro이 만들어진 게 분명했다. 더 qthello.pro 디렉토리가없는 경우 다음 이전 단계를 검토하십시오.
단자 타입 qmake에 &&에 정착 다 만들어 함께. 이 예제를 컴파일하며 모든 운동을, qthello라는 실행 파일을 만들었습니다.
. / Qthello 그것을 실행하고 버튼 창이 나타납니다.
소스 코드 : 그래, 재미있는 부분은 지금 봅시다.
처음 세 라인은 우리가 QT를 사용하는 수업에 관한 표제만을 포함합니다.
라인 7은 QT 응용 프로그램을 선언하고 쉘 프로그램에서받은 매개 변수로 전달합니다. QApplication 클래스는 프로그램의 설정의 주요 흐름을 관리합니다. 그것은 인터페이스와 다른 출처 모두에서 모든 이벤트 처리 및 선적됩니다 메인 이벤트 루프를 포함하고 있습니다. 그것은 또한 다른 것들 사이에 프로그램의 시작과 종료를 관리합니다.
라인 8은 우리의 주요 그래픽 요소가 될 것이다 위젯을 선언합니다.
9 호선은! "안녕하세요"텍스트 단추를 선언하고 그 주요 위젯의 "아들"있습니다. 이 버튼은 기본 위젯에 표시하게됩니다.
줄 11시 12분는 형태와 입지의 구성 요소 선택을 구성합니다.
라인 14 프레임 워크의 주요 특징 중 하나인 신호 슬롯 시스템을 보여줍니다.
신호와 슬롯은 객체 사이의 통신을 실현하는 데 사용됩니다. 이 시스템은 개체 (방출) 하나 (이상) 객체 (들)에 의해 캡처하고 처리할 수있는 이벤트 (신호) 쏠 수 통해서. 신호와 슬롯 클래스의 특별한 방법입니다. 기본적으로 신호의 방출을 통해 슬롯을 호출로 번역되어 moc (메타 오브젝트 컴파일러) 어떤 preprocesses 컴파일하기 전에 소스 코드를. 신호와 슬롯을 구현하는 각 클래스 들어, 다음 코드의 나머지 부분과 함께 컴파일 moc_nomedaclasse.cpp라는 파일을 생성합니다. 이것은 모두 투명하게 수행되고 프로그래머는 보통 이러한 세부 사항에 대해 걱정할 필요가 없습니다. 실용적인 관점에서 신호 전달 동일한 매개 변수와 함께 연결을 통해 연관된 슬롯이 어떻게든 호출된다는 신호 signigica을 방출. 자세한 내용은 온라인 설명서에서 확인하실 수 있습니다.
우리의 예제에서는 링크가 슬롯 () 객체의 구현을 종료 함께 객체 버튼을 클릭한 신호 ()를 연결합니다. 이 버튼을 클릭하면, 신호가 트리거하고 이후 응용 프로그램 개체에 의해 점령 후 프로세스가 종료되는 것을 의미합니다.
그것이 표시가됩니다 있도록 라인 16에서, 위젯의 쇼 () 메서드를 호출합니다.
라인 17에서, 우리는 마침내 QT를위한 프로그램을 제어합니다. 간부인 () 메소드는 메인 루프 및 모든 메커니즘을 해고하고, 신청이 완료되는 경우에만 반환, 우리의 경우에는 app.quit ()가 시스템에 신호를 슬롯을 통해 호출될 때.
이 간단한 "안녕하세요"는 바보 같이 들리겠지만, 그것은 메인 루프, 그래픽 객체의 생성 및 신호와 슬롯의 사용으로 QT의 일부 주요 기능을 보여주는 정도입니다.
다음 포스트에서 나는 우리 자신의 신호와 슬롯 및 타이머의 사용을 만들 표시됩니다.
참조 :
QApplication
QWidget
QPushButton
신호와 슬롯
QT와 멀티 윈도우를위한 간단한 인터페이스 관리자를 구축
여러 번 나는 그래픽 또는 텍스트 모드에 관계없이 여러 화면과 유지 보수 시스템 인터페이스를 제공하는 데 결국. 종종 화면의 숫자는 항상 애매한 통화, # ifndefs, 스위치 및 기타 괴물의 엉키는게 이끌 사전 계획없이 시스템과 함께 성장했습니다.
제가 늦게처럼 게임의 첫 번째 버전을 짓을 때, 성별의 문제를 마주 쳤 처음이었다 Elifoot CEFETES에서 공정한합니다. 당시 나는 그들이 서로 전화 목표가 된 경우에만 반환 함수의 집합을 발견 했어. 결과 : 거기 쌓아! (이 새 버전에서 수정되었습니다 걱정하지 마세요!)
멀티 윈도우와 인터페이스의 경우, 및 계획 - 더 - 플라이에서 발생하는 시스템에서, 파괴와 공포의 흔적을 남기는에 창문 등등를 닫기 전에 다른 창을 불러 창문을 가지고 일반적입니다. 날 믿어, 혹시 같은 rapp의 유지를 이어받기를 원하지 않습니다.
먼지는 먼지로 ...
내 경우엔, resovi 인터페이스 관리자를 만들어 문제. 인터페이스 개체의 생성 및 파괴를 제어하는 중앙 개체입니다. 각 개체는 자신의 작업 관리자에 대한 신호를 완료하고 그 난장판을 청소 담당한다. 따라서 객체가 태어난 때마다, 죽으 앞으로 프로그램의 제어를 통과하지 않고는 작업을 수행, 항상 관리자로 돌아옵니다.
제가 관리자가 객체를 파괴할 것이라고 말하지 않습니다,하지만 청소를 할 것입니다. 각 개체에는 관리자에게 그 중 하나를 성공적으로 또는 실패, 완료 때마다 경고를하기 위해 건설되어야한다. 종종 개체 자체는 "죽이기"와 혼자 매우 유용합니다, 작업 관리자의 일부를 복용하지만, 통제할 수 있습니다.
시작하기 전에
나는이 간단한 게시물에 모든 Qt의 기능이나 관리 인터페이스의 모든 측면을 다루고 있다고 주장하지 않습니다. 내가 한하는 문제를 해결하는 방법에 대해 이야기 하려고요. 이 게시물은 또한 그런 파인애플 보지에왔다 친구 파울로 - 리우데 자네이루에 공물이다!
핸즈 - 온
나는, 대부분의 경우, 프로그래머 상향식지만, 하향식 분석. 이것은 혼란 보일지도 모르지만, 거의 겁먹을 이유도 없다, 아니면 ...
객체가 메시지를 교환해야합니다. 이를 위해, 시스템 신호 슬롯 Qt는 큰 도움이 될 것입니다. 개체가 신호를 ((신호) 방출)를 보내는 것이며, 관리자 (슬롯 ()) 그들이하는 말 것입니다.
놀랍게도 지금 UIM이라는부터 매니저 빌더, 코드의 한 라인을 가지고 있지 않습니다. 그것은 단지 편집증 (또는 안)에 0으로 포인터를 초기화 ...
UIM는 객체를 생성하고 난장판을 청소 슬롯을 구현합니다. 당신이 개체를 만들 때, UIM은 각각의 슬롯 청소에이 개체를 연결합니다. 객체가 죽으면, 그것은 UIM의 청소 슬롯을 활성화한다. 슬롯이 예제에서 객체 그래프 메인 메뉴, 윈도우의 생성으로 연결됩니다.
다른 개체들은 결국 마케팅이 중요, 자신 (약) 할 얘기가 작은 창, 대화 상자, 응용 프로그램 구성에 대해 한 두가 ...
모든 그래픽 객체는 저는 클릭하고 Qt 디자이너를 끌고하고 내 갈길을 조정. 모든 예술 작품 아니다 후에 아무것도 아냐, 손에 픽셀을 정렬되지하는 것은 개념의 증거입니다.
그래픽 객체
설치 화면이 매개 변수의 목록은 위젯 페이지로 전달되는 콤보 박스로 일반 대화 상자입니다. 제가 Qt 디자이너에서 생성한 코드를 추가한 내용은 관리자로 선택된 데이터를 전송하기 위해 소멸자, 그리고 한 쌍의 신호 슬롯이 있습니다. 저는 현재 구성을 추적 유지 귀찮게하지 않았다. 이 채팅은 다른 게시물입니다.
abouts은 기본적으로 동일한 코드 플러스 destructors 있었다.
메인 창은 다른 창과 점멸되는 사각형의 위젯 미친 전체를 호출하는 메뉴가 있습니다. 네모는 창 구성을 변경합니다 정보의 금액입니다.
매직 QT
수업은 QWidget 클래스에서 상속하기 때문에 사용된 모든 그래픽 객체는 또한 QWidgets 있고, 나는 각 상속된 메서드에서 다음과 같은 생성자를 사용합니다 :
이 -> setAttribute (Qt는 :: WA_DeleteOnClose 사실); 에 따르면 온라인 문서 , 이건가 닫힐 때 위젯을 삭제해야한다는 Qt는을 알려줍니다. 그렇지 않으면, 그것은 단지 숨겨져 있습니다.
"... 위젯은 가까운 이벤트를 허용하면 숨겨진가 ..."
당신이 그것을 닫을 때 위젯이 삭제하길 원한다면, "...의 Qt와 함께 만들 :: 플래그를 WA_DeleteOnClose. 이것은 다중 윈도우 응용 프로그램에서 독립적인 최상위 윈도우에 매우 유용합니다 ... "
등의 취소 또는 닫기를 클릭 등 실패,에 객체 엔드를 만드는 안무는 직접 자체 슬롯 주변 ()에 연결되어 있습니다. 이것은 객체의 파괴로 절정에 달하다되는 이벤트의 시리즈를 트리거합니다.
객체가 루틴은 UIM로 돌아가려면 이동했다, 그러한 확인을 클릭하고 데이터를 보내는 것처럼 성공적으로 완료, 그래서 경로들을 수 있습니다. 데이터를 받고 나면 UIM 슬롯 직접 개체의 닫기 ()를 호출합니다.
개체가 파괴되면, 그의 마지막 숨을 말, (파괴 기호)를 보냅니다. 말 그대로 그는 "나는 대단!"으악.
"외부"개체에서 UIM은 일상적인 청소 및 TADÃM이 신호를 연결 듣고있다! 준비.
제가 사용한 예제에서는 화면에서 사각형의 크기는 물체의 MyConf갑니다, UIM은 MyApplication으로 라우팅됩니다 통과. 이 전달 그것 미친 내부 위젯에 차례 인치
작은 창이 열립니다하면서 더욱 흥미로운 얻으려면 도구 해치를 닫을 때 반환, 깜박임을 중지합니다. 그것은 바보 같이 들리겠지만 그것은 바로 UIM 전체 제어 sobreo 그녀가 초점이 아닌 동안 무엇인지, 각 윈도우에서 일어나는 있다고 표시했습니다.
결론
QT 프레임 워크는 엄청난이며 거대한 범위의 기능을 제공합니다. 하나는 객체가 파괴되는 방식을 제어할 수 있습니다. 약간의 계획과 함께 시그널 - 슬롯 시스템과 이것을 함께 사용하면으로 선회하지 않고, 매우 복잡한 인터페이스를 구축할 수 Tarrasque 유지하는 시간.
출처 :
추신 : 완전한 소스 코드 예제가 GPL하에이를 통해 다운로드받을 수 있습니다 링크 . 언젠가 나는 그것에 코멘트를 넣어 ...
BUGFIX
불행한 곤충은 클래스 생성자 MySquares의 초기화 속성의 부재에 숨겼다. '세그먼트화 오류'를 초래하기 때문에 애완 동물은 작은가, 독성, 었 지만요. 난 어디에 대한 있었고, 닫힌 경우, 프로그램을 시작하면 화면이 이미 제대로 구성되었다는 가정을 막아야 이벤트의 시퀀스를 쐈어. 수정 코드는 위의 링크에서, 그리고 기억하세요 :
"항상 변수를 초기화"
분실 도서의 모험
최근 나는 리눅스 시스템 V IPC의 추상적인 합병증으로 C + + 클래스에서 하나를 쓸 필요 / 욕구에 걸렸습니다,하지만 난 나중에이 이야기. 이 게시물에 대한 이유는 여러 가지 소스를 연구에 내 온라인 설명서의 위대한 저장소에 다시 자신을 발견한다는 tldp.org . 나는 전화를주었습니다 도서가 발견 "리눅스 프로그래머 가이드"를 .
나는 매우 책이 년 3 월 1996 년 이후 업데이 트되지 않은 것을보고 놀랐습 그러나, 즉 범주에 나열되고 12 시쯤 년, 전혀 관리가되지 않고되었다. 나는 아무런 의심도없이 친구들과 모인 우리는 책을 업데이트할 수있는 권한을 얻을려고합니다.
기본적으로 TLDP가 허가를 얻을 제시 네 단계가 있습니다 :
- 원래 저자에게 문의보십시오;
- 제목을 커버 책 또는 다른 문서의 새 버전이 이미있다면 결정;
- 중복을 피하기 위해 TLDP 연락처;
- 검토하기위한 변경 사항과 문서를 TLDP 보내기;
호기심, 두 번째 단계가 먼저 이루어졌다. 그물에 대한 검색에서 우리는 2000에서 데이트 폴란드어로 번역을 제외하고, 새로운 타이틀에 아무 참조를 찾을 수 없습니다. 매우 TLDP에서, 우리가 하나의 탭에서 GNU / 리눅스에 대한 일반적인 프로그래밍 환경에 대응 다른 문서를 찾을 수 없습니다.
두 번째 단계는 다음 (!?) 처음. 우리는 원래의 작가 B. 연락을 취하려고 스콧 Burkett, 스벤 Goldt, 존 디 책 자체와 인터넷에 그들의 이름에 대한 참조의 메일을 통해 하퍼와 스벤 반 데르 Meer와 매트 웨일스어.
예상대로, 책에 포함된 모든 이전 이메일은 부드러운과 배달되지 반환하기 때문에 지금까지 아무런 답변을받지 못했다. 그것은 인터넷에서 얻은 이메일이 올바른받는 사람을 달성하고 좋은 소식과 함께 돌아갈 수 기다릴 남아있다. 그때까지 우리는 기대하고의 재 판 가능한 준비 "리눅스 프로그래머 가이드."
Sampa 중 3 C / C + + 사용자 그룹 - 회의, 그랬 었지!
지난 토요일, 19/01/2008 년 3 Apeoesp Sampa의 강당에서 개최되었습니다 C / C + + 사용자 그룹 - 회의, C / C + + 브라질 각지에서 회의.
우리는 이보 GUI 플랫폼을 개발하기위한 대안으로 wxWidgets을 제시 Nascimento, 그리고 피터 Lamas 및하여 제시, 2009 년 ISO에 의해 선정됩니다 새로운 기능에 초점을 다른 사용자와 "C + +에서 wxWidgets로"로 매우 흥미로운 강연했다 Wanderley Caloni .
우리는 또한 참석 AGIT은 우리에게 큰 능력과에서 여러분 준 브라질의 Trolltech 이벤트 기간 동안 raffled 어떤 선물을 줬어요.
회담 후에 우리가 어떤 논쟁을 개최 과거, 현재, 그리고 우리가 올해 개최되는 회의에서 다양한 프로젝트를 논의하고 그룹의 미래.
공연 'C / C + + 맥주 모임 "이웃도 여기. 할 의한 황금 열쇠와 그 근처에 후
"서브 버전으로 버전 관리"책을 번역 돕기
이 오늘 매우 성가신와 주장되고 얼마 후 드디어 책의 번역자의 그룹 도울 수있는 권한이있어 "서브 버전으로 버전 관리"를 .
번역 과정의 절반 서, 버전 1.2 이후로 업데이 트가 있었는데, 우리는 버전 1.4에 이미 있습니다. 우리는 스레드에 이사하고 사람 보폭에 그것을 가져 갔다는 것 같습니다.
모든 흥분, 들끓는 목록, 시간 손실되지, 나는 한 장의 "기본 개념"을 갔고, 이미 작업을 시작했습니다. 초기에, 난 내가 생각했던 것보다 더 어렵다는 것을 보았다. 나는 덜 기대하지 않았다, 그러나 이것은 그래서 우리가 이길 것이라고 확신 도전입니다.
어떻게 나를 가장 놀라게하는 것은 프로젝트에 참여하는 사람은 나라의 곳곳에 흩어져있다는 것입니다,하지만 우리 모두가 이웃하고있는 것. 어떤 장벽도없고, 경계. 세계화 맙소사!
심지어 구식 브라질 포르투갈어로 공식 번역은이에서 찾을 수 있습니다 링크 .

