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

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


Клуб профессиональных программистов "Весельчак У"
Информационная рассылка сайта и форума.  Выпуск No51 (2008-07-06).
  • С/С++ :: WinAPI & Visual C++
    • #include <vector>

      Ну, что ж, господа шаблонщики, вот и объясните мне одну вещь. Среда VC++6. Решил опробовать vector и сразу облом - в дебаге не желает инклудится.

    • Помогите с контролом на ATL

      Недавно начал изучать ATL и наткнулся на "интересную" проблему: создаю класс ATL control и, при добавлении обработчика сообщений (допустим - WM_SIZE или WM_CREATE или еще какого угодно), контрол на них вообще не реагирует.

    • Не могу сконструировать CListCtrl (MFC)
      1. Создал в редакторе ресурсов диалог... связал его с классом CDbgEventLog
      2. Выложил на него CListCtrl... создал мышкой для контрола переменнуюю внутри класса DbgReport
      3. Теперь с основного диалога проги делаю следующее:...

      Теперь дальше нифига не понимаю...

  • Программирование :: Программирование 1С
    • Основная форма

      1C 8.x и старше. Можно ли, не создавая новую форму, сменить статус основной формы на неосновную? А другую форму, соответственно, сделать основной.

  • Программирование :: Общие проекты
    • Система управления полиграфическим преприятием

      Я работаю в типографии, занимаюсь препрессом (допечатная подготовка). Программирование - хобби: выучил с++, чтобы написать игрушку, написал, потом еще одну, а потом стал делать всякие маленькие программулинки, чтобы упростить свою работу (в основном - автоматизация всякой рутины, типа спусков сборных тиражей). И вот, однажды, ко мне подошла одна девчушка-менеджер и поросила написать для нее мастер заполнения технологических карт. С того дня и понеслось. Идея маленькой программки переросла в идею большой системы управления типографскими заказами, которая упростила бы оформление техкарт, освободила бы менеджеров-технологов и прочих от разнообразного софта (который они используют сейчас), позволила бы планировать заказы, а также отслеживать их продвижение по технологическим участкам.

  • Операционные системы :: Windows
    • Безопасность объeкта Desktop

      Есть такая запись отказа в журнале безопасности... Вот как это побороть? Какими привелегиями регулируется доступ к рабочим столам?

    • Intrusion prevent system, XP

      Как заставить систему блокировать операции чтения из папки и подпапок для процессов, не внесенных в белый список? Как заставить систему заблокировать запуск измененного процесса? Как заблокировать запуск процесса, которому подменили dll?

  • Направления программирования :: Web
    • Firefox 3 — и чего?

      Красотища несказанная! Только вот не работают никакие плагины разработчицкие. Нет dom-инспектора. Как быть-то?

  • Направления программирования :: Drivers
    • LPT и Inpout32.dll. Нужен хелп.

      В своих писульках для управления LPT-портом, я всегда использовал inpout32.dll... Никогда и никаких проблем. Но - во всех случаях я работал с зашитым в маму портом (адрес 378h). Теперь же тема встала так - надо не 8-битную шину данных, а 16-битную. Что делать? Правильно - берем 2 LPT-порта. Купил соответствующий PCI-контроллер. 2LPT. Рабочий (проверил). Но программы, работающие с inpout32 - портом управлять не хотят. Вот я и предположил, что эта библиотека работает только с parport.sys. А у моего контроллера nmpar.sys. Свой драйвер. Прав ли я? Если прав, то что делать? Если не прав, то в чем дело?

    • Взаимодействие клавиатуры и мыши

      Задача такова: нужно сделать чтобы можно было управлять курсором мыши с клавиатуры посредством драйвера. Будет ли это драйвер клавиатуры или драйвер мыши - не важно. Сначала думал сделать фильтр для клавиатуры и заставить его передавать в приложение код кнопки, а там уже двигать курсором, но решил что так наверно не получится и вот не знаю что делать, наставьте пожалуйста на путь истинный...

    • Драйвер Real Time Clock (типо int 70 b DOS )

      Пожалуйста помогите найти материал для драйвера Real Time Clock.

    • Миррор драйверы

      Кто знает по-подробнее про миррор драйверы?

  • Практические разделы :: Базы данных
    • Применение переменной вместо имени поля и таблицы в операторе select

      Ситуация следующая: необходимо делать операцию delete для нескольких таблиц. В принципе, для каждого случая надо написать свою stored procedure для этого. Но, т.к. за исключением имен таблиц и полей все остальное д.б. одинаково, возникает совершенно справедливое желание сделать одну общую функцию для всех этих процедур.

    • Вычислить значение поля по модулю другого

      Суть задачки в следующем: в таблице есть поля...

    • Вопрос про размещение данных в таблице

      Пишется программа для анкетирования пользователей на Visual C++ с использованием бд MySql. Существует 3 таблицы: с вопросами, с вариантами ответов и с ответами пользователя. Вопрос в том, как наиболее оптимально, в данном случае, расположить варианты ответов для каждого вопроса во 2 таблице?

    • Оптимальное хранение Image в БД MSSQL

      Собственно, вопрос не конкретно по MSSQL, думаю - тип БД здесь не принципиален. Ситуация такова: достаточно большая клиент-серверная БД, работающая в локальной сети, должна хранить различную информацию, в том числе и фото. Как оптимальнее, с точки зрения скорости работы БД, резервного копирования и безопасности (на случай слета диска, с возможностью последующего восстановления), хранить фото?

  • Практические разделы :: Железо
    • Проблемы с внешним HD

      Где-то с год назад купил внешний HD - примерно 90 ГБ. Все работало. А теперь стоит попытаться скопировать на него инфу больше 1 ГБ за раз, то он с начала долго думает, а потом комп перестает его видеть. Естественно, пишет "ошибка записи" и все.

    • USB <-> COM

      Вопрос такой: кто пользовался микроконтроллером FT232BM (это эмулятор COM-порта, который работает через USB)? Пока так - удочку закинул - чтобы найти, кому потом глупые вопросы позадавать. И имеется ли альтернативное решение - не только этот МК?

    • Текущая инфа по компьютерам

      Тут у меня назрела необходимость купить себе новый комп (правильно, это уже катастрофа номер 1), т.к. делить свой старый с ребенком стало просто невозможно. И тут я задалась 2-мя вопросами по существу (а это уже катастрофа номер 2 Ага ):

      1. Стоит ли покупать ноутбук или лучше таки купить обычный комп...
      2. Т.к. я давно не смотрела в сторону железа, то потеряла ориентацию в этом пространстве...
  • Общение :: Фото
    • Панорама

      С давних времен (еще с ч/б пленок) тянется рука к панорамным съемкам и, если тогда что-либо изменить, практически, было нельзя, то и панорамные снимки получались угловатые и клеенные, но при этом показывались масштабы.

      Ну, а сейчас - флаг в руки: некотрые модели поддерживают панаромную съемку. Заключается это в том, что выдержка и диафрагма настраиваются по первому кадру.

    • ФотоБлог

      Вчера запустил мой фотоблог. Фоток пока что мало, но со временем будут добавляться.

  • Общение :: Фото :: Железо
    • Вспышки

      Вчера себе купил вспышку Canon 430 EX. Пока что со светом работать не очень умею и при работе со вспыкой приходится учиться фотографировать заново...

  • Общение :: Фото :: Мягкий инструментарий
    • Raw и Linux

      Кто чем обрабатывает Raw в Linux'е ? Если такие среди нас есть (кроме меня). Ну, или знает, чем нужно (именно не можно, а нужно) обрабатывать фотки.

  • Учимся программировать :: Начинающим
    • SQL

      <много разных вопросов от начинающего>

    • Запуск одного макроса через другой

      Помогите, пожалуйста, или подскажите, где найти: у меня в excel-е есть несколько макросов - как запустить один через другой?!

    • Помогите нубу по VB6

      Учил, не знаю зачем, Кубейсик, а теперь осваиваю VB6. Вот только никак книги нормальной найти не могу. Одну прочитал, но она довольно хиленькая. Итак, вопросов у меня много, но для здешней публики они просто смешные...

  • Практические разделы :: Игры
    • Потомки Quake

      Наткнулся на родословную (вернее на дерево потомков) незабвенного дедушки Кваки (ещё вернее - дерево игр, созданных на основе движка). Думаю, кому-то тоже будет интересно.

