Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Клуб профессиональных программистов :: Выпуск #61


Клуб профессиональных программистов "Весельчак У"
Информационная рассылка сайта и форума.  Выпуск No61 (2008-11-15).

Здравствуйте, уважаемые читатели!

Сегодня в нашем выпуске:



Прошу обратить внимание на новую тему в разделе авторского ПО: "печать таблиц в Java". Возможно кому-нибудь из вас пригодится исходный код этой программы - он прилагается к теме форума.

В ближайшее время на нашем сайте будет опубликована статья "Мифы SQL" и ее фрагмент войдет в следующую рассылку.




От McZim поступило следующее предложение:

Народ, мы тут с женой собрались поехать покататься на лыжах в горы, пока не решили куда. Может Алма-Ата, может урал, может Новокузнецк. И когда еще точно тоже не решили. Примерно по дате это: февраль или март, на праздники 23 или 8-ое, получится где то на пару тройку дней, надо сплонировать. Вобщем ребята кто хочет? Давайте хотеть вместе.

Ждем ваших мнений в теме "Горы, лыжи, фото, отличное настроение".



Автор: vadiml.

Содержание.

Введение.

Описаний, как импортировать функции из С, достаточно много, а вот как использовать С++ классы, я увидел в виде кратких описаний только в XS Cookbook [2, 3] и небольшой статье «Gluing C++ And Perl Together» [5]. Пример использования С++ класса в Perl'е из XS Cookbook в сокращенном варианте перекочевал в perlxstut. Кроме того, на CPAN можно найти модули, импортирующие С++ классы и имеющие файлы импорта, которые можно использовать в качестве примера, такие, как Boost-Graph, Lucene, Search-Xapian, Однако они не покрывают многих вариантов подключения классов.

Чтобы не умножать сущности без надобности, т.е. не писать новых классов, которые потом нигде не пригодятся, воспользуемся уже готовой библиотекой QtCore из Qt4. Для удобства будут приведены части заголовочных файлов этой библиотеки, но все примеры будут работоспособны при подключении реальной библиотеки. Кроме того, использование файла perlobject.map [4] позволяет не писать заново описание объектов.

Начальные данные для любого модуля.

Начальные данные для любого модуля можно найти в уже упомянутой статье [5], однако они столь ценны и необходимы для раскрытия темы, что заслуживают отдельного рассмотрения. Скелет любого модуля можно написать вручную, но легче и быстрее это сделать командой h2xs -An имя_модуля. В результате будет создан каталог для модуля с необходимыми файлами, содержимое которых детально описано в "Программировании на Perl" [6]. Дав команду h2xs -An QtCore, получим скелет модуля. В полученный каталог QtCore необходимо скопировать perobject.map (названия всех файлов приводятся отностительно каталога QtCore). Созданный файл Makefile.PL надо привести к следующему виду: ...


