войти зарегистрироваться

.NETРеализация Code Action с помощью Roslyn

Roslyn Services API позволяют легко реализовывать расширения, которые находят и устраняют проблемы в коде прямо в Visual Studio. Roslyn Services API доступно как часть Roslyn CTP.

В этом посте мы реализуем расширение для Visual Studio, которое детектирует вызовы метода Count() у Enumerable, после чего результат проверяется на равенство больше нуля, например, someSequence.Count() > 0. Проблема, заключающаяся в коде, в том, что Count() должен пройтись по всей последовательности, прежде чем вернуть результат. Более правильным подходом в данном случае является вызов метода Enumerable.Any().

Чтобы исправить это, мы реализуем CodeIssueProvider, детектирующий проблему, и CodeAction, который заменяет условие на вызов Enumerable.Any(), как и требуется. Т.е. наш CodeAction изменит что-то типа someSequence.Count() > 0 на someSequence.Any().

Персональные блоги Код и кофе #4 в Петербурге: технические аспекты реализации социальных сервисов #ccffee

Четвёртая и последняя в этом году встреча «Код и кофе» состоится в четверг 15 декабря в 20:00 и будет посвящена техническим аспектам социальных сервисов — таких как лайки, френдинг, выдача бейджей, аналитика. В рамках мероприятия мы вместе с гостями планируем обсудить различные технические аспекты их реализации: от архитектуры до хайлоада и возможных уязвимостей.

image

Подробности и регистрация тут.

ПрограммированиеRuntime-модификация элементов таблицы виртуальных методов из песочницы

Начну пожалуй с повода для холивара.
Мне очень нравится Object Pascal, точнее его реализация от Borland. Да, да… Delphi. Не новомодные реализации, ничем не блещущие на фоне конкурентов, а тот самый, ТруЪ, до седьмой версии включительно.
Не буду расписывать о шикарностях классов в сабже, а тем более о том насколько бледно выглядел на его фоне c++, топик сегодня не о том.

Рассказать же хочу о технике, которая в свое время неплохо помогла мне со товарищи в нелегком деле оптимизации проекта.

symfony frameworkSymfony Code'n'Coffee Minsk (Belarus) Jan 2011

Всем привет. Сообщаем вам о том, что в субботу(8 января 2011) пройдет очередная встреча symfony-стов Беларуси.

Будем рады видеть новых участников.

Обсуждаем:

— Symfony и ваш workflow
— Symfony2 (обзор PR4 и уже существующих бандлов)
— Разработка с применением TDD/BDD (обзор инструментов)

Богатый опыт работы с symfony не обязателен, но желательно прочесть… чтобы не чувствовать себя белой вороной (например, полистайте www.symfony-project.org/jobeet/1_4/Doctrine/en/ или другую документацию на этом сайте)

Возможно и другие темы, участники! предлагайте!

Примерная продолжительность встречи 3-4 ч.

Где: Минск, Беларусь ул. Немига, 12 => Jack club

Когда: 8 января 2011 с 14:00 до 18:00

Страница мероприятия: http://sledui.ru/e/26

Я пиарюсь Каждой визитке свой QR-код


Вопрос передачи личной контактной информации был, есть и будет актуальным. Как происходит передача контактов в современном мире?
Самый распространенный способ – начитка циферок вашего номера собеседнику. Последний вносит информацию в бумажный архив или в телефон. В бумажках есть большой минус — слабая каталогитизация и неудобно реализованный поиск. С телефоном проще, но все-равно это время. Необходимо достать телефон из кармана, барсетки, рюкзака (или где еще носят мобильники?), разблокировать и только потом панично набирать циферки. А в спешке пальчики не слушаются и тыкают куда попало.

GoogleВеб-метрика от Google