Содержание:

  • Вводная
  • Немного истории
  • Free Pascal Compiler - краткий обзор
    • Минимальные требования
    • Доступные платформы
    • Программные возможности
  • Lazarus глазами разработчика
  • Заключение
  • Ссылки

Вводная


О кроссплатформенности можно говорить очень много, и большая часть сказанного выйдет далеко за рамки этой статьи. Поэтому отметим лишь один неоспоримый факт: всё больше и больше компаний по разным причинам задумываются о переходе на другие платформы. И в последние годы среди этих компаний начинают появляться достаточно серьёзные организации, в том числе федерального уровня. Понять функционеров всевозможных ФГУПов довольно просто: представьте себе, сколько сэкономит, например, Сбербанк, заменив все свои Windows-системы на POSIX в масштабах страны с населением более ста миллионов. С точки зрения администратора, ничего невозможного в этом нет, вопрос, как говорится, технический. А вот разработчик оказывается перед, мягко говоря, нетривиальной задачей. И не потому, что под Linux невозможно написать то, что написано под W32. А потому, что под W32 это уже написано. И задача сводится к тому, чтобы, по сути, написать с нуля достаточно сложный функционал, идентичный существующему, с сохранением данных, интерфейсных решений, совместимости с оборудованием и др. И если когда-нибудь тому же Сбербанку придёт в голову во всех сберкассах поставить Linux, кому-то придётся писать тот же самый софт, уже работающий под Windows, для расчётов с клиентами, приёма / оплаты коммунальных услуг, ведения кредитных договоров, и многого-многого другого. Всю сложность подобной задачи понимают не только программисты, но и сами заказчики. И поэтому не приходится удивляться, когда заказчик хочет не просто программу, а программу, которую он сможет безболезненно перенести на любую нужную ему платформу в ближайшей перспективе.

