.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().
В этом посте мы реализуем расширение для 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 и будет посвящена техническим аспектам социальных сервисов — таких как лайки, френдинг, выдача бейджей, аналитика. В рамках мероприятия мы вместе с гостями планируем обсудить различные технические аспекты их реализации: от архитектуры до хайлоада и возможных уязвимостей.

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

Подробности и регистрация тут.
Программирование → Runtime-модификация элементов таблицы виртуальных методов из песочницы
Начну пожалуй с повода для холивара.
Мне очень нравится Object Pascal, точнее его реализация от Borland. Да, да… Delphi. Не новомодные реализации, ничем не блещущие на фоне конкурентов, а тот самый, ТруЪ, до седьмой версии включительно.
Не буду расписывать о шикарностях классов в сабже, а тем более о том насколько бледно выглядел на его фоне c++, топик сегодня не о том.
Рассказать же хочу о технике, которая в свое время неплохо помогла мне со товарищи в нелегком деле оптимизации проекта.
Мне очень нравится Object Pascal, точнее его реализация от Borland. Да, да… Delphi. Не новомодные реализации, ничем не блещущие на фоне конкурентов, а тот самый, ТруЪ, до седьмой версии включительно.
Не буду расписывать о шикарностях классов в сабже, а тем более о том насколько бледно выглядел на его фоне c++, топик сегодня не о том.
Рассказать же хочу о технике, которая в свое время неплохо помогла мне со товарищи в нелегком деле оптимизации проекта.
symfony framework → Symfony 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
Будем рады видеть новых участников.
Обсуждаем:
— 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

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

Разработчики должны иметь возможность легко искать, ориентироваться и понимать код, в котором работают. Мы изучили юзабилити и пришли к выводу, что разработчик проводит много времени читая, пересматривая и исследуя существующий код, вместо написания нового кода.
Редактор VS 2010 добавляет новые возможности, который позволяют более продуктивно искать и ориентироваться в коде, а также проще понимать, как код используется в проекте.
Разработка под Apple iOS → Почему я люблю copy-paste при написании кода?
Не только люблю, но и всячески советую использовать этот подход. “Избегайте copy-paste любыми возможными способами!” – сколько раз я это слышал – столько-же раз умилялся. Если начать расспрашивать автора подобных заявлений об этих самых “всех возможных способах”, получите типичную жевачку про “паттерны проектирования” и инкапсуляцию.
Всё дело в том, что сразу писать программу паттернами проектирования не имеет никакого практического смысла.
Всё дело в том, что сразу писать программу паттернами проектирования не имеет никакого практического смысла.
Веб-разработка → Хранение кода в бд или собираем код по кирпичикам
Данная статья написана Napolsky. По известным причина он не смог ее опубликовать. Если статья вам понравилась — поощрите автора известным способом.
В этом топике я расскажу об одном разрабатываемым мною подходе в веб программировании, сердцем которого является хранение кода в базе данных. Несколько замечаний по дальнейшему тексту:
- Под словосочетанием «код страницы» имеется ввиду исполняемый (php) код
- Во всех вопросах, касательно производительности, имеется ввиду чистое время генерации страницы, без использования акселлераторов, систем кеширования и т д
Как все начиналось
Для того чтобы понять, а «зачем оно собственно надо» быстренько пройдем тот путь, который и привел меня к хранению кода в бд. Так сложилось, что свой путь в веб программировании я начинал не с написания каких-либо скриптов или модулей для существующих систем, а сразу с написания собственного движка сайта с абсолютного нуля. К этому моменту я имел двухлетний опыт программирования на C++ и, конечно же, по накатанной пытался строить свой веб движок на ООП (правда в то время в PHP от ООП было одно название :) ). В пределах разумного, я очень люблю свои «велосипеды». Особенно большие. И прежде чем воспользоваться готовым решением, всегда задаюсь вопросом «а нельзя ли написать получше?».
Софт → UPD: Плагин Wi2Geo для популярных мессенджеров QIP, Miranda и Skype + исходники
Буквально вчера мы выпустили плагин для QIP'а. С помощью этого плагина вы можете автоматически определять свое местоположение, по желанию отображать местоположение в статусе или быстро отправлять свое местоположение собеседнику. А если вы зарегистрированы в сети Wi2Geo (http://wi2geo.ru/), то плагин будет автоматически обновлять ваше местоположение, для этого нужно просто зайти на страницу настроек модулей и настроить авторизацию. Кстати, там же можно управлять и отображением местоположения в статусе:

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

На самом деле, этот же плагин, и с тем же функционалом, работает для Miranda и Skype.
Сам плагин можно скачать отсюда: wi2geo.ru/updates/GeoQip/Wi2Geo.Installer.msi
Также, в процессе публикования плагина мы столкнулись с тем, что политика форума QIP'а предполагает, что нужно выкладывать
исходники, мы немного заморочились и таки выложили исходники к нашему плагину на гуглокоде: code.google.com/p/wi2geoplugin/
Лицензия MIT (по-моему, самая либеральная лицензия), так что можете делать с ними вообще что хотите.
При небольшом изменении исходников, можно добавлять функционал WiFi-навигации практически в любое приложение, поддерживающее
плагины, ну, или в свое собственное.

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

На самом деле, этот же плагин, и с тем же функционалом, работает для Miranda и Skype.
Сам плагин можно скачать отсюда: wi2geo.ru/updates/GeoQip/Wi2Geo.Installer.msi
Также, в процессе публикования плагина мы столкнулись с тем, что политика форума QIP'а предполагает, что нужно выкладывать
исходники, мы немного заморочились и таки выложили исходники к нашему плагину на гуглокоде: code.google.com/p/wi2geoplugin/
Лицензия MIT (по-моему, самая либеральная лицензия), так что можете делать с ними вообще что хотите.
При небольшом изменении исходников, можно добавлять функционал WiFi-навигации практически в любое приложение, поддерживающее
плагины, ну, или в свое собственное.