воскресенье, февраля 15, 2009

Delphi 14 лет

14 февраля 1995 г. вышел официальный релиз Delphi 1.

Поздравления всему Delphi сообществу!

Источник.

четверг, февраля 12, 2009

Использование Vista UAC в Delphi: Часть 2

Оригинал.

Это вторая часть серии статей о UAC и Delphi, состоящей из трех частей.
Перейти к части 1.

Полное описание логики работы UAC выходит за рамки данной статьи. Здесь я собираюсь только обозначить несколько относящихся к делу моментов.

По сути, UAC это все об уровнях привилегий. По умолчанию, обычное Windows приложение не требует администраторских привилегий. Вот почему под Vista, даже административные аккаунты, не используют полный доступ по умолчанию. Цель нормального UAC-приложения – запуск с доступом определяемым текущим аккаунтом, и лишь при реальной необходимости запрашивать повышенные права доступа. Сам процесс запроса повышения прав называется повышение привилегий (privilege elevation), и он требует, что бы пользователь подтвердил действие, перед тем, как это действие будет выполнено. Запрос на повышение может быть представлен либо в форме простого диалога Продолжить/Отменить (режим одобрения Админом), либо полноценного диалога логина (пользователи должны явным образом ввести свои полномочия), в зависимости от типа текущего аккаунта и настроек безопасности. Существует еще пара вариаций запроса в зависимости от того используется ли исполняемым файлом цифровая подпись или нет.

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

Существуют различные способы дать возможность вашему приложению инициировать elevation диалог. Большинство из них, хотя и просты для реализации, однако не дают извлечь максимальную пользу. Я даже не знаю насколько можно их применять, так как они опираются на функции обратной совместимости Vista. В этой части я кратко опишу три из них.

Использование эвристики Vista.

Windows Vista имеет множество встроенных приемов для облегчения возможности поддержки UAC. Один из них фактически основывается на том, что инсталлеры и апдейтеры, как правило, вынуждены писать в защищенную директорию Programm Files и/или ветвь реестра HKLM. Vista распознает такие приложения с помощью эвристического метода определения и автоматически выводит elevation диалог, в тот момент, когда пользователь пытается выполнить их.

Есть целый ряд вещей, которые при этом проверяются, но я хотел бы отметить, единственную вещь, которую довольно легко реализовать и проверить – elevation диалог вызывается, если имя исполняемого файла или информация о его версии содержат такие строки, как, например, “settings”, “install” или “update”.

В результате, такой подход является весьма полезным для автоматического обновления приложений, которые, как правило, самостоятельно скачивают новую версию, а затем запускают внешние утилиты для замены старых файлов приложений. Если эта утилита названа примерно так: 'MyAppUpdater.exe' (и снабжена цифровой подписью), то приложения могут инициировать вызов красивого elevation диалога и запускать ее (утилиту) с полными правами доступа.

Очевидно, что такой подход применяется в отношении любого приложения, независимо от языка, на котором оно было разработано. Вам только нужно выбрать правильное название для исполняемого файла и все! Получите elevation диалог!

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

Выполнение от имени администратора.

Другим способом достижения того же результата является выбор опции "Выполнять эту программу от имени администратора" (Run this program as an administrator) на вкладке «Совместимость» в свойствах приложения. Обратная сторона медали будет та же, что и предыдущего подхода, приложение всегда будет выполняться с завышенными правами.

Манифест приложения.

Несколько более сложный вариант предыдущего подхода заключается в том, чтобы вставить следующий манифест в исполняемый файл своего приложения:





Ключевой информацией здесь проявляется значение атрибута requestedExecutionLevel. Если атрибут примет значение "requireAdministrator", то это послужит сигналом для Vista отобразить elevation диалог в момент запуска приложения.

Предварительно, манифест может быть связан с исполняемым файлом, вам необходимо скомпилировать его в RES формате, используя следующий RC файл (я предполагаю, что вы достаточно знаете о файлах ресурсов и знаете что такое RC и RES файлы):

1 24 "UAC.manifest"


Где 1 – индекс ресурса, 24 – тип ресурса (RT_MANIFEST), и "UAC.manifest" – актуальное имя файла манифеста, который будет скомпилирован. Замечу, что вы можете использовать другой индекс ресурса, убедившись при этом, что отсутствуют совпадения с индексами других ресурсов, например XP манифестом.

