Обновить
mxc@mxcread⁠-⁠only

Пользователь

Отправить сообщение

Шпора на контрольную по теме «Класс Stream и произодные от него в .Net»

Время на прочтение4 мин
Охват и читатели4.5K
Даже когда я уже неплохо умел педалить, я никак не мог запомнить иерархию наследования и то, как использовать классы вроде Stream, StreamWriter, HttpWriter в .Net. Решил это простым способом — выписал их все (основные), написал пару слов о каждом.
Для тех, кому тема знакома совсем ничего ничего нового тут не будет.
Читать дальше →

Опыт использования GPU для финансового моделирования

Время на прочтение5 мин
Охват и читатели8.4K
В этой статье я вкратце описываю свой опыт оптимизации одной задачи перебора, начиная от однопроцессорного алгоритма к многопроцессорному и к версии на OpenCL.



Читать дальше →

IoC, DI, IoC-контейнер — Просто о простом

Время на прочтение4 мин
Охват и читатели505K
Думаю сейчас слова IoC, DI, IoC-контейнер, как минимум у многих на слуху. Одни этим активно пользуются, другие пытаются понять, что же это за модные веяния.

На данный момент, на эту тему уже довольно сказано, написано, в том числе и на хабре, но как раз из-за обилия информации сложно найти действительно полезный контент. Кроме того, данные понятия часто смешивают и/или путают. Проанализировав множества материалов я решил изложить вам свое видение предмета.
Читать дальше →

Линейная алгебра для разработчиков игр

Время на прочтение19 мин
Охват и читатели820K
Эта статья является переводом цикла из четырёх статей «Linear algebra for game developers», написанных David Rosen и посвящённых линейной алгебре и её применению в разработке игр. С оригинальными статьями можно ознакомиться тут: часть 1, часть 2, часть 3 и часть 4. Я не стал публиковать переводы отдельными топиками, а объединил все статьи в одну. Думаю, что так будет удобнее воспринимать материал и работать с ним. Итак приступим.
Читать дальше →

Ненавязчивая валидация в ASP.NET MVC3

Время на прочтение5 мин
Охват и читатели9K
Не так давно я начал разрабатывать сайты на ASP.NET MVC и в одном из моих проектов у меня появилась потребность в нестандартном валидаторе, который проверял бы обязательность заполнения элемента формы в зависимости от значения другого элемента. Именно об этом я и хочу рассказать.

Сайт разрабатывался на автомобильную тематику. Необходимость в валидаторе появилась на форме регистрации. Пользователь может зарегистрироваться как частное лицо и как автодиллер. Если пользователь хочет зарегистрироваться как автодиллер, то ему необходимо заполнить несколько дополнительных обязательных полей. Можно было конечно сделать регистрацию в несколько этапов, но хотелось чтобы весь процесс регистрации проходил за один шаг.
Читать дальше →

Создание Push Notification сервиса на основе WCF REST

Время на прочтение5 мин
Охват и читатели13K
В качестве вступления

Модель push-нотификаций является распространённой моделью для обмена сообщениями. Она подразумевает не получение информации по запросу, а немедленную её передачу отправителю при появлении этой информации на сервере.

Стандартный подход с ипользованием wsDualHttpBinding

Возможность создания push-механизма предоставляет и WCF. Этот фреймворк позволяет создать push-сервис с использованием wsDualHttpBinding контракта. Такой контракт позволяет для каждого запроса определить метод обратного вызова, который будет вызван при наступлении какого-либо события.
Если применить этот механизм к системе обмена сообщениями, то получим следующий алгоритм:
Читать дальше →

Twitter бот на C#

Время на прочтение3 мин
Охват и читатели8.4K


Здравствуйте, уважаемые пользователи Хабрахабра.
В этой статье я хочу рассказать вам об очень простом и полезном боте для Twitter, который поможет контролировать состояние Windows-сервера (Занятое место на дисках, процент загрузки CPU, RAM).

