#1
|
17.07.2008
От редакции
|
|
Аннотация: Главным событием этой весны стал одновременный выход Windows Server 2008, SQL Server 2008 и Visual Studio 2008. 18 марта в Доме Музыки состоялось грандиозное мероприятие, размерами не уступающее Платформе, которая уже, с моей точки зрения, переросла любые разумные размеры. На этом довольно веселом (...
Ключевые слова: |
17.07.2008
Internet Explorer 8: XDomainRequest
|
|
Аннотация: Новой «фишкой» восьмой версии IE8 является интерфейс XDomainRequest (IHTMLXDomainRequest), с помощью которого, в отличие от XMLHttpRequest, можно делать запросы к различным доменам.
Ключевые слова: XDomainRequest,XMLHttpRequest |
17.07.2008
Умные указатели в C++
|
|
Аннотация: В этой статье приводится обзор инструментов, позволяющих избежать части проблем, связанных с использованием динамической памяти в C++. Описанные ниже инструменты и методики не являются панацеей от проблем управления памятью, они всего лишь способны облегчить жизнь программисту при условии правильного их использования. Эти инструменты носят общее название «умные указатели» («smart pointers»), что подразумевает их семантическое сходство с обыкновенными указателями C++.
Ключевые слова: smartptr |
17.07.2008
Редактирование объекта с псевдо свойствами в PropertyGrid
|
|
Аннотация: В статье рассказывается о возможности использования элемента управления PropertyGrid для редактирования объектов с несуществующими свойствами.
Ключевые слова: PropertyGrid |
17.07.2008
Построение программного обеспечения при каждом изменении
|
|
Аннотация: В этой главе мы обсудим преимущества использования сервера CI для интеграционного построения при внесении любого изменения. Не все построения одинаковы, и впоследствии мы рассмотрим их типы и организацию. Мы также рассмотрим аспекты выбора и использования отдельной машины для интеграционного построения и CI. Автоматизация CI - это не единственный реальный подход реализации интеграционного построения; мы также ознакомимся с методикой выполнения интеграции вручную, с использованием поочередного подхода. Поскольку быстрая обратная связь при построении очень важна, мы закончим главу этой темой.
Ключевые слова: CII |
17.07.2008
Разработка простого генератора отчетов с помощью Nemerle и System.Xml.Linq
|
|
Аннотация: Статья демонстрирует разработку реального приложения на Nemerle на примере создания простого генератора отчетов. Кроме того, в статье показана работа
с XML средствами LINQ to XML.
Ключевые слова: Nemerle |
17.07.2008
KeyedFactory
|
|
Аннотация: В этой статье предлагается реализация шаблона «Фабричный метод с параметрами (Parameterized Factory Method)» – частный случай реализации фабричного метода средствами языка С# 2.0. Реализация основана на дополнительном классе KeyedFactory, в который сведена вся логика выбора фабричного метода. KeyedFactory дополняется полезными методами, которые позволяют фабрике поддерживать большинство методов создания объектов в среде Microsoft .Net. Кроме того, в статье приводятся результаты тестирования скорости различных методов создания объектов.
Ключевые слова: |
17.07.2008
Еще раз о разработке плагинов Eclipse
|
|
Аннотация: Данная статья представляет собой обзор разработки плагинов Eclipse. Пользовательский интерфейс Eclipse остается за ее рамками – с его исчерпывающим описанием можно ознакомится в документации, входящей в дистрибутив продукта. Вместо этого читатели получат представление об устройстве платформы Eclipse.
Ключевые слова: eclipse |
17.07.2008
Сущность библиотеки анализа кода VivaCore
|
|
Аннотация: Статья знакомит разработчиков с библиотекой VivaCore, предпосылками ее создания, возможностями, структурой и областями применения. Данная статья была написана параллельно с разработкой библиотеки VivaCore, и поэтому отдельные детали ее конечной реализации могут отличаться от описанных здесь свойств. Но это не помешает разработчикам познакомиться с общими принципами работы библиотеки, механизмами анализа и обработки текстов программ на языке Си и Си++.
Ключевые слова: VivaCore |
17.07.2008
[ANN]once — #1'2008
|
|
Аннотация: Материалы данной статьи приведены на CD ROM.
Ключевые слова: |
17.07.2008
Microsoft представила в России Windows Server 2008, Visual Studio 2008 и SQL Server 2008
|
|
Аннотация: 18 марта 2008 г. в Московском международном Доме музыки состоялась масштабная конференция, посвященная выходу в России новой серии продуктов Microsoft Windows Server 2008, SQL Server 2008 и Visual Studio 2008. Мероприятие посетили около 3000 технических специалистов, заказчиков и партнеров, еще несколько тысяч человек подключились к online-трансляции.
Ключевые слова: 2008 |
#2
|
26.08.2008
От редакции
|
|
Аннотация: Сегодня, очевидно по поводу близкой сдачи номера, в редакции решили устроить разбор залежей железа, накопившихся за долгие годы. Очевидно, другого времени никак не нашлось. А может, чтобы мне скучно не было. Раскопки принесли множество неожиданных находок. В частности, нашелся блок питания от одного...
Ключевые слова: |
26.08.2008
32 подводных камня OpenMP при программировании на C++
|
|
Аннотация: С распространением многоядерных систем задача параллельного программирования становится все более и более актуальной. Данная область, однако, является новой даже для большинства опытных программистов.
Существующие компиляторы и анализаторы кода позволяют находить некоторые ошибки, возникающие при разработке параллельного кода. Многие ошибки никак не диагностируются. В данной статье приводится описание ряда ошибок, приводящих к некорректному поведению параллельных программ, созданных на основе технологии OpenMP.
Ключевые слова: OpenMP |
26.08.2008
Обзор новых возможностей в Python 2.6 и 3.0
|
|
Аннотация: В статье рассматриваются основные изменения, которые произошли в Python 2.6 и 3.0 по сравнению с Python 2.5.
Ключевые слова: Python |
27.08.2008
Строка формата строки
|
|
Аннотация: Ошибки, связанные с форматом строки, могут позволить злоумышленнику получить контроль над системой. Статья описывает примеры ошибочного использования printf()-подобных функций, а также возможные последствия таких ошибок.
Ключевые слова: printf |
27.08.2008
Автоматизация поиска SQL Injection
|
|
Аннотация: В статье показывается, как написать программу, автоматически сканирующую заданные сайты на предмет наличия в них уязвимости типа SQL Injection. Примеры приведены на языках PHP и C#
Ключевые слова: SQL Injection |
27.08.2008
Судьба новых идей, или почему прогресс идет так медленно
|
|
Аннотация: Вот уже который раз встречаю преинтереснейшую картину. Эта картина настолько задевает меня, что я решил поделиться с вами своими впечатлениями. Картина эта выглядит так. Где-то в глубине народных масс появляется некая неординарная идея. Эта идея теми или иными путями доходит до ушей в Microsoft и представители Microsoft бодрым голосом заявляют, что мол, это идея бредовая/вредная/бесполезная, и вроде бы тихо про нее забывают. В лучшем случае просто не следует никакой реакции. Проходит время, и вдруг появляется массированный пиар этой самой идеи, исходящий из недр Microsoft. Далее начинается массированная поддержка этой идеи в блогах. Через некоторое время появляются слухи о планах по включению этой возможности в один из продуктов Microsoft, и где-то через 1-3 года продукт, реализующий эту возможность, появляется у нас на компьютерах.
Ключевые слова: |
28.08.2008
FastReport Studio — современный генератор отчетов
|
|
Аннотация: Правильный выбор генератора на этапе создания приложения определяет не только удобство приложения для конечного пользователя, но и удобство создания, подключения новых отчетов и оперативной модификации существующих.
В данной статье на примерах показывается, как создавать отчеты для любых сред разработки, совместимых с технологией COM, с помощью универсального генератора отчетов FastReport Studio.
Ключевые слова: Fast Report |
28.08.2008
Прозрачное шифрование баз данных в Microsoft SQL Server 2008
|
|
Аннотация: В Microsoft SQL Server 2008 появилось новая возможность – прозрачное шифрование БД (Transparent Data Encryption или TDE). Статья рассказывает о достоинствах и недостатках этой возможности, а также об особенностях ее использования.
Ключевые слова: SQL Server 2008 |
29.08.2008
Устройство и криптоанализ UUID-генератора в ОС Windows
|
|
Аннотация: В статье исследуется механизм работы WinAPI-функции UuidCreate, работающей в роли UUID-генератора в ОС Windows, а также вопрос применимости его в качестве генератора псевдослучайных чисел. Разбираются версии библиотеки rpcrt4.dll, входящие в ОС Windows XP, Vista и Windows Server 2008.
Ключевые слова: UuidCreate |
26.01.2009
LINQ как шаг к функциональному программированию
|
|
Аннотация: Цель данной статьи – объяснить читателю незнакомому с ФП, что такое функциональный подход, какие он дает преимущества, и как его можно использовать с помощью LINQ и C# 3.0.
Кроме того, эта статья дает некоторое понимание того, как работает «LONQ to Object» и на каких принципах он основан.
Ключевые слова: LINQ, C#, C# 3.0, ФП, Функциональное программирование, Функциональная парадигма, Функциональный подход, ФВП, Функции высшего порядка, Fold, FoldLeft, FoldRight, Reduce, Aggregate, Map, Convert, ConvertAll, Select, Filter, Where, Rev, Reverse, OrderBy, OrderByDescending, ThenBy, ThenByDescending, Sort. |
10.08.2008
[ANN]once — #2'2008
|
|
Аннотация: Очередной обзор полезного для программиста программного обеспечения - WinMerge, Subversion, TortoiseSVN, VisualSVN, Visual C++ 2008 Feature Pack, BVRDE, FreeImage, Qt/Windows, ProfUIS, Evaluation Engine, MailMergeLib, NArrange, TraceTool.
Ключевые слова: WinMerge, Subversion, TortoiseSVN, VisualSVN, Visual C++ 2008 Feature Pack, BVRDE, FreeImage, Qt/Windows, ProfUIS, Evaluation Engine, MailMergeLib, NArrange, TraceTool |
#3
|
28.12.2008
От редакции
|
|
Аннотация: Бизнес Microsoft всегда складывался из того, что пишется некий софт, доводится до коробочного состояния и продается большим тиражом. Даже когда Microsoft начал выпускать железо, концепция не изменилась – после десятка мышей и пары клавиатур была выпущена коробка XBox и продана опять же большим тираж...
Ключевые слова: |
28.12.2008
Приемы программирования на Java
|
|
Аннотация: Официально язык Java поддерживает только объектно-ориентированную парадигму, которая не всегда позволяет сделать код компактным, легко читаемым и удобным в поддержке. Однако Java-гуру умудряются использовать имеющиеся в Java возможности для применения в Java-коде функционального стиля программирования, который в некоторых случаях позволяет радикально улучшить читаемость кода (делая его более декларативным), а также упростить его поддержку и развитие. Надеемся, что данная статья будет полезна многим Java-программистам разного уровня.
Большая часть данной статьи не имеет отношения к собственно функциональному программированию (далее – ФП). В основном будут рассмотрены способы повышения читаемости некоторых часто встречающихся паттернов, особенно при использовании функционального стиля, и без которых об ФП не может быть и речи. О приемах собственно ФП будет сказано совсем немного, ближе к концу статьи.
Ключевые слова: Java |
28.12.2008
Привязка данных в Windows Forms
|
|
Аннотация: Основная задача приложений Windows Forms – манипулирование данными. В определенный момент времени приложение получает данные из некоторого источника, отображает их пользователю, пользователь изменяет данные, затем измененные данные помещаются в источник (в тот же самый или иной). В некоторых приложениях может не быть некоторых из вышеперечисленных этапов, но в целом эта картина характерна для большинства приложений.
В приложении, работающем с данными, существует логическая взаимосвязь между уровнем данных и представлением, хотим мы этого или нет. Вопрос в том, сколько рутинной работы ложится на ваши плечи. Механизм привязки данных в Windows Forms в значительной степени упрощает создание приложений, работающих с данными. Понимание основных концепций, на которых строится привязка данных, может в значительной степени упростить построение таких приложений, а также помочь в решении различных проблем, которые неизменно преследуют каждого разработчика.
Ключевые слова: .Net, C#, Windows Forms, Data Binding |
12.02.2009
Взаимодействие управляемого и неуправляемого кода
|
|
Аннотация: Появление .Net Framework значительно облегчило создание многих видов приложений. Благодаря богатой библиотеки отпала необходимость в создании большого количества велосипедов, которые, в противном случае, создавались каждым из нас. Но, не смотря на это, существует множество «неуправляемого» кода, написанного на «голом» С++, который ничего не знает об .Net Framework и знать не может. Многие из этих приложений переписываются с использованием «управляемого» кода, но этот процесс не быстрый и у многих разработчиков появляется необходимость смешивать «управляемый» и «неуправляемый» код.
О том, как взаимодействовать с «неуправляемым» кодом из «управляемого» написано достаточно много, и это неудивительно, поскольку именно эта задача является наиболее распространенной в «смешанных» приложениях. Но бывает и обратная ситуация, у вас «неуправляемое» приложение (консольное приложение, служба или приложение, написанное с использование MFC), но появилась необходимость обратиться к некоторой управляемой библиотеке. Как быть? Переписывать заново нет ни времени, ни возможности, перекомпилировать с использованием ключа /clr, тоже не получается.
В данной статье я опишу общие принципы решения задачи обращения из «неуправляемого» кода к «управляемому», а также реализую оболочку для работы с распространенной библиотекой log4net.
Ключевые слова: C++, .Net, native managed interop |
28.12.2008
Монады
|
|
Аннотация: Статья рассказывает о том, что такое монады Haskell, приводятся примеры, иллюстрирующие эту концепцию.
Ключевые слова: haskell,monads,хаскелл,монады |
28.12.2008
RPC своими руками, или макросы наносят ответный удар
|
|
Аннотация: Мы не проводили социологических исследований, но и без них очевидно, что C++-программисты в большинстве случаев предпочтут написать все, начиная чуть ли не с ОС. Библиотеки, которые широко используются, можно пересчитать по пальцам одной руки. Поэтому неудивительно, что в интернете можно найти целую кучу реализаций RPC, похожих на Microsoft DCOM. Данная статья, на первый взгляд, выглядит еще одной реализацией библиотеки удаленного доступа к объектам, однако данная библиотека обладает рядом особенностей, делающих ее описание заслуживающим внимания. Ее отличают от других высокая производительность, возможность легкой смены транспортного уровня, реализация без использования внешних утилит и совместимость со старыми компиляторами, например, VC++ 6.
Ключевые слова: |
28.12.2008
Модульное тестирование: 2+2 = 4?
|
|
Аннотация: У нас, в харьковском GlobalLogic’е, появилась традиция: проводим мы неформальные сходки, обсуждаем темы околоайтишные... На одной из таких сходок, посвященной Agile/не Agile процессам, встал вопрос Unit Test’ов. Оказывается, модульное тестирование выглядит очень просто в примерах из книг, но когда мы начинаем применять его на проектах, которые достались нам по наследству, на проектах с нетривиальной многоуровневой архитектурой, тут же сталкиваемся с проблемами.
Посмотрели мы, на это дело, и решили создать статью, посвященную наиболее распространенным проблемам, с которыми сталкиваются наши разработчики.
Ключевые слова: Unit Testing |
28.12.2008
HOWTO: Свой поток ввода-вывода
|
|
Аннотация: Библиотека ввода-вывода языка С++ — достаточно спорное явление. Но, так или иначе, она существует, иногда используется, и надо как-то с этим жить.
Ключевые слова: stream |
28.12.2008
[ANN]once — #3'2008
|
|
Аннотация:
http://www.gocosmos.org/
Ключевые слова: |
#4
|
25.04.2009
От редакции
|
|
Аннотация: Поскольку я, кроме всего прочего, являюсь модератором форума RSDN «Священные войны», хочется отреагировать на не то печальное, не то смешное явление.
Ключевые слова: |
26.04.2009
Общий метод формирования сообщений об ошибках при работе с базами данных и его использование для БД Firebird
|
|
Аннотация: При разработке программ, работающих с БД, важным моментом является обработка ошибочных ситуаций и информативность сообщений, предназначенных для конечного пользователя. При сложной структуре БД формирование таких сообщений для каждой отдельной ситуации может требовать довольно значительных усилий. Обработка ошибок, основанная на анализе структуры БД, и с учётом различных специфических ситуации позволит уменьшить трудозатраты и повысить качество программного обеспечения.
Ключевые слова: |
26.04.2009
Программирование расширения ROM BIOS персонального компьютера
|
|
Аннотация: Расширение PCI ROM BIOS содержит программные компоненты, не входящие по разным причинам в системный BIOS. В статье рассмотрена методика разработки расширения PCI ROM BIOS, упрощающая процесс разработки и уменьшающая количество потенциальных ошибок. Предлагаемая методика актуальна как для PCI-устройств, так и для устройств PCI-Express, т.к. их программная модель конфигурации и расширения ROM BIOS совместима с программной моделью PCI-устройств.
Ключевые слова: |
26.04.2009
Шаблон разработки асинхронного программирования
|
|
Аннотация: В этой статье создается новый шаблон асинхронного программирования, предлагаемый к использованию вместо рекомендуемого Microsoft шаблона асинхронного программирования основанного на событиях.
Ключевые слова: Asynchronous Programming Design Patterns, IAsyncResult, AsyncOperation, AsyncOperationManager, SynchronizationContext, Event-based Asynchronous Pattern, Multithreading |
26.04.2009
Отладка и оптимизация многопоточных OpenMP-программ
|
|
Аннотация: Задача знакомства программистов с областью разработки параллельных приложений становится все актуальней. Данная статья является кратким введением в создание многопоточных приложений, основанных на технологии OpenMP. Описаны подходы к отладке и оптимизации параллельных приложений.
Ключевые слова: |
26.04.2009
Обобщенный Model-View-Controller
|
|
Аннотация: Статья продолжает одноименный материал, опубликованный ранее, рассмотрением ошибок, допущенных в реализации обобщенного Model-View-Controller. Вместе с тем работа рассматривает общие проблемы и решения в области безопасного программирования, в частности: потоковую безопасность, ликвидацию утечки памяти, безопасность инициализации и защитное программирование на основе контрактных спецификаций – поэтому предполагается, что статья будет интересна всем, кто заинтересован в повышении качества своих приложений. В описании приводятся реализации шаблонов проектирования Observer, Command, Model-View-Presenter. Примеры построены на модульном тестировании и используют аспектно-ориентированное программирование. Предполагается наличие у читателя знания языка программирования Java 5 и модульного тестирования на основе платформы JUnit.
Ключевые слова: generic,mvc,java,junit,tdd,thread safety,memory leaks,weak reference,safe construction,concurrent,atomic,cas,observer,mvp,command,aop,aspectj,dbc,annotation,oval |
31.01.2009
Тестирование в Python – объектно-ориентированный и процедурный подход
|
|
Аннотация: В настоящей статье кратко описываются особенности тестирования программ на языке Python c использованием библиотечного модуля untittest, а также разработанный автором модуль funtest – процедурно-ориентированный интерфейс для модуля unittest.
Ключевые слова: |