Наконец, вы должны связать полученный RES файл с исполняемым файлом, используя директиву компилятора Delphi $R.

Такой подход имеет точно те же недостатки, сто и предыдущие. Он увеличивает права заранее, а не в случае необходимости.

OK, это был краткий обзор основ UAC совместимости. Теперь мы готовы вигаться в правильном направлении…

среда, февраля 11, 2009

Использование Vista UAC в Delphi: Часть 1

 

Наконец-то произошло то, чего я так боялся. Сейчас мне придется адаптировать приложение для работы в Windows Vista. Первая и главная проблема здесь, это UAC. Поэтому я решил почитать матчасть. Возможно, кому-нибудь пригодится моя попытка перевода.

 

В настоящее время сотни технических блогов и статей, упоминают о возможностях User Account Control в Vista. К сожалению, многие авторы приуменьшают полезность этой функции.

Я говорю «к сожалению», потому, что мне нравится эта функция. И я считаю, неверным приуменьшать ее значимость. Я также считаю неверным то, что многие технические on-line источники и журналы с раздражением описывают UAC и даже предоставляют своим читателям инструкции по его отключению. Я думаю, что подобное отношение может впоследствии «обернутся боком».

Да, возможно, реализация UAC могла бы быть и лучшей. Но это не повод просто отключать его. При правильной настройке списки контроля доступа на объекты файловой системы UAC могут быть приведены к такому виду, что он уже не просто раздражает, а становится действительно полезным.

Но это не то, о чем я хочу поговорить. В свете моих мнений, я хочу показать вам, как использовать функции UAC в ваших Delphi приложениях. Так сказать, научить вас игратькрасиво, ...

Ввиду объемности статьи, я бы разделил ее на три части. Во второй части, я опишу некоторые наиболее общие UAC концепции, плюс бегло ознакомлю вас с тремя основными простыми методами, которые позволят вашим приложениям соответствовать им. В третьей, заключительной части, я сделаю упор на наиболее продвинутом подходе, включая написание определенного Delphi кода.

Ну что же, приступим…

понедельник, января 26, 2009

TurboPower сomponents for Delphi 2009

http://www.songbeamer.com/delphi/
На этом сайте вложен набор старых, хорошо известных компонентов, портированных под Delphi 2009.
Поддержка большинства этих компонентов (а возможно и всех) была давно прекращена разработчиками. В представленном наборе можно найти хорошо известные компоненты производства TurboPower, код которых был открыт, после того, как компания прекратила существование, и еще много чего полезного. Учитывая серьезные изменения, произошедшие в Delphi 2009 по части работы со строками, остается только снять шляпу перед авторами данных портов.

RESPECT!

вторник, ноября 18, 2008

RAD Studio 2009

CodeGear анонсировал RAD Studio 2009 - комбинацию Delphi 2009 (for Win32), C++Builder 2009 и Delphi Prism (for .NET).

среда, октября 15, 2008

Delphi 2009 и ASProtect

В принципе все логично. Не работает. Функции возвращают строковые значения, которые не совпадают по длине. Соответственно, они честно вызываются, но в качестве результат возвращают абракадабру. Хотя можно попробовать сделать под это дело солюшн.

четверг, октября 02, 2008

Delphi 2009 Reviewers Guide

Вот сегодня был обнародован Delphi 2009 Reviewers Guide. На самом деле, это хороший документ. Только после его прочтения и ревью, собственно, не нужны. А обзоры нового продукта куда интересней писать исходя из собственных впечатлений, а уж потом смотреть, в каком месте эти впечатления были обманчивы :).
ну вот эту штуку я явно пропустил в своем обзоре.

четверг, сентября 25, 2008

Новые Integer типы данных в Delphi 2009

В блоге Криса Бенсена (Chris Bensen)вычитал о том, что появились новые типы-псевдонимы.

type
Int8 = ShortInt;
Int16 = SmallInt;
Int32 = Integer;
UInt8 = Byte;
UInt16 = Word;
UInt32 = Cardinal;

От себя добавлю, что, пожалуй это удобно. Конечно, размерность типов нужно помнить, но иногда...

пятница, сентября 12, 2008

Unicode

Основное новшество в Delphi 2009 это поддержка Unicode. Этот тезис идет красной линией по всем пресс-релизам, блогам, статьям и т.д. Но, что за этим стоит, и как, собственно понять, что моя программа поддерживает Unicode?
Все довольно просто. Попробуйте выполнить этот код в Delphi 2007 и в Delphi 2009.
Предварительно, установите поддержку языков с письмом иероглифами, как это показано на первом рисунке.
var
c: WideChar

begin
c:='投';
ShowMessage(c);
end;

Резултат очевиден.

А для того, что бы программа, собранная на Delphi 2007 правильно вывела иероглиф 投 нужно поменять язык программ, которые не поддерживают Unicode.

среда, сентября 10, 2008

Delphi 2009 for Win32 и C++ Builder Release

Вчера наконец-то зарелизило.
Все опасения относительно некой нецелостности и убогости инсталлятора беты были напрасными. 14-дневный триал стал, как и положено становиться готовому продукту.
Delphi и C++ в одном комплекте, но можно выбирать.
Справочная система ставится отдельно.
Никаких PreRequired не нужно.
Ставится дольше чем загружается. В принципе, я никуда не спешу.
И оффлайновая инсталляция ER/Studio догружается отдельно.
Огорчило то, что при установке занял места почти вдвое больше, чем попросил. Правда после установки честно его вернул.

Цена Professional - около $ 800 для новых пользователей, $400 на апгрейт. В США чуть дешевле. Продажи в РФ и на Украине уже начались. 1С, кстати торгует среди прочих.
Апгрейт можно сделать и с Турбо. Только Турбо с продажи сняли.

воскресенье, сентября 07, 2008

Chrome. Баги

А вот и первый замеченный баг. Довольно серьезный. При попытке загрузить pdf с сайта CodeGear Crome упал замертво.

суббота, сентября 06, 2008

Интернет



За последнюю неделю в Интернете произошло два знаменательных события.

1. Google выпустил свой браузер. Chrome называется. Полметра инсталляции. Для тех, кто считает трафик, сразу скажу, что инсталлятор on-line. Иными словами качнули вы полметра, запустили установку, а потом к вам на машину еще пять метров приползло. Это установочный файл сам решил, что вам надо и подкачал. Т.е. размер - метров 6 получается...
Сам браузер.
Быстр, хотя первую страницу открывает долго, уж не знаю почему.
Аскетично прост.
Работает корректно .
Видит весь кэш FireFox, включая сохраненные пароли.
С плагинами пока не ясно...
Грузится быстро.
Полностью руссифицирован.
Никакой рекламы.


Вердикт.
Мне понравился.
То, что быстр, означает экономию трафика. На выходных прогоню по плохому каналу. Проверю "на вшивость".
Но похоже в моем личном рейтинге он займет вторую позицию, вытеснив Оперу. Если обрастет плагинами, не утратив скорость, вытеснит и FireFox. Но об этом пока рано.

2. Теперь можно покупать домены с русскими буквами в зонах .com и .net
Например:
www.божко.com
Стоимость $18
Домены метут, самые ходовые уже проданы.
Мы тоже себе прикупили на пару с коллегой десяточек доменов.
Вот такие мы киберсквотеры. :)



пятница, сентября 05, 2008

Delphi 2009 Tiburon

В ближайшее время ожидается релиз нового продукта.
По мотивам изученного в блогах тестеров и разработчиков я написал статью
http://www.xakep.ru/post/44864/default.asp

Собственно, изрядно обновилось все.
Главное - поддержка юникод.
Новые конструкции в языке.
IDE стала удобнее за счет переработки диалогов.
Ну, и по мелочам...

суббота, мая 24, 2008

Кто виноват?

[DCC Error] F2039 Could not create output file 'C:\Documents and Settings\All Users\?????????\RAD Studio\5.0\Dcp\dclfrx10.bpl'

Вот такую радость теперь я вижу при установке Delphi компонентов.
И кто же придумал называть системные директории русскими букОвКами.
Ну ведь, не только же завирусованные домохозяйки винду пользуют. Иногда же она и для работы нужна. За что я плачу свои деньги?

суббота, февраля 02, 2008

RAD Studio в России

Прекрасная новость! По сообщению издания InfoWorld Россия приобрела миллион лицензий на использование RAD Studio в школах.

воскресенье, сентября 02, 2007

Горец - Призрак

В пятницу, 31 августа, на сайте CodeGear появились ссылки на полнофункциональную версию RAD Studio 2007. Продукт анонсировался под рабочим названием Highlander. Однако, через несколько часов ссылки были сняты с сайта компании. Тем не менее, они продолжали работать.
В чем причина удаления ссылок со страницы CodeGear и, действительно-ли это релиз Highlander- неизвестно. Возможно, как это не раз бывало ранее, сервера компании просто не выдержали нагрузку.

суббота, августа 25, 2007

Книжные новинки

В ходе сегодняшнего посещения книжного рынка была приобретена книга


Хочу заметить, что ADO .Net 2.0 достаточно серьезно отличается от предыдущей версии.
Поэтому почитать не вредно будет. Сейчас есть всего лишь 2 книги, освещающие работу в ADO .Net 2.0. Вторая книга - скорее начальный уровень:



Порадовала еще одна новинка:


Увы, времени на все не хватает.

суббота, августа 18, 2007

Котлета по-киевски

Вчера общался с коллегой, который уехал в штаты, вероятно, в поисках лучшей жизни. Попутно готовил себе ужин. Котлета по-киевски. Отмечу, что на протяжении последних трех лет мы перманентно обсуждаем вопрос иммиграции. В контексте того, стоит-ли уезжать или нет.
Не смотря на то, что каждый остается при своем мнении, диалог получается порой интересный. Вчера я спросил, можно-ли в штатах купить заготовку котлеты по-киевски. Он ответил - нет. Это был очень сильный аргумент, в пользу того, что бы никуда не ехать :)
Естественно, вы уже догадались, что смысл этой заметки вовсе не в котлете. Просто время от времени, необходимо оценивать, что у тебя есть на текущий момент, в чем ты нуждаешься и чего хочешь достичь. Вот подобные обсуждения сильно помогают.
А теперь, собственно, какие выводы я сделал для себя из вчерашнего разговора.
1. Безусловно, зарплаты в США повыше чем в Харькове. Но если уж здесь денег не хватает на решение бытовых проблем, то там их не хватит тем более. Хотя этих самых проблем там меньше, а способы их решения проще (но, отнюдь не дешевле).
2. Вместе с тем, в Харькове за последнее время доход ИТ специалистов сильно вырос. Я и сам это вижу и многие замечают этот факт. Связано это, скорее всего, с тем, что, скажем киевские программисты еще дороже. И рентабельнее привлекать образованных специалистов из других регионов. Вместе с тем, спрос на аутсорсинговый кодинг (не уверен, что это грамотное выраженее, но, думаю смысл ясен) растет. И если тенденция сохранится еще некоторое время, то зарплаты будут вполне удовлетворительными. Ну, а далее все в ваших (наших) руках.
3. Важным аргументом "за" является то, что после отъезда неизбежно попадаешь в англоязычную среду. Со всеми вытекающими. Это не раз обсуждалось, не буду останавливаться подробно. С другой стороны, анлим в Харькове 512К от 80 грв. стоит. Кто не дает общаться в англоязычной среде сейчас? Стоит-ли ехать куда-то ради этого?
4. Пугает все же то, что сферы деятельности, связанные с бизнесом как-то уж сильно оторвались по уровню доходов от всех остальных. На фоне политической нестабильности (банально, но факт) это может печально закончиться. Вариантов много. Но будем на лучшее надеяться.
5. Ну и давайте не будем забывать о том, что не все деньгами измеряется. Или уровнем доходов. Есть, в конце концов, семья, друзья и так далее. Все же это очень важно. Особенно с возрастом приходит понимание этого.

Так, что далеко не все однозначно, и просто так, что-то менять, пожалуй нет смысла.

А для тех, кто пристает с вопросами: "Почему ты не уедешь, ведь ты бы мог..." я нашел краткий и не обременяющий ответ. Во Флориде нет КОТЛЕТ ПО-КИЕВСКИ.

суббота, июня 23, 2007

mda-delphi.ru

Сил поддерживать проект в одиночку в один прекрасный момент просто не осталось. За день до окончания моей подписки на домен его (домен) стало жалко.
Поссорился с регистратором и хостером. И все же домен они мне не отдали. Теперь он у киберсквотеров :(
Все.
Проект закрыт.
Всем спасибо! Война окончена.

Аккаунты

Вообще, это просто праздник.
У меня три аккаунта google. Каждый под свой инструмент. Путаница. Надо преобразовывать это все к одному.