Предисловие


Я работаю системным администратором на одном консервном заводе. Так как фирма не профильная, приходится быть администратором и программистом в одном лице.
Причина создания этого бота — быстро заканчивающееся место на жестком диске сервера из-за ежедневных резервных копий баз 1С.
Я долго размышлял о возможных вариантах подобного контроля и пришёл к выводу, что Твиттер самое удобное решение для этого. Итак, от слова к делу.
Читать дальше →

Удобная отладка Windows служб

Время на прочтение2 мин
Охват и читатели16K
Отладка Windows Service приложений не такая тривиальная задача как кажется. Проблема в том, что при отладке этого типа приложений нельзя воспользоваться стандартными средствами Visual Studio такими как точки останова (breakpoints) и прочими полезными инструментами. Всё из-за того, что Windows Service приложение не может быть зыпущено по F5 прямо из Visual Studio. Всё же, MSDN предлагает нам несколько способов для их отладки. Скорее всего многие разработчики даже и не сталкивались с ними до тех пор, пока не стали создавать свою первую службу. Это использование записей в журнал событий и подключение к процессу. Оба этих метода хорошо описаны в MSDN, но они позволяют произовдить отладку только уже запущенной службы. Из-за этого код, который производит сам запуск службы, в методе OnStart(), нельзя протестировать.

Ниже я хочу рассказать о способе которым можно обойти это ограничение, и тестировать свой сервис как обычное консольное приложение. И, следовательно, воспользоваться всем тем, что предлагает нам для этого Visual Studio.
Читать дальше →

Учимся программировать игры на XNA для Windows Phone 7 «Mango» — начало

Время на прочтение9 мин
Охват и читатели18K
В свете недавнего анонса HTC о скором появлении телефонов на Windows Phone 7 «Mango» на российском рынке, особую актуальность приобретает разработка приложений для Windows Phone — ведь именно сейчас есть возможность насытить Windows Phone Marketplace приложениями, близкими нашему русскому сердцу. Это одна из причин, по которой мы сегодня (5 сентября) проводим Windоws Phone 7 Camp, и призываем вас приходить, смотреть онлайн-трансляцию и браться за Visual Studio прямо сейчас.



На этом мероприятии я только что рассказал про программирование игр на XNA для телефона, и в этой связи хотел бы посвятить этому несколько статей на хабре. В сегодняшней статье я покажу вам, как написать простую игру «морской бой» — а в следующих статьях мы добавим в неё звук, интеграцию XNA с Silverlight, использование сенсоров (акселерометра) и т.д. Для любителей смотреть видео — процесс написания игры также описан в этом скринкасте.

Читать дальше →

Пишем вирус на c#

Время на прочтение5 мин
Охват и читатели125K
Доброго времени суток читатели Хабра!
В этой статье я хотел бы поделиться опытом написания вредоносной программы на языке C# в Visual Studio. Для подтверждения своих слов я выложу пример полученного ПО для проверки.
Цели:

  • Написать вредоносную программу, которую не увидят антивирусы
  • Использовать только средства языка C#

Нам понадобится:

  1. Visual Studio 2005-2010 (я использовал 2010 Ultimate)
  2. Знания и опыт работы на языке c#
  3. Компьютер для опытов

Читать дальше →

Интеграция ASP.NET MVC 3 приложений с Facebook OAuth API. Часть 2: Кнопка Like

Время на прочтение3 мин
Охват и читатели1.9K
Сейчас на очень многих сайтах есть кнопка Like от Facebook. Если её нажать, то у пользователя на странице будет сообщение, что ему нравится данная страница. Это видят его друзья и они могут пройти по этой ссылке и попасть на ваш сайт. Неплохое продвижение сайта, не так ли?

Сейчас посмотрим, как поместить такую кнопку на ваш сайт.

Читать дальше →

Атака на отказ в обслуживании методом slow HTTP POST

