На свете существует много разных полезных редакторов, которые помогают авторам статей готовить контент к публикации на веб-ресурсах. Но к сожалению, очень часто бывает что лучшее – враг хорошего, и приходится пользоваться не очень удобными программами которые вместо того чтобы взять и заточить «свой» редактор под нужные цели. Мой подход к этому вопросу как раз заключается в написании своего редактора. В этом посте, я хочу рассказать про то, как и какие фичи я реализовал.
Когда в коде фигурирует пара вызовов BeginXxx()/EndXxx(), это приемлимо. Но что если алгоритм требует несколько таких вызовов подряд, то количество методов (или анонимных делегатов) преумножится и код станет менее читабельным. К счастью, эта проблема решена как в F# так и в C#.
Иногда приходится писать тесты для событий, и делать это неудобно – очень быстро начинают плодиться дополнительные методы и поля. О том, как тестировать события в C# я и хочу рассказать.
Амперсанд является вещью присущей в основном латинской типографике, но тем не менее штука это красивая. В этом коротком очерке я расскажу о том, как можно использовать амперсанд на веб-страницах как в текстовой, так и в нарисованной (pre-rendered) форме.
Есть такая идея (а пока это только идея) сделать study group посвященную BizTalk. Почему именно этой технологии? Вот несколько причин:
Компетенции в этой технологии мало у кого есть, поэтому знание (хотя бы поверхностное) – козырь в резюме
Есть шанс познакомиться с концепцией EDI
Можно поразбираться в протоколах и стандартах B2B
Можно изучить разные стороны дотнета, в частности Workflow Foundation, WCF, и т.д.
Заодно можно прихватить чуть-чуть доменной специфики, например из финансов.
Знаю что технология не самая популярная, но все же, заказы в этой области тоже бывают (хоть и редко). Формат я предлагаю такой – читаем какую-нть литературу (скажем Foundations of BizTalk), смотрим вебкасты и лабы, потом где-нть на выходных созваниваемся по Скайп, обмениваемся опытом, обсуждаем кто чего достиг, делимся самописными адаптерами, ну и все такое.
Если вас заинтересовало, отметьтесь ниже. Или пишите в личку.
Проблема связанности в архитектуре приложений в последнее время получила очень много огласки, и породила большое количество фреймворков DI-характера и приложений для статического разбора и «умного рефакторинга». Об одном таком приложении под названием NDepend я и хочу рассказать.
Несмотря что «нагуглить» в интернете можно все, для новых технологий это далеко не так. В частности, когда я захотел использовать достаточно новые технологии Direct2D (не бойтесь, это никак не связано с DirectX 7) и DirectWrite в своем .Net-приложении, то столкнулся с проблемой что примеров взаимодействия этих библиотек и .Net нет. Поэтому пришлось самому покопаться. Upd.: переношу в C++ т.к. дотнетчикам явно не интересно.
Недавно в моем WPF-приложении снова возникла потребность в ClearType постпроцессинге, т.е. добавлении ClearType-образных свойств графике которая изначально рендерится «обычным» способом. Снова был выбран unmanaged код (Intel C++ stack, OpenMP), но в этот раз взаимодействовать захотелось в 64-битной среде. Вот рассказ о том, насколько это было «весело».
Любовь к шрифтам – это болезнь. Скорее всего большинству людей этого не понять – ведь мы живем в стране где вывески и витрины оформлены с такой безграмотностью что порой хочется достать фотоаппарат и сфотографировать это «счастье» да выложить в интернет дабы показать до чего может довести человеческое безразличие. Поэтому человек у которого на столе лежит каталог FontFont и который иногда бурчит что де «неплохо еще вот этот шрифт купить» воспринимается порой как немного «не в себе». Тем не менее, изрядная доля моего времени уходит на то чтобы потеоритизировать на тему того, какие шрифты где уместны, и как выработать свой уникальный стиль для презентаций, веб-типографики и печатной типографики. В этом посте – несколько мыслей насчет того что работает/не работает, и что бы хотелось попробовать.
Совершенно очевидно, что в рунете не хватает ресурса в стиле CodeBetter, то есть мощного тематического блога который покрывал бы тематику разработки в стеке Microsoft. Приходят на ум только блоги на Хабре и блоги GotDotNet. На данный момент, GotDotNet практически мертв, в то время как на Хабре появилась бурная активность – по крайней мере кол-во оценок на статью почти доходит до 100, что весьма неплохо. Google Analytics показывает что кол-во посещений блогов GDN (я считаю только свои посты) упало с примерно 400 в день в июле до 100-300 сейчас. При этом отношение PR: интересное на GotDotNet продолжает расти.
Стоит ли делать еще один сайт с подточенным CMS?
Уже есть опыт создания независимого офлайн-комьюнити, так почему же не сделать и онлайн?
На данный момент на Хабре и GDN ужасно работает поиск. И страницы вроде бы плохо индексируются.
Нет четкого разграничения по технологиям и методологиям. Хочется иметь список кнопок на которые можно нажать и получить отфильтрованный контент. Например:
Технологии:<br/>
<br/>
Нужна возможность реально оценивать статьи по содержанию, так, как это делается на CodeProject
Хочется чтобы был печатный вариант, чтобы можно было скомпоновать сборник. Примерно как Habradigest. (Кстате, мне нравиться Habradigest, в основном из-за того что люблю PDFы с нормальной версткой.)
Нужна поощрительная система. CodeProject например дает призы в виде книг и платных компонентов тем, кто пишет популярные статьи. Популярные – это не всегда хорошие, конечно.
Нужно вовлекать в диалог не только разработчиков, но и бизнес.
Можно улучшать те ресурсы что уже есть. На данный момент, единственным таким ресурсом я вижу Хабр. Если кто не согласен – подскажите, что есть еще.
Непонятно пойдет ли аудитория на какой-то другой сайт. Возможно и пойдет, если сайт будет кардинально лучше чем уже имеющиеся. Но это потребует очень много усилий от создателей.
Возможно количество разработчиков, заинтересованных в стеке Microsoft действительно очень мало? Ведь не для кого не секрет что на рынке перевешивает Java, а большинство позиций в .Net на данный момент ложатся на Asp.Net (MVC) разработку. Будут ли востребованы статьи по BizTalk, например, когда даже у крупных аутсорсеров не получается выигрывать контракты на разработку под эту платформу?
И может все-таки не стоит делать Microsoft-centric ресурс? Ведь полно и других сред разработки – зачем ограничивать кругозор?
Вот такие мысли вслух. Если у вас есть идеи насчет того, как лучше поступить—пишите.
ИМХО, вместо того, чтобы вкручивать собеседникам мозги насчет заумной семантики event’ов и делегатов или же спрашивать когда написание new IEntity() легально, можно задать вопрос попроще – например “приведите пример необычного поведения или использования языка C#”. Вот несколько примеров, которые пришли в голову в качестве возможных ответов.
Я делаю много презентаций, и часто нужно показать код «по частям», то есть показать ход мысли в процессе последовательного написния кода. К сожалению, PowerPoint не настроен для таких целей. Поэтому я решил написать расширение для PowerPoint 2007 которое автогенерировало бы последовательность слайдов с «прогрессивной разверткой» кода и комментариев. Собственно об этом и будет рассказ.
Продолжая тему DI/IoC с использованием Unity (часть 1, 2), мы рассмотрим как можно им воспользоваться в ситуациях, когда объект создаем не мы, а также посмотрим на применение фреймворка при unit-тестировании.
Недавно наткнулся на CodeProject’е на статью Марка Клифтона, посвященную поиску зависимостей между проектами в солюшне. К сожалению самого графа представленная программа не генерилровла и поэтому, будучи вдохновленным подходом Евгения Кучерука к визуализации содержимого Windsor-контейнера решил быстренько реализовать тот же функционал для зависимостей между проектами. Вот, собственно, что получилось.
Тема DI/IoC достаточно простая, но в сети очень сложно найти хорошее описание того, как это работает и зачем это нужно. Вот моя попытка, с использованием Unity. Хорошо ли объяснена тема – судить вам.
В .net-е есть несколько серьезных AOP-фреймворков, но ни один их них не «рулит» так как PostSharp. Будучи большим фанатом (а также пользователем) сего фреймворка, хочу представить сообществу несколько «рецептов». Некоторые из них я создал сам, другие нашел в интернете и адаптировал под свои нужды. Тут я покажу несколько самых «сочных» рецептов. А если вы не знакомы с фреймворком или идеологией AOP, могу порекоммендовать вот этот вебкаст. Итак, начнем?
Класс System.Drawing.Bitmap очень полезен в инфраструктуре .NET, т.к. позволяет считывать и сохранять файлы различных графических форматов. Единственная проблема – это то, что он не очень полезен для попиксельной обработки – например если нужно перевести битмап в ч/б. Под катом – небольшой этюд на эту тему.
Важно: этот подход устарел, теперь можно просто использовать DirectWrite и получать все плюшки OpenType. Пример конкретной реализации можно найти вот тут.
Введение
Как известно, в WPF есть достаточно мощная встроенная система типографики. К сожалению, эта система ориентирована в основном на работу с документами и, тем самым, все типографические изыски вроде поддержки OpenType невозможно использовать для какого-нибудь простого контрола вроде Label. Но, не смотря ни на что, есть все-таки возможность получить качественную отрисовку текста – просто нужно немного помучаться.