Прочесть статью целиком можно на нашем сайте в разделе Perl.

  • Программирование
        • Изучаю MSHTML. Помогите разобраться.

          Вопрос № 1:

          Вот что я делаю:
          a) С помощью IWebBrowser2 перехожу по нужному адрессу, получаю интерфейс IHTMLDocument2 странички:
          b) Получаю коллекцию всех эллементов:
          c) Дальше возникает вопрос: в мсдн вызывают IHTMLElementCollection::item, что бы найти интересующий объект, но что за параметры они передают в этот метод мне не понятно.
          Вот ссылка на страничку в мсдн:
          ms-help://MS.VSCC.v90/MS.MSDNQTR.v90.en/ieext/workshop/browser/mshtml/tutorials/sink.htm
          их код:


          Итак вопрос, что должно быть вместо "myID", а так же где смотреть список всех обьектов коллекции, как отыскать нужный объект?

          Вопрос № 2:

          Получив интерфейс объекта коллекции, мне нужно обрабатывать связанные с ним события.
          В мсдн на той же странице это делается с помощью точки соединения в предпоследнем примере:


          Недопонимаю, что такое pUnk в этом примере. Впрочем я методом тыка сделал свой обработчик сообщений, и вместо pUnk ставлю экземпляр этого класса. Вопрос: это будет работать? Если нет, то что надо ставить вместо pUnk?
          Кстати вот мой класс - обработчик:



          Вопрос № 3:

          Как взаимодействовать со страницей? Например, перейти по ссылке или заполнить форму.

        • Именно. Пользуюсь сам этой штукой уже какое-то время, проблем никаких не было - может еще кому пригодится.

          Thread.h

          Thread.cpp

          Пользоваться так:


          Вуаля!!!

          Несколько замечаний:

          1. Чтобы приостановить первый поток из примера, использовать команду

          m_ThreadBeep1->SuspendThread();

          Аналогично вызываются и другие функции класса CWinThread.

          2. Поскольку в макросе используется указатель this на объект текущего класса, нельзя запускать поток в конструкторе (там this еще не определен).

          3. Синхронизацию потоков, организацию общего доступа к данным и т.д. никто не отменял.

          Замечание 4-е и все последующие могут добавить сюда все желающие.

          И еще просьба - не надо, шерсть на носу, задавать вопрос "зачем?", я все равно не знаю на него ответа :ф)


        • Ни разу не писал, найти информацию сложно :( ибо гугл выдаёт на сообщения людей, котоыре в этом разбираются.

          Есть MSDN, есть VC++ 2008. Нужно написать простую программу на Cи (!!!!), не используя, соответственно, всего остального (ака ATL и MFC, других языков и оболочек вокруг).

          задача: написать простенькую программу на WinAPI, желательно большинство вещей прописать руками или в редакторе ГУИ (в VC++ 2008 подобное для Си отсутствует полностью).

          в окне должно содержаться пара-тройка кнопок, выпадающий список, табличка и картинка. Все данные ограничены и предопределены (загружаются из файла), поэтому говорить о базах данных тоже не надо.

          Чего не хватает и чего умею: окошки (основные) рисовать умею. добавить иконку в угол окошка тоже могу. РУКАМИ (то есть печатая много текста). Не умею делать таблички (нужно добавлять, удалять строки, обрабатывать сообщение выделения СТРОКИ), не умею так же делать выпадающие списки, битмэпы и меню.

          Ткните в документацию, где написано подробно, с примерами и тем, как это делать "вручную", чтобы потом не думать о том, какую гую ставить для работы (если вдруг будет надо сделать быстро)
        • Хмм, вот пытаюсь делать бота для браузерной игрушки  :shuffle:.
          Из возможностей: вбивать циферки с определенной периодичностью и жать кнопочку (большего от себя не ожидаю).
          2 вопроса:
          1) Как средствами си++ загружать картинку с браузера.
          2) Как преобразовать jpg в bmp.
          --) Распознавать думаю своими силами, всетаки в институте мы такое делали  :yes:
          3) Возможно ли решить поставленную задачу без длительного освоения http? Впрочем можно и освоить, подскажите, пожалуйста подходящую книжечку
        • Нужно получит список свойств WMI класса с помощью С++
        • Люди помогите плиз сделать улитку на Borland С!суть в том что вводится n,создается массив размером n*n в котором числа от 1 и тд.и надо расположить эти числа по спирали,по часовой стрелке-чтобы последнее число было в середине! :dontknow:
        •  :-/
          Нашла библиотеку libxml, понятно, что в модуль ее не подключишь. Как лучше сделать?
        • Здравствуйте, все.
          Короче, есть задача. Есть некий модуль ядра (драйвер), необходимо чтобы сообщения (ошибка ли, предупреждение ли и т.д.) от этого модуля сохранялись в каком-нибудь другом файле нежели стандартный - /var/log/messges например. Сейчас в модуле все сообщения реализованы с помощью функции printk, она конечно хорошая, однако пишет всегда в системный лог, а хотелось бы чтобы можно было бы писать в другой какой-нибудь файл.
          Читал про то что можно сделать что-то подобное с помощью netlink сокетов, но успеха не достиг.
          Еще можно пропробовать провернуть что-то подобное с помощью файловой системы /proc. Если есть возможность подскажите пожалуйста в каком направлении копать?
          Заранее всем благодарен
      • Посоветуйте: где скачать это чудо?  :'(
      • У меня есть среды разработки софта для мобильников "netbeans-5_5_1-windows" и "netbeans_mobility-5_5_1-windows" и одна проблема: нужна виртуальная машина JAVA. Та машина что уже установлена (j2sdk1.4.2_01), не подходит.
        Комп требует:

        You can get JDK 5.0 or later from http://java.sun.com/javase/downloads/index.html

        захожу туда и не знаю что качать. Поможите, пожалуйста. У меня закачка 4,6 Кб в сек. Ошипка, смерти подобна  :'(
      • Выполняется реализация "клиент-сервер" стандартными средствами Перл. Необходимо, чтобы сервер посылал в ответ на запрос клиента либо системную дату, либо системное время. Не получается реализовать пересылку сообщений от клиента к серверу. Буду признательна, если кто-нибудь поможет!

        Сервер


        Клиент
      • не много, но может кому пригодится в мелком Java-хозяйстве. Набор классов для печати таблиц,просто без изысков.
  • Операционные системы
      • Здравствуйте.
        При включении компьютера появляется сообщение
         
        Windows could not start because the following file is missing or corrupt:
        \Windows\system32\config\system\            ...

        ОС Windows Server 2003

        Возможно ли как-нибудь восстановить систему?
        Потому, что переустановка весьма проблемотична.
        Подскажите пожалуйста.
      •  xp remote administration

        что можно почитать по этому вопросу?

        кто чем пользуется?

        сам склоняюсь к back orifice 2k, может что другое стоит попробовать?

      • при попытке смонтировать /dev/cdrom система виснет
        CD-RW сидит мастером на втором шлейфе EIDE
        ссответственно /dev/cdrom показывает  на /dev/hdc
        Linux Mandrake, kernel 2.4.18 (кажецца)

        такая же фигня проишодит при попытке загрузиться с последнего Gparted Live CD

        у кого были подобные проблемы?
        стоит попробовать поставить CD-RW слейвом вместе с винтом?

        не хочется много экспериментировать с зависаниями, боюсь убить файловую систему
  • Направления программирования
      •   Написал драйвер, который должен считывать с USB устройства 8 байт данных. После подключения устройства драйвер создает символьную ссылку на устройство (usb_testdrv).
          Из пользовательского приложения функция QueryDosDevice(nil, P, BufSize) возвращает в буфер P список устройств, в котором присуствует и мое, однако при попытке открыть его:
        hDevice:= CreateFile('\\.\usb_testdrv',
                     GENERIC_READ or GENERIC_WRITE,
                     0,nil,
                     OPEN_EXISTING,
                     FILE_ATTRIBUTE_NORMAL,
                     0
                   );
        происходит ошибка, GetLastError возвращает, что не удается найти указанный файл.
          Я так полагаю какая-то ошибка в драйвере, регистрации символного имени или все же я не правильно обращаюсь к драйверу??
      • Может кто-нибудь может подсказать, как написать на си прогу, чтобы можно было загружать и выгружать в Xp драйвер указывая путь к нему. Смотрел http://club.shelek.ru/viewart.php?id=76, но там судя по всему не хватает #include "LoadDRV.h" или я просто не смог собрать-)
        Заранее спасибо.
      • Наверно когда вы работаете с девайсами, вы встречали эти необычные слова: KeTickCount, KeQueryTimeIncrement .... И как, где применять эти функции или переменные ?
         Собственно я видел что они применялись в обработке временных интервалов  или как знак прихода прерывания. Но конкретного документа обо их применениях.
         Вы имеете что - то  связанно с этими?
      • Заранее спасибо всем кто поможет....

        Есть процесс который защищён драйвером на запись в память процесса...
        Скорей всего там перехват NtOpenProcess и возврат ацесс дениед при совпадении ПИД данного процесса...
        Дело в том что, данная программа патчит процес устанавливает драйвер и блокирует процесс, мне же надо как то либо снять блок пропатчить снова поставить блок, либо, если это возможно просто пропатчить прямо из ринг0...

        Возможно ваши решения., либо хотя-бы в какую сторону рыть... патчить нужно всего лишь 1 байт, ::) по определенному адресу(смещению) в памяти процесса.
        Забегу вперёд, это всего лишь дополнительная защита процесса т.к. готовое решение к сожелению не справляеться и писать изначально полностью защиту нету ни опыта ни времени....

      • С выходом Vistы, всеми фибрами души, пытался оттянуть переход с ХР на нее, но не прошло и двух лет, а заставляют  :( :( :( ...
        Взял я свой драйвер, для работы с 1394, написанный под DDK2003 и DriverStudio, инстальнул под vistой, и он сходу заработал... :confused:
        Отсюда вопрос, в чем отличие между Vista и XP, в плане создания драйвера?....
  • Практические разделы
      • Есть БД предстваляющая из себя файл. Файл лежит в общей папке. Есть пользователи, работают из под Access 2002; 2003.

        Есть 1 комп, когда с него запускают БД (общий доступ), Некоторым остальным работа с базой данных не доступна.
        Недоступность БД проявляется в следующем - Когда кликаем на ярлык сначала появляются песочные часы секунды на 1-2 потом обычный курсор и больше ничего не происходит (никаких сообщений не выдается). Но если при этом открыть приложение access и в нем выбрать меню - открыть файл и выбрать нашу БД, то она открывается. Найстройки безопасности IE у всех одинаковые. БД не может открыться как из 2000 так и из 2003 Access, хотя в этот же момент успешно открывается на других машинах. Режим открытия по умолчанию БД у всех - стоит общий. Режим работы с БД - блокировка изменяемой записи.
        Где вообще можно копать чтобы решить данную проблему ?
      • Вот иду в магазин и смотрю HDD, несколько фирм производителей (Seagate, Maxtor...)  и вроде параметры одинаковые и объем одинаковый,
        а разбег в цене существенный. Почему? Какой-то греется сильнее, еще что-то ... Винчестеры разных производителей наверняка тестят. Может кто ссылку подбросит (на результаты тестов, а то только старые нахожу) или советом поможет - какой производитель получше?
      • Возник вопрос на работе - или закрыть аську совсем или протоколировать переписку и управлять пользователями.
        Есть ли что для таких задач?Пока нашел только Lotus Domino, MS SQL, пишет сообщения ICQ в базу и базы поддерживает и еще чего то. Кто пользовался - есть ли отзывы?Наверно попробую демку скачать. А может у кого есть "правильная"? Кто нибудь использовал сей продукт? есть ли отзывы? Хочу попробовать - все равно ICQ нужно закрывать
  • Учимся программировать
      • А помещать сюда темы, смахивающие на
        Срочно нужна помощь и т.д. (Зачот нада сдать!!!)

        ------------------------
        Однако:

        0) Новичок, если ты Спамер, то сразу иди на хутор - бабочек собирать.

        1) Новичок, не жди халявы. Мы очень ленивые, поэтому у нас нет много свободного времени! Ты работаешь, мы - помогаем, подпинываем.

        2) если ты, Новичок, говоришь: "я нифига не рублю в этом языке" или что-то подобное, то: учи язык (или что-то подобное), потом приходи снова.

        3) если же ты, Новичок, говоришь: "у меня ничего не получается" , то ты - лентяй ещё бОльший, чем мы. Не бывает так, чтоб НИЧЕГО не получалось. Если ты, конечно, не овощ.

        4) опять же, Новичок, если ты говоришь "ну чё вам, гады умные, сложно написать пару строк бедному студенту, а то мне ещё спипендию снимут ?" то знай, сложно. Да и стипендию тебе зря платят. Смотри пункт 1 и 3.

        5) если ты, Новичок, стал после всего этого грубить, то ты приравниваешься к легендарному Бегинеру (не путать Бегинер с "бегиннер" , слово с заглавной буквы и с одной "н" - это имя), а это ещё хуже чем Спамер (смотри пункт 0). Бегиннеры имеют также обычай попадать в Кунсткамеру. Не поленись заглянуть в этот раздел для ознакомления.

        6) ...
  • Клубное
        • (не знаю чьё, и не знаю, в какую тему запостить. Понравилось)

          Они сидели на краю,в любви друг другу признавались и на багряную зарю смотрели оба и влюблялись...потом она сказал:'знаешь,так как-то странно-вместе,мы тут...ты человек другого круга. И,если все узнают...нас порвут...' он помолчал немного странно,потом поднял глаза и прошептал тихонько,плавно:'конечно,дорогая,ты права,но знаешь,жить украдкою любя я не смогу...махнём на небеса? Пусть думают,что мы сошли ссума! Но будем вместе там:ты и я...'...
          Его позвали небеса...
          Он улыбнулся и шагнул...
          Она сидела и ждала,но он разбился,не вспорхнул. Она хотела шагнуть тоже,но мысль мелькнула в голове:'всех забывают,нас забудут тоже... Нет!я буду жить и помнить о тебе!' уже заря погасла-солнце село на небе собралась гроза. Она ,рыдая,вс тать хотела,но закружилась голова. Она качнулась,полетела-жизнь оборвалась навсегда...как жаль...они ведь так хотели:любить и жить...толпа не поняла...

А теперь прощаемся с Вами до следующего выпуска.


С уважением, команда Клуба.


В избранное