Время на прочтение5 мин
Охват и читатели43K
Доброго времени суток, уважаемые хабровчане!
Я хочу рассказать вам об относительно новом и интересном, на мой взгляд, механизме атаки на отказ в обслуживании — Slow HTTP POST.
Поиск показал отсутствие на хабре информации по теме, что несколько удивило меня, и я решил восполнить это досадное упущение. Тема не нова, но, как показали мои небольшие исследования, более чем актуальна. Забегая вперед, скажу, что полученные мной результаты позволяют говорить о существовании широко доступной технологии, позволяющей с одного компьютера с небольшим каналом «укладывать» небольшие и средние сайты, а при использовании нескольких машин с повсеместно распространенным сейчас скоростным доступом в Интернет причинить немало проблем и более серьезным проектам. Всех заинтересовавшихся покорнейше прошу пожаловать под хабракат.
Читать дальше →

Scrum и управление требованиями в web-разработке

Время на прочтение6 мин
Охват и читатели22K
Про scrum написано много, но примеры реального применения встречаются не так часто. Некоторое время я занимался внедрением scrum в потоковой web-разработке, хотел бы поговорить на эту тему и поделиться своими мыслями.

Бум интереса к этой методологии прошел, однако до сих пор многие молодые команды легко очаровываются теоретической магией scrum, обещанием щелкать новые требования, как орешки, и не морочиться по ТЗ, бросаются внедрять на своем производстве и тут же натыкаются на трудности. Scrum вообще родился как методология разработки ПО, если вдруг кто забыл, и для успешного использования в web-разработке требует некоторой настройки. Это отдельный вопрос, в этой заметке я хотел бы затронуть другую тему и предостеречь от очевидных, в общем-то, ошибок, связанных с формированием требований к проекту. В любом описании методологии по запросу в Google говорится про важность роли scrum master'a и изложении требований к проекту в виде историй, но никто не говорит о том, откуда берутся требования, и нужно ли вообще их реализовывать. Без понимания этого момента сделать что-то путное вряд ли получится, и методология тут ни при чем.
Читать дальше →

Сравнительное тестирование производительности платформ .Net, Java и Mono

Время на прочтение6 мин
Охват и читатели27K

Идея Java vs .Net vs Mono


Сама идея создания подобного теста появилась из-за, постоянно не дававшего мне покоя, противопоставления .Net и Java, и я решил максимально объективно оценить реальную производительность данных платформ, затем в поле зрения попала интересная opensource разработка Mono (свободная реализация .Net), и было решено включить и её, а заодно прогнать тесты под Linux. Соответственно были разработаны две аналогичных программы тестирования на языках C# и Java. Далее будут приведены фрагменты исходников на C#, полный исходный код можно получить из репозитария Google Code:
http://code.google.com/p/dotnet-java-benchmark/source/checkout
Целью данного теста является сравнение производительности различных виртуальных машин, выполняющих по сути один и тот же код на одном и том же компьютере. В соревновании принимали участие следующие платформы:
  • Microsoft .Net 4.0 (Windows 7)
  • Oracle Java SE Version 6 Update 24 (Windows 7)
  • Oracle Java SE Version 6 Update 24 (Linux 2.6.35.27 Ubuntu 10.10)
  • Novell Mono 2.11 (Linux 2.6.35.27 Ubuntu 10.10)
Читать дальше →

Linq To Entities vs. Linq To Objects на примере группировки

Время на прочтение3 мин
Охват и читатели6.4K
LINQ — удобная, красивая, но при этом довольно коварная абстракция. Самые неожиданные вещи обычно происходят на стыке какой-либо реализации LINQ и LINQ To Objects. Сегодня на одном примере я рассмотрю совместную работу LINQ To Entities (Entity Framework) и LINQ To Objects.

Читать дальше →

Declarative HTML Helpers

Время на прочтение3 мин
Охват и читатели14K

@functions @helpers