Да, можно, наверное, написать на Java апплет, работающий с фискальным регистратором, к примеру, и позиционировать его как кроссплатформенное решение. Но как-то исторически сложилось, что для работы с железом используются языки иного класса: такие, как C или Pascal. И вот здесь, есстественно, в голову приходит простая мысль - а вот хорошо бы писать под все платформы сразу. Технически это возможно уже сейчас, есть решения и помимо вышеупоминавшейся Java. И думается мне, что именно эта категория специалистов будет одной из наиболее востребованных в ближайшем будущем - а именно, специалистов, создающих платформенно-независимые системы. Весь вопрос в том, как именно эти системы создаются.

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


Немного истории


Поскольку Lazarus изначально создавался как среда для компилятора FPC, начнём с самого компилятора. На заре веков FreePascal был известен как FPK Pascal, по первым буквам имени своего творца, которого звали Florian Paul Klampfl. Но поскольку многие упорно расшифровывали эту аббревиатуру, как Free Pascal Kompiler (что не совсем грамматически правильно), позже решено было переименовать проект в FPC - Free Pascal Compiler. Несколько лет назад, когда в какой-то момент многим показалось очевидным, что Borland не собирается выпускать Delphi 8, Florian Paul Klampfl (будучи студентом!) начал собственный проект. Он основывался на Turbo Pascal 7.0, среда имела 16-ую архитектуру, и в скором времени стала позволять писать для одного из расширений ДОС. 32-х битная версия компилятора была выложена в сеть и у многих вызвала интерес. Потому что была бесплатной, с открытыми исходными кодами, на знакомом многим диалекте Pascal. За пять лет до появления на рынке Kylix, Michael van Canneyt портирует FreePascal на Linux. В 2003 году, после выхода версии 1.0.х, работавшей к тому времени в Windows (Win16 и Win32), ряде POSIX-систем и на платформе AmigaOS, в среду начинают активно добавляться многие функции и возможности Delphi. На сегодняшний день Lazarus декларирует 90% совместимость с наиболее распространёнными диалектами Pascal: turbo и object, а свободном доступе имеются версии 2.2.х (stable release) и 2.3.х - (development release).

Примерно в тоже время, т.е. в конце 90х, три человека основали проект по имени Megido. Их звали: Cliff Baeseman, Shane Miller и Michael A. Hess. Проект просуществовал недолго и был закрыт.

Если вы зарегистрируетесь на сайте lazarus.freepascal.org, к вам придёт письмо с подтверждением регистрации. Обратите внимание на адрес, с которого придёт это письмо - mhess[at] miraclec.com. Это и есть Michael A. Hess, последний из стартовой лихой троицы, оставшийся в проекте на сегодняшний день

В 1999г. эти же трое собираются вновь и предпринимают вторую попытку написать бесплатную среду для бесплатного компилятора. Вторая версия проекта получает название Lazarus, по аналогии с библейским Воскрешением Лазаря. На сегодняшний день следует признать, что вторая попытка оказалось гораздо более плодотворной, потому что среда существует и развивается и поныне.

Эти краткие сведения были приведены с одной целью: показать, что как FPC, так и Lazarus - это не однодневные мотыльки, пишушиеся на коленке полутора калеками, а проекты, насчитывающие практически десяток лет. Ну а сейчас давайте "пощупаем" своими руками всё то, о чём говорилось выше.


Целиком статью можно прочесть на нашем сайте в разделе Языки программирования :: Дельфи.

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


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


В избранное