image
В рамках проекта «Давайте сделаем интернет быстрее», Google опубликовал некоторые статистические данные о размере, количестве ресурсов и других показателях страниц во Всемирной паутине. Статистика была собрана из выборки в несколько миллиардов веб-страниц в процессе анализа и индексирования «движком» поискового гиганта.
При обработке этих страниц алгоритмом принимались во внимание не только основные html¬-страницы сайтов, но и производились попытки обнаружить и обработать остальные ресурсы, размещаемые на сайтах: таблицы стилей, скрипты и изображения.

Visual StudioПоиск и навигация по коду в VS 2010

image
Разработчики должны иметь возможность легко искать, ориентироваться и понимать код, в котором работают. Мы изучили юзабилити и пришли к выводу, что разработчик проводит много времени читая, пересматривая и исследуя существующий код, вместо написания нового кода.

Редактор VS 2010 добавляет новые возможности, который позволяют более продуктивно искать и ориентироваться в коде, а также проще понимать, как код используется в проекте.

Разработка под Apple iOSПочему я люблю copy-paste при написании кода?

Не только люблю, но и всячески советую использовать этот подход. “Избегайте copy-paste любыми возможными способами!” – сколько раз я это слышал – столько-же раз умилялся. Если начать расспрашивать автора подобных заявлений об этих самых “всех возможных способах”, получите типичную жевачку про “паттерны проектирования” и инкапсуляцию.

Всё дело в том, что сразу писать программу паттернами проектирования не имеет никакого практического смысла.

Веб-разработкаХранение кода в бд или собираем код по кирпичикам

Данная статья написана Napolsky. По известным причина он не смог ее опубликовать. Если статья вам понравилась — поощрите автора известным способом.

В этом топике я расскажу об одном разрабатываемым мною подходе в веб программировании, сердцем которого является хранение кода в базе данных. Несколько замечаний по дальнейшему тексту:
  • Под словосочетанием «код страницы» имеется ввиду исполняемый (php) код
  • Во всех вопросах, касательно производительности, имеется ввиду чистое время генерации страницы, без использования акселлераторов, систем кеширования и т д

Как все начиналось


Для того чтобы понять, а «зачем оно собственно надо» быстренько пройдем тот путь, который и привел меня к хранению кода в бд. Так сложилось, что свой путь в веб программировании я начинал не с написания каких-либо скриптов или модулей для существующих систем, а сразу с написания собственного движка сайта с абсолютного нуля. К этому моменту я имел двухлетний опыт программирования на C++ и, конечно же, по накатанной пытался строить свой веб движок на ООП (правда в то время в PHP от ООП было одно название :) ). В пределах разумного, я очень люблю свои «велосипеды». Особенно большие. И прежде чем воспользоваться готовым решением, всегда задаюсь вопросом «а нельзя ли написать получше?».

СофтUPD: Плагин Wi2Geo для популярных мессенджеров QIP, Miranda и Skype + исходники

Буквально вчера мы выпустили плагин для QIP'а. С помощью этого плагина вы можете автоматически определять свое местоположение, по желанию отображать местоположение в статусе или быстро отправлять свое местоположение собеседнику. А если вы зарегистрированы в сети Wi2Geo (http://wi2geo.ru/), то плагин будет автоматически обновлять ваше местоположение, для этого нужно просто зайти на страницу настроек модулей и настроить авторизацию. Кстати, там же можно управлять и отображением местоположения в статусе:

Wi2Geo QIP

Быстро послать координаты собеседнику можно простой кнопкой:

image

На самом деле, этот же плагин, и с тем же функционалом, работает для Miranda и Skype.
Сам плагин можно скачать отсюда: wi2geo.ru/updates/GeoQip/Wi2Geo.Installer.msi

Также, в процессе публикования плагина мы столкнулись с тем, что политика форума QIP'а предполагает, что нужно выкладывать
исходники, мы немного заморочились и таки выложили исходники к нашему плагину на гуглокоде: code.google.com/p/wi2geoplugin/

Лицензия MIT (по-моему, самая либеральная лицензия), так что можете делать с ними вообще что хотите.
При небольшом изменении исходников, можно добавлять функционал WiFi-навигации практически в любое приложение, поддерживающее
плагины, ну, или в свое собственное.