Большинство хелперов в asp.net mvc 3 это методы-расширения класса System.Web.Mvc.HtmlHelper.
Однако не всегда удобно создавать отдельный статический класс для 2-3 хелперов необходимых в одной вьюшке. И совсем неудобно создавать хелперы возвращающие большие блоки html-кода: ни подсветки синтаксиса, ни интеллисенса, ни прочих плюшек.

Для решения этих проблем в Razor есть два замечательных блока. Они позволяют создавать хелперы непосредственно в .cshtml-файлах.

image
Круто! но зачем это нужно?

Ускоряя Stackoverflow.com

Время на прочтение6 мин
Охват и читатели4.1K
Примерно, 3 недели назад я прочёл на хабре в этом топике о DapperORM от одного из ведущих разработчиков популярного сайта Stackoverflow. Имя этого супергероя Sam Saffron (далее просто Сэм). Кроме того, до появления этого топика об архитектуре Stackoverflow было известно, что в ней используется Linq-to-Sql. Это главная причина, почему я, как и другие разработчики, принялся изучать исходный код Dapper. Как оказалось его немного, а точнее всего один файл. Внимательно просмотрев его, я подумал – а можно ли его сделать ещё быстрее. Ускорять код Сэма было не просто, слишком качественно он был написан. Дальше я опишу мои микрооптимизации в виде советов другим разработчикам. Но для начала хочу предостеречь некоторых разработчиков. Описанная оптимизация ускорила Dapper на 5% и это существенно для такого проекта как Stackoverflow, но может быть не существенным для вашего проекта. Поэтому всегда рассматривайте вариант макрооптимизации (примеры в конце топика) по результатам профилирования и прибегайте к микрооптимизации только в особых случаях.

Понятно, продолжайте

Работа со структурами в C#

Время на прочтение13 мин
Охват и читатели150K
По следам недавнего топика «Обработка больших объемов данных в памяти на C#» представляю перевод упоминавшейся там статьи о структурах.

Структуры являются фундаментальными типами данных в C# и большинстве других современных языках программирования. По своей сути структуры просты, но вы можете удивиться, насколько быстро работа с ними может стать сложной. Чаще всего проблемы возникают, если вы должны работать со структурами, созданными в других языках и сохраненными на диске или полученными в результате вызова функций из библиотек или COM-объектов. В этой статье я подразумеваю, что вы знакомы с понятием структуры, умеете определять их и владеете базовыми навыками работы со структурами. Предполагается, что вы имеете представление о том, как вызывать API функции с использованием p/Invoke, а также что такое маршалинг. В случае неуверенности в своих знаниях вы можете обратиться к документации.
Множество техник, описанных в данной статье, могут быть расширены и применены к любым типам данных.
Читать дальше →

Примеры xpath-запросов к html

Время на прочтение4 мин
Охват и читатели536K
Xpath — это язык запросов к элементам xml или xhtml документа. Также как SQL, xpath является декларативным языком запросов. Чтобы получить интересующие данные, необходимо всего лишь создать запрос, описывающий эти данные. Всю «черную» работу за вас выполнит интерпретатор языка xpath.
Очень удобно, не правда ли? Давайте посмотри какие возможности предлагает xpath для доступа к узлам веб-страниц.
Читать дальше →

Обработка больших объемов данных в памяти на C#

Время на прочтение7 мин
Охват и читатели91K
Хочу поделиться недавно приобретенным в C# опытом по загрузке и обработке в памяти больших объемов данных. Все нижеуказанное касается Visual Studio 2008 и .Net Framework 3.5.1, на случай каких-либо отличий в других версиях языка или библиотек.

Итак, у нас возникли следующие задачи:
1. Расположить в памяти до 100 миллионов записей, состоящих из строки, длиной 16 символов (уникальный ключ) и двух целочисленных значений, длиной 4 байта каждый;
2. Быстро находить и редактировать запись по ключу.

Читать дальше →

Информация

В рейтинге
Не участвует
Дата рождения
Зарегистрирован
Активность