Подборка лучших материалов по Delphi на русском языке за 2011. В сравнении с прошлым годом, появилось намного больше качественных публикаций. Смотрите также: Самые интересные публикации 2009 года и Самое интересное в Delphi-блогах за 2010 год.
Особенно рекомендую почитать переводы статей Hallvard-а Vassbotn-а, и обратить внимание на раздел “Инструменты для Delphi”.
Оглавление
- Delphi XE2
- Дженерики
- Datasnap
- Инструменты для Delphi
- Сертификация Delphi
- О внутреннем устройстве Delphi
- Другие переводы
- Компоненты и библиотеки
- Пишем код вместе с автором блога
- Проектирование
- Юзабилити и GUI
- Delphi Prism
- Подполье
- Всякое разное
- Разработка, продажа и конкурсы
- GUI, GlScene и разработка игр на Delphi
- История Delphi: 1995 — 2001. Классика Delphi Автор: Владислав Баженов.
- История Delphi: 2003 – 2011. Время Galileo. Автор: Владислав Баженов.
# Delphi XE2
- Delphi Mac 1 - создание и запуск программы на Delphi Xe2 под MacOs. Автор: Всеволод Леонов.
- Delphi XE2. Первое впечатление. Автор: Владислав Баженов.
- Delphi XE2. Знакомство с FireMonkey. Автор: Владислав Баженов.
# Firemonkey
- Видеокасты о Firemonkey от Всеволода Леонова
- Первое использование FireMonkey. Автор: Андрей Терехов (teran)
- Откройте для себя FireMonkey, платформу для создания бизнес-приложений следующего поколения. Часть 1. Часть 2. Марко Канту.
- Firemonkey. От простого к сложному #1. Автор: Владислав Баженов.
- Firemonkey. От простого к сложному #2. Компоненты FMX: списки. Автор: Владислав Баженов.
- Firemonkey. От простого к сложному #3. Компоненты FMX: списки (продолжение). Автор: Владислав Баженов.
# Live Bindings
- LiveBindings, первый подход. Всеволод Леонов
- Delphi XE2. Знакомство с LiveBinding. Автор: Владислав Баженов.
- Delphi XE2. LiveBindings для объектов. Автор: Владислав Баженов.
# RTTI
- Изучая RTTI - Используем атрибуты для чтения нужных данных. Андрей Терехов.
- Установка свойства для нескольких объектов. Андрей Терехов.
- Экспорт бинарной записи в XML. Андрей Терехов.
# Другое
- VCL STYLES - СКИНЫ В DELPHI XE2. Автор: Snowy (DelphiLab.ru)
- XE2: Работа с ZIP архивами. Автор: Андрей Терехов (teran)
- Работа с JSON в Delphi 2010 — XE2. Автор: Владислав Баженов.
- Delphi XE2 и VCL Styles. Автор: Владислав Баженов.
- Новый класс TOSVersion в Delphi XE2. Автор: Денис Голубь
- Локализация приложений Firemonkey. Компонент TLang. Автор: Владислав Баженов.
- SQLite и FireMonkey. Учимся заполнять таблицы. Автор: Владислав Баженов.
- SQLite для кроссплатформенной разработки в Delphi XE2. Автор: Владислав Баженов.
# Дженерики
В дополнение к переводу статьи Себастьяна Дуранэ Обобщённое программирование(generics) в Delphi 2009 для Win32, появился материал по дженерикам в Delphi от keeper-a.
- Используем дженерики в Delphi! (оглавление)
- Часть 1 - Введение в дженерики
- Часть 2 - Системные классы
- Часть 3 - Приложение
# Datasnap
Подборка материалов по Datasnap (Delphi 2009, 2010, XE). Автор: Евгений Чмель.
- Введение в DataSnap
- Использование JSON и TStream для передачи данных в серверные методы
- Проектирование системы привилегий
- Размышления по поводу организации привилегий
- Генератор кода для серверных методов (часть 1)
- Генератор кода для серверных методов (часть 2)
- Генератор кода для серверных методов (часть 3)
- Реализация обратных вызовов в DataSnap
# Инструменты для Delphi
- ModelMaker Code eXplorer. Рефакторим с удобством или 7 способов ускорить свою работу в Delphi. Автор: Алексей Тимохин.
- Основы рефакторинга в Delphi XE. Автор: Владислав Баженов
- Подробнее о живых шаблонах. Перевод статьи Кэри Дженсена “Live templates Revisited”.
- InstallAware 2012 в картинках. Автор: Владислав Баженов
- Обзор инструмента CodeSite. Автор: Владислав Баженов
- Документирование кода в Delphi XE2. Автор: Владислав Баженов
- CnPack IDE-мастер - редактор ImageList – Описание редактора ImageList-ов из набора CnWizards, умеющего искать иконки в интернете. Автор: Keeper.
- Описание CnPack Wizards: Описание Relation Analyzer. cnDebugViewer и cnDebug.pas (аналоги CodeSite), Шпаргалка по горячим клавишам. Автор: Алексей Тимохин.
# Впечатления о сертификации Delphi
- Certification: Delphi XE – описание от Всеволода Леонова
- Сертификация Delphi впечатления Gunsmokera
- Про экзамен в Embarcadero впечатления Влада WebDelphi.
- Сертификация Delphi Developer впечатления Евгения Чмеля.
- Экзамен Delphi Certified Developer – впечатления Андрея Терехова (teran)
# О внутреннем устройстве Delphi
- Как использовать справку в программах Delphi. Автор: Александр Алексеев (GunSmoker).
- Сериализация. Оглавление большой серии публикаций. Автор: Александр Алексеев (GunSmoker).
- Процедуры, классы, компоненты... - дополнение к посту "Чего не хватает в Delphi". Поговорим о модели компонентов в Delphi и её недостатках. Автор: Александр Алексеев (GunSmoker).
- Ответ Всеволода Леонова на публикацию Александра Алексеева: Procedures, classes, components
- Александр Алексеев об архитектуре памяти в Windows
- Что плохого в глобальных переменных? Автор: Александр Алексеев (GunSmoker).
- Архитектура памяти в Windows Автор: Александр Алексеев (GunSmoker).
- Адресное пространство под микроскопом Автор: Александр Алексеев (GunSmoker).
- Архитектура памяти в Windows: мифы и легенды (spin-off) Автор: Александр Алексеев (GunSmoker).
- Подводные камни: Переменная Result типа string может иметь непустое начальное значение Автор Бел Амор для Королевства Delphi.
- про TObject.Dispatch - шлем сообщения TObject-у. Андрей Терехов (teran).
- Окна, WinAPI, Delphi: Александр Бусаров для Королевства Delphi
- Окна, WinAPI, Delphi. Продолжение Александр Бусаров для Королевства Delphi .
- Использование процедур и функций в Delphi. Автор: SkyRZN.
# Переводы статей Hallvard-а Vassbotn-а.
Ссылки на переводы Хаков с 1 по 7й можно найти в прошлогодней подборке.
- Полиморфизм ad nauseum. Это перевод Polymorphism ad nauseum. Hallvard Vassbotn.
- Виртуальные методы и inherited. Это перевод Virtual methods and inherited. Hallvard Vassbotn.
- Реализация вызовов методов компилятором. Это перевод Method calls compiler implementation. Hallvard Vassbotn.
- Хак №8: явные вызовы VMT. Это перевод Hack #8: Explicit VMT calls. Hallvard Vassbotn.
- Динамические методы и inherited. Это перевод Dynamic methods and inherited. Hallvard Vassbotn.
- Реализация динамических методов компилятором. Это перевод Dynamic methods compiler implementation. Hallvard Vassbotn.
- Хак №9: структура таблицы динамических методов. Это перевод Hack #9: Dynamic method table structure. Hallvard Vassbotn.
- Published методы. Это перевод Published methods. Hallvard Vassbotn.
- Получение списка реализуемых интерфейсов. Это перевод Getting a list of implemented interfaces. Hallvard Vassbotn.
- Чистые интерфейсы в Delphi. Это перевод Pure interfaces in Delphi. Автор: Hallvard Vassbotn.
- Под капотом published методов. Это перевод Under the hood of published methods. Автор: Hallvard Vassbotn.
- Хак №10: получение параметров published методов. Это перевод Hack #10: Getting the parameters of published methods. Автор: Hallvard Vassbotn.
- Published поля. Это перевод Published fields. Автор: Hallvard Vassbotn.
- Детали реализации published полей. Это перевод Published fields details. Автор: Hallvard Vassbotn.
- RTTI интерфейсов. Это перевод Interface RTTI. Автор: David Glassborow.
- RTTI классов. Это перевод Class RTTI. Автор: David Glassborow.
- Раскапывая детали SOAP и WebSnap. Это перевод Digging into SOAP and WebSnap. Автор: Hallvard Vassbotn.
- Простая RTTI информация интерфейсов. Это перевод Simple Interface RTTI. Автор: Hallvard Vassbotn.
- Расширенная RTTI информация интерфейсов. Это перевод Extended Interface RTTI. Автор: Hallvard Vassbotn.
- Расширенная RTTI информация классов. Это перевод Extended Class RTTI. Автор: Hallvard Vassbotn.
- Хак №11: получение GUID интерфейса по интерфейсной ссылке. Это перевод Hack#11: Get the GUID of an interface reference. Автор: Hallvard Vassbotn.
- Хак №12: создаём меньшие .exe файлы ($SetPEFlags). Это перевод Hack#12: Create smaller .EXE files ($SetPEFlags). Автор: Hallvard Vassbotn.
- Хак №13: более быстрый доступ к глобальным данным ($ImportedData). Это перевод Hack#13: Access globals faster ($ImportedData). Автор: Hallvard Vassbotn.
- Анализ хака добавления "published" свойства без изменения класса. Это перевод Review: Delphi 2007 for Win32 (Beta) - part three. Автор: Hallvard Vassbotn.
- Хак №14: изменение класса объекта в run-time. Это перевод Hack#14: Changing the class of an object at run-time. Автор: Hallvard Vassbotn.
- Хак №15: замещение динамических и message-методов в run-time. Это перевод Hack#15: Overriding message and dynamic methods at run-time. Автор: Hallvard Vassbotn.
- Как добавить published свойство без нарушения совместимости DCU. Это перевод How to add a "published" property without breaking DCU compatibility. Автор: Allen Bauer.
# Другие переводы
- Недокументированный CreateProcess. Это перевод Undocumented CreateProcess. Автор: James Brown.
- Вызов функции - это нечто большее, чем просто заставить типы параметров совпасть. Это перевод There's more to calling a function than just getting the types to match. Автор: Реймонд Чен.
- Деструкторы COM объектов являются очень хрупкими функциями. Это перевод COM object destructors are very sensitive functions. Автор: Реймонд Чен.
- Избегаем двойного освобождения объекта. Это перевод Avoiding double-destruction when an object is released. Автор: Реймонд Чен. Примечание: код этого поста сильно отличается от оригинала.
- Об объектах с нулевым счётчиком ссылок. Это перевод On objects with a reference count of zero. Автор: Реймонд Чен.
- Понимание последствий WAIT_ABANDONED. Это перевод Understanding the consequences of WAIT_ABANDONED. Автор: Реймонд Чен.
- Как WinAPI сообщает об ошибках. Это перевод The Way WinAPI Shows Errors. Автор: Christian Wimmer.
- Неудачный эффект WM_SETREDRAW. Это перевод The Unfortunate Effect of WM_SETREDRAW. Автор: François Gaillard.
# Реймонд Чен о перенаправлении ввода:
- Первое слово в командной строке является именем программы только по соглашению
- Перенаправление командной строки выполняется интерпретатором командной строки
- Опасайтесь цифр перед оператором перенаправления
- Оператор перенаправления может стоять в середине командной строки
- Перенаправление вывода может изменить поведение программы
# Unicode
- Конвертируем между LCID и кодами языков RFC 1766. Это перевод Converting between LCIDs and RFC 1766 language codes. Автор: Реймонд Чен.
- UTF-8 всё ещё не является вариантом по умолчанию в Блокноте. Это перевод UTF-8 default isn't in the latest Notepad, either. Автор: Майкл Каплан.
- The game is over, people! Это перевод The game is over, people! Автор: Майкл Каплан.
- Почему вообще Shell-скрипты UNIX в UTF-8 создают или редактируют в Блокноте Windows? Это перевод Why are UTF-8 encoded Unix shell scripts *ever* written or edited in Notepad? Автор: Майкл Каплан.
- unicodeFFFE... Microsoft рехнулась? Это перевод unicodeFFFE... is Microsoft off its rocker? Автор: Майкл Каплан.
- У каждого символа есть история №4: U+feff Это перевод Every character has a story #4: U+feff (alternate title: UTF-8 is the BOM, dude!). Автор: Майкл Каплан.
# Компоненты и библиотеки
- Головокружительные возможности Dependency Injection и Delphi Spring. Часть 5. Основы Delphi Spring. Автор: Nick Hodges.
- Ribbon Controls в Delphi 2009 — XE. Пошаговое руководство для разработчика. Огромный пост в котором собрана куча материала. В закладки однозначно. Автор: Владислав Баженов
- Генераторы отчётов: сравнение FastReports.NET, FastReports.VCL, Rave Reports и Crystal reports. Автор ankh1989.
- Ribbon UI как он есть. Работа с Windows Ribbon Framework в Delphi 2010 — XE2. Использовании Microsoft Windows Ribbon Framework в Delphi. Автор: Владислав Баженов
- Обзор компонентов IP*Works v8. Автор: Владислав Баженов
- Опыт работы с madExcept. Автор: Владислав Баженов
- Библиотека Synapse. Работа с модулем HTTPSend.pas. Автор: Владислав Баженов
- Работа с Internet Component Suite после Indy. Автор: Владислав Баженов
- Обновление MLang. Добавлена поддержка Delphi 4-XE. Автор: Владислав Баженов
- JvTimeFramework – делаем органайзер с помощью JVCL (блог WebDelphi):
- Органайзер в Delphi. Введение.
- Свойства компонента TjvTFDays.
- Свойства компонента TjvTFDays. Продолжение.
- Методы TjvTFDays для работы с элементами события и областями сетки.
- Методы TjvTFDays: редактирование событий и работа с сеткой.
- Jv TimeFrameWork. Методы TjvTFDays: перемещение по событиям, выделение событий.
- Обзор GLEngine2D в блоге VROnline
- Опыт внедрения EurekaLog. Автор: Николай Зверев
- Посты по теме Работа с MapWindow GIS в блоге DevDelphi.
- Static API Яндекс.Карт в блоге DevDelphi.
- Использование транзакций - MySql и DBX. Евгений Чмель.
- DigestSDK — автоматизация работы с MSSQL на Delphi. Дмитрий Гацура.
# Использование OmniThread Library для создания многопоточных приложений
Описание OmniThread Library 2.0 (OTL 2.0). Автор: Дмитрий Кузан.
- Часть 1. Что нового? (2010-й год)
- Часть 2. Что нового? (2010-й год)
- Часть 3. Волшебство Parallel.ForEach. Краткий обзор. (2010-й год)
- Часть 4. Многоступенчатые процессы. (2010-й год)
- Часть 5. Регулировка стадий. (2010-й год)
- Часть 6. Провайдер исходных данных. (2010-й год)
- Часть 7. Очередь выходных данных и исходящие буферы
- Простые фоновые задачи в OTLParallel
- Настройка фоновых задач в OTLParallel
- Вышла новая версия OmniThreadLibrary 2.1 – описание нововведений в OTL 2.1
# Пишем код вместе с автором блога
- Инструментарий для ведения логов в помощь разработчику программ. Денис Барановский для Королевства Delphi.
- Сам загружу, сам покажу - пишем диалог с прогрессбаром. George Judkin для Королевства Delphi.
- Реализация перечисления IEnumerable. Андрей Терехов.
- Еще немного о IEnumerable, generics, interfaces. Андрей Терехов.
- Delphi Notes Splitter. Автор: Николай Зверев.
- Мониторинг изменений в директориях и файлах средствами Delphi. Часть #1. Часть #2. Автор: Владислав Баженов.
- UTC and Local Time Conversion. Пересчёт даты и времени из UTC в локальное. Автор: Николай Зверев.
- Delphi и Open Tools API. Создаём шаблон проекта в блоге VROnline.
- Реализация настоящего 3D эффекта в своих проектах. Andrew Jacuk.
- Визуальный компонент-монитор COM-порта. Алексей Панин.
- Работа с Google Documents. Автор: Владислав Баженов.
- Пишем хранитель экрана с мыльными пузырями вместе с Андреем Тереховым.
# Проектирование
- DLL, DLL Hell, перенаправление DLL, Side-by-Side сборки и манифесты... Александр Алексеев
- Как писать понятный код - руководство для учащихся aka "Как писать код, понятный хотя бы себе самому". Александр Алексеев
- Разработка системы плагинов в Delphi. Александр Алексеев. Эта статья - продолжение старой серии.
- Переход на платформонезависимый стиль программирования. Cepгей Poщин для Королевства Delphi.
- Несколько слов о проектировании архитектуры. Евгений Чмель.
- Проектирование структуры баз данных. Проблемы, подходы, компромиссы. Сергей Перовский для Королевства Delphi.
- Размышления на тему: недостатки датасетов. Николай Зверев.
- Идея автогенерации кода при работе с БД. Николай Зверев.
- Размышления на тему обращения к полям DataSet. Александр Божко.
- Библиотеки, компоненты. Разные версии в разных проектах. Николай Зверев.
- Злоупотребление свойствами – перевод On the abuse of properties. Автор: Реймонд Чен.
- Ваш отладочный код может быть дырой в безопасности – перевод Your debugging code can be a security hole. Автор: Реймонд Чен.
- Правила интерфейсов COM существуют не просто так – перевод The COM interface contract rules exist for a reason. Автор: Реймонд Чен.
- Когда программы предполагают, что система никогда не изменится, эпизод 1 – перевод When programs assume that the system will never change, episode 1. Автор: Реймонд Чен.
- Если вы собираетесь эмулировать действия пользователя, убедитесь, что пользователь вообще смог бы их сделать. Перевод If you're going to try to simulate user actions, make sure the user can do them. Автор: Реймонд Чен.
- Помните, что происходит, когда вы делаете широковещательную рассылку. Это перевод Remember what happens when you broadcast a message. Автор: Реймонд Чен.
- Одноэкземплярная программа является своим собственным отказом в обслуживании. Перевод A single-instance program is its own denial of service. Автор: Реймонд Чен.
- Безопасность: не забывайте обнулять вещи, на которые вам наплевать. Это перевод Security: Don't forget to initialize the stuff you don't care about. Автор: Реймонд Чен.
- Прежде чем вы разработаете решение: убедитесь, что вы понимаете проблему. Это перевод Before you develop a solution, make sure you really understand the problem. Автор: Реймонд Чен.
- Решение одной проблемы созданием большей проблемы. Это перевод Solving one problem by creating a bigger problem. Автор: Реймонд Чен.
- Основные негласные правила программирования: параметры функций. Это перевод Basic ground rules for programming - function parameters and how they are used. Автор: Реймонд Чен.
- Понимание вещей в контексте вопроса: Dispatch-интерфейсы. Это перевод Understanding what things mean in context: Dispatch interfaces. Автор: Реймонд Чен.
- Кэш с плохой политикой - это просто другое имя для утечки памяти. Это перевод A cache with a bad policy is another name for a memory leak. Автор: Реймонд Чен.
- Не используйте глобальное состояние для управления локальной проблемой . Или может ли деинсталлятор программы отформатировать диск чтобы убедиться что программа была корректно удалена? Это перевод Don't use global state to manage a local problem. Автор: Реймонд Чен.
- Переход с Delphi 6 на Delphi 2010 (на Юникод): Часть 1: Варианты перехода. Часть 2: План перехода и сторонние библиотеки. Часть 3: Переход с Ehlib 3.6 на Ehlib 5.x. Алексей Тимохин.
# Юзабилити и GUI
- MacBook Pro 17, открыл окошко - чудесное исследование о проектировании GUI. Автор: Всеволод Леонов. И комментарии хороши. Особенно этот.
- В Rat Poker что-то такое есть - перевод There's something about Rat Poker. Автор: Реймонд Чен.
- Запуск старых программ в виртуальной машине не обязательно создаёт хорошее впечатление – перевод Running old programs in a virtual machine doesn't necessarily create a good user experience. Автор: Реймонд Чен.
- Подводные камни вывода сглаженного текста с прозрачным фоном – перевод Pitfalls of transparent rendering of anti-aliased fonts. Автор: Реймонд Чен
- Почему нет программного способа изменить порядок элементов в меню Пуск? – перевод Why can't you programmatically reorder the items on the Start menu? Автор: Реймонд Чен
- Группировка разрядов с учётом локали. Перевод Locale-sensitive number grouping. Автор: Реймонд Чен.
# Delphi Prism
Публикации в блоге WebDelphi
- Знакомство с Delphi Prism.
- Delphi Prism. Первое приложение с использованием .NET Framework 4. Подготовка плацдарма, знакомство с IDE.
- Delphi Prism. Первое приложение с использованием .NET Framework 4. Некоторые особенности работы с .NET.
# Подполье
# Всякое разное
- Обработка ошибок - термины и определения - Краткий список определений (словарик) терминов, касающихся отладки и обработки ошибок. Этот список приведён с точки зрения Delphi и утилит трассировки исключений. Автор: Александр Алексеев.
- Три составные части хорошего описания ошибки. Александр Алексеев.
- Незаконченная история перехода с Delphi на C#. Образцов Федор.
- Установка Delphi 1 на Windows 7 x64 Предупреждение: это несерьёзный пост с нулевой практической пользой. For fun only... Автор: Александр Алексеев.
- Журнал Delphi на русском - первый выпуск анонс Blaise Pascal Magazine Russian №1 - Database Special.
- Второй бесплатный выпуск Blase Pascal Magazine на русском языке
- Blaise Pascal Magazine. Русская версия. Третий бесплатный номер
- Использование Crinkler с Delphi. Тимур Гагиев
# Разработка, продажа и конкурсы
- Разработка и продажа Shareware. Часть 1. Николай Иванов.
- Разработка и продажа Shareware. Часть 2. Николай Иванов.
- О разработке, релизе и распространении игры Тайны притяжения... Автор: lampogolovii
- Ответы на вопросы по разработке игры Тайны Притяжения. Автор: lampogolovii
- Рассказ о создании игры для конкурса. Автор: lampogolovii
- Конкурсы компьютерных игр в .ru сегменте. Автор: lampogolovii
# GUI, GlScene и разработка игр на Delphi
- Игра Square is going home с исходниками
- Утилитарный класс для вывода FPS + Memory. Этап 1: начало...
- GUI: Стилизованное анимированное меню
- Простое меню с кнопками
- GUI: Панелька из 9ти кусочков...
- Tween-инг в Delphi, первые шаги
- Жизнь без скроллбаров
- Сплайны: целый воз практики и чуточку теории...
- Параллакс: звездное небо в 2д и не только
- Squall: рёв двигателя! Программный эффект изменения оборотов двигателя.
- Рисование текстуры "на лету"
- Delphi + GlScene: Простые анимации
- GUI: Круговой выбор элементов
- glVehicles-Gibbets или насколько трудно программировать физику? Использование Box2D
- glVehicles, поверхность жидкости силами Box2d
- Пишем GUI: Drag and drop
- Репозиторий для демонстрационных программ
Оу, ни фига себе - ты всё-таки это сделал :)
ОтветитьУдалитьРеспект.
"Неудачный эффект WM_SETREDRAW" я бы отнёс к серии про LockWindowUpdate с прошлого года.
=))) Я должен был.
Удалить>"Неудачный эффект WM_SETREDRAW" я бы отнёс к серии про LockWindowUpdate с прошлого года.
Думаешь это принципиально?
p.s. для себя что-нибудь интересное нашёл в этой подборке? =)
Отдельное СПАСИБО от, беру на себя, всех авторов упомянутых публикаций.
ОтветитьУдалитьОчень приятно писать, когда знаешь, что тебя "каталогизируют".
Доп. мотивация команде пишущих энтузиастов.
Ну и нам в Embarcadero сразу видно наших героев. :)
Отдельное на здоровье.=) Видеть благодарности от авторов блогов также приятно как и от читателей. =)
УдалитьGreat Work!
ОтветитьУдалитьСпасибо, такие сборники очень полезны!
Всеволод, согласись, такие посты надо поощрять, быть может даже материально!?
Эх, основы, основы, основы, а тема embedded и Arduino не раскрыта. Интересно выглядит проект Smart Mobile Studio a.k.a. Object Pascal 4 JS.
ОтветитьУдалитьЧто нашёл то и собрал.
УдалитьОбзоры Smart Mobile Studio a.k.a. Object Pascal 4 JS на русском мне не попадались.
Выражаю большую благодарность! Спасибо, надо будет все изучить.
ОтветитьУдалитьГлавное не переутомиться изучая всё-превсё. =)
Удалитього-го!
ОтветитьУдалитьмой журнал в этом списке?! очень приятно и на самом деле неожиданно...
спасибо за добрые слова!
Алексей, удачи тебе и всего наилучшего!
Пардон, совсем забыл ответить.
УдалитьМне очень нравится читать твой журнал. Он вдохновляет. =)