В последнее время на Хабре часто начали появляться статьи о ASP.NET MVC. Однако в этой статье я бы хотел сделать несколько заметок по поводу построения приложений на вышеприведенном фреймворке: минимальный набор NuGet-packages (без которых грех начинать работу), логирование, подводные камни при использовании стандартных membership-, profile- провайдеров. И, напоследок, почему Web API из MVC 4 — то, что так долго мы все ждали.
Денис @borisdenis
Пользователь
Пробовали набрать Zerg Rush в гугле?
1 мин
164KВам понравится результат. Гуглозерги будут атаковать вашу поисковую выдачу пока вы их не закликаете до смерти. Производительность труда в офисах по всему миру сегодня явно упадет — всем же интересно узнать каков их APM за пределами оригинального старкрафта.
P.S.
Я максимум набрал 200 (на тачпаде ноутбука) — у кого больше?
+140
Многоклиентский сетевой протокол на C#
10 мин
31KПредисловие
Занимаюсь программированием, по возрасту не имею возможности обучатся этому в вузе, а тяга к изучению есть. Хочу представить Вашему вниманию одну из моих недавно написанных программ, хотелось бы узнать свои недоработки в ней, какие вещи можно было бы улучшить и в какую сторону двигся, что изучать для этого.
Программа представляет собой многоклиентский сетевой протокол, который можно было бы использовать в любом клиент-серверном приложении, настраивая только пакеты и их обработчики.
+32
Качайте без спешки
3 мин
17KДоброго дня всем! Сегодня наш старший вирусный аналитик Вячеслав Закоржевский расскажет вам о том, как он попробовал найти в интернете справочник по транзисторам, и что из этого получилось:
Думаю, что подавляющее большинство пользователей пользуются интернетом для скачивания того или иного контента, иногда законного, а иногда и нет. Этим и пользуются злоумышленники. Чтобы наглядно показать, как это происходит, я провел небольшое исследование в боевых условиях.
Начал я с того, что решил попробовать скачать «справочник по транзисторам», для чего воспользовался Google’ом. Появилось ожидаемо много результатов поиска.
Перехожу по первой ссылке…
Думаю, что подавляющее большинство пользователей пользуются интернетом для скачивания того или иного контента, иногда законного, а иногда и нет. Этим и пользуются злоумышленники. Чтобы наглядно показать, как это происходит, я провел небольшое исследование в боевых условиях.
Начал я с того, что решил попробовать скачать «справочник по транзисторам», для чего воспользовался Google’ом. Появилось ожидаемо много результатов поиска.
Перехожу по первой ссылке…
+14
Авторы Хабрахабра в поисковой выдаче Google
1 мин
7.4KТуториал
Как вы знаете, недавно компания Google запустила пилотный проект по представлению сведений об авторстве в результатах поиска. Учитывая количество уникального контента на Хабрахабре, мы решили не упускать возможность воспользоваться данной функцией и интегрировали её в сайт.
Более подробно об этой функции можете почитать на официальной странице компании Google.
А пока, если хотите мелькать в результатах поиска, проделайте следующее.
Более подробно об этой функции можете почитать на официальной странице компании Google.
А пока, если хотите мелькать в результатах поиска, проделайте следующее.
+138
Гигапиксельные панорамы двух столиц
5 мин
52KПривет! Мы — компания CityScanner, известны тем, что снимаем панорамы для Яндекс.Карт во многих городах. Кроме этого мы решаем и другие интересные задачи, связанные с панорамами — как для различных клиентов, так и в качестве собственных проектов. Подробнее о том, чем мы занимаемся, можно узнать на нашем сайте, а сегодня мы хотели рассказать вам про две наши работы: гигапиксельные панорамы Москвы и Астаны.
Нажмите на картинки выше, чтобы увидеть панорамы.
Нажмите на картинки выше, чтобы увидеть панорамы.
+96
Организация шаринга файлов в приложении на С#
3 мин
2.4KНедавно мне пришлось работать над интересным проектом, в котором заказчик просил реализовать обмен файлами через интернет, соответственно с прямым доступом прямо из приложения.
Основные требования:
Первое что пришло на ум — использовать облачное хранилище данных с доступом по API. Итак, что из этого вышло?
Основные требования:
- Отображение списка файлов.
- Загрузка и скачивание через интерфейс программы.
- Скрытая авторизация без участия пользователя.
Первое что пришло на ум — использовать облачное хранилище данных с доступом по API. Итак, что из этого вышло?
+18
Графики математических функций на Google теперь в 3D
1 мин
24KПоисковый запрос на Google: sqrt(x*x+y*y)+3*cos(sqrt(x*x+y*y))+5 from -20 to 20
Три месяца назад Google научился строить графики математических функций. Теперь добавилась 3D-анимация (WebGL).
+41
Проникновение в Lotus Domino
8 мин
19KЭксплуатация уязвимостей сервиса Lotus Domino Controller
В последнее время я часто рассказываю истории о том, как на обыкновенном пен-тесте удается выявить 0-day уязвимость в популярном ПО или разработать приватный эксплойт. На самом деле такого рода задачи решаются при пен-тесте редко и выборочно, и на это есть свои причины.
И всё же я хочу поделиться историей (ага, байкой) о том, как при решении именно таких задач пен-тест выходит за рамки монотонного сканирования, брутфорса и запихивания кавычек в параметры веб-приложения. А именно, в этом посте будет рассказано о простой баге в Lotus Domino Server Controller, о том, как был создан приватный эксплойт, а также найдена проблема нулевого дня, актуальная и на сегодняшний день.
+45
Алгоритмы сегментации текста
4 мин
14KЗдравствуйте.
В контексте анализа данных из твиттера возникла задача обработки хештегов. Нужно было взять хештег и разбить его на отдельные слова (#habratopic => habra topic). Задача казалась примитивной, но, получается, я ее недооценил. Пришлось перебрать несколько алгоритмов пока не было найдено то, что надо.
Эту статью можно считать некой хронологией решения задачи с анализом преимуществ и недостатков каждого из использованных алгоритмов. Поэтому, если вам интересна данная тема, прошу под кат.
В контексте анализа данных из твиттера возникла задача обработки хештегов. Нужно было взять хештег и разбить его на отдельные слова (#habratopic => habra topic). Задача казалась примитивной, но, получается, я ее недооценил. Пришлось перебрать несколько алгоритмов пока не было найдено то, что надо.
Эту статью можно считать некой хронологией решения задачи с анализом преимуществ и недостатков каждого из использованных алгоритмов. Поэтому, если вам интересна данная тема, прошу под кат.
+39
Как сделать один сайт для всех устройств (Responsive Web Design)
3 мин
290KВчера была опубликована хорошая статья «Веб-дизайн. Каждому устройству свое представление». Несмотря на неплохие размышления, к сожалению, вывод в ней довольно глупый. А именно:
«Нужно определить, какими устройствами могут пользоваться ваши посетители, проработать и создать для этих устройств представление вашего сайта, определить устройство посредством проверки заголовков браузеров, и отправить наиболее подходящее представление.»
Во-первых, никто не сможет предугадать, какими устройствами будут пользоваться ваши посетители. Нужно ориентироваться не на устройства, а на разрешения.
Это скриншот из презентации «Beyond the mobile web by yiibu» (очень рекомендую).
Во-вторых, если вы не facebook или yandex, скорее всего, вы не потянете создание и поддержку разных версий сайта для каждого устройства. Да и это не имеет особого смысла. Потому что ситуация становится похожа на реалии пятнадцатилетней давности. Тогда делали сайт «под браузер», а сейчас автор предлагает делать сайт «под устройство».
«Нужно определить, какими устройствами могут пользоваться ваши посетители, проработать и создать для этих устройств представление вашего сайта, определить устройство посредством проверки заголовков браузеров, и отправить наиболее подходящее представление.»
Почему это глупо
Во-первых, никто не сможет предугадать, какими устройствами будут пользоваться ваши посетители. Нужно ориентироваться не на устройства, а на разрешения.
Это скриншот из презентации «Beyond the mobile web by yiibu» (очень рекомендую).
Во-вторых, если вы не facebook или yandex, скорее всего, вы не потянете создание и поддержку разных версий сайта для каждого устройства. Да и это не имеет особого смысла. Потому что ситуация становится похожа на реалии пятнадцатилетней давности. Тогда делали сайт «под браузер», а сейчас автор предлагает делать сайт «под устройство».
Как сделать один сайт для всех устройств
+137
Библиотека для регистрации и отлова нажатий 'горячих' комбинация клавиш
3 мин
6.3KПод комбинацией клавиш понимается любое количество одновременно нажатых клавиш, нажатых в любом порядке, которое может позволить ваша клавиатура. Для конечного пользователя, однако, не стоит превышать количество более пяти в одной комбинации, т.к. игровые клавиатуры есть не у всех.
Другой вариант добавления, где в качестве комбинации берутся текущие нажатые клавиши, удобно в случае когда пользователь назначает комбинацию сам. В демке есть пример подобной записи комбинаций.
Теперь при нажатии комбинации LeftCtrl+H (или H+LeftControl), мы увидим приветственное сообщение.
Пример использования
HotKeysManager manager = new HotKeysManager();
manager.AddHotKey(new HotKeyCombination(() => { MessageBox.Show("Привет, Хабр!"); }) { Keys.LControlKey, Keys.H });
Другой вариант добавления, где в качестве комбинации берутся текущие нажатые клавиши, удобно в случае когда пользователь назначает комбинацию сам. В демке есть пример подобной записи комбинаций.
manager.AddHotKey(new HotKeyCombination(HookManager.CurrentDownedKeys.ToArray(), () => { MessageBox.Show("Привет, Хабр!"); }));
Теперь при нажатии комбинации LeftCtrl+H (или H+LeftControl), мы увидим приветственное сообщение.
+21
Баним чужой аккаунт на Free-lance.ru
2 мин
14KТак уж исторически получилось, что у меня были два аккаунта на Free-lance.ru. Один я заводил когда-то сам, а другой заводил мой наёмный сотрудник. Ни один из аккаунтов по назначению так и не был использован, просто они были когда-то давно заведены, частично заполнены и заброшены, с бывшим сотрудником я давно уже расстался, но доступ к обоим аккаунтам остался.
Сегодня приходит от сервиса очередное письмо с текстом:
Надо сказать они приходят периодически и отключить их вероятно нельзя никак (игра с комбинацией флажков в разделе настройки уведомлений аккаунта нужного эффекта не принесла). Сегодня захотелось это наконец прекратить. Я видел два варианта действий:
Я решил попробовать действовать честно.
Сегодня приходит от сервиса очередное письмо с текстом:
Приглашаем вас вновь посетить Free-lance.ru
Мы заметили, что вы давно не заходили на Free-lance.ru. Тем временем, на сайте публикуется около 40 000 проектов в месяц, а средняя стоимость проекта составляет 20 000 рублей. Наверняка, многие из этих проектов будут вам интересны.
Надо сказать они приходят периодически и отключить их вероятно нельзя никак (игра с комбинацией флажков в разделе настройки уведомлений аккаунта нужного эффекта не принесла). Сегодня захотелось это наконец прекратить. Я видел два варианта действий:
- Сменить почту на несуществующую в природе (или чужую) и забыть.
- Честно выпилить аккаунты на сервисе.
Я решил попробовать действовать честно.
+182
Работаем с LINQ to XML
8 мин
131KВ первой статье в блоге .NET «Работаем с XML» в комментариях народ потребовал статьи LINQ to XML. Что же, попробуем раскрыть принципы работы этой новой технологии от Microsoft.
Создадим базу для ведения каталога аудиозаписей.
Создадим базу для ведения каталога аудиозаписей.
+28
Конструируем XML с использованием LINQ to XML API
7 мин
9.6KДо недавнего времени мне ужасно не нравилось работать с XML файлами, я старался избегать этого где только можно, по просту заменяя их стандартными конфигурационными файлами приложения. Но где нужно было использовать обмен данными – от XML’а было не уйти. Приходилось создавать большой объем кода для того чтобы сконвертировать либо прочитать небольшой объем информации. Да, таков уж XML Document Object Model (DOM) API.
+21
Hurl: Удобный Curl
2 мин
11KПривет!
В 2009 году на «Rails Rumble» Лехом Кульвером и Крисом Ванстратом был создан замечательный инструмент — Hurl.
Hurl — это RoR приложение, предназначенное для того, чтоб посылать HTTP запросы. В целом, функциональность Hurl схожа с Curl. Идея и методы те же, но предназначение совсем другое.
К сожалению, хостинг, на котором стоит официальный Hurl очень нестабильный и медленный и не подходит для корпоративного использования. Технологии opensource дают нам возможность поднять свой экземпляр Hurl и даже сделать его лучше и удобнее.
Итак мы подняли и улучшили Hurl на своём хостинге — hurl.quickblox.com. Приложение настроено на EC2 инстансе, а данные хранятся на S3.
В 2009 году на «Rails Rumble» Лехом Кульвером и Крисом Ванстратом был создан замечательный инструмент — Hurl.
Hurl — это RoR приложение, предназначенное для того, чтоб посылать HTTP запросы. В целом, функциональность Hurl схожа с Curl. Идея и методы те же, но предназначение совсем другое.
К сожалению, хостинг, на котором стоит официальный Hurl очень нестабильный и медленный и не подходит для корпоративного использования. Технологии opensource дают нам возможность поднять свой экземпляр Hurl и даже сделать его лучше и удобнее.
Итак мы подняли и улучшили Hurl на своём хостинге — hurl.quickblox.com. Приложение настроено на EC2 инстансе, а данные хранятся на S3.
+20
Игра Tron размером в 219 байт
1 мин
2.6KВ мире IT в последнее время наметилась тенденция к стремлению максимально уменьшить количество исходного кода, не теряя при этом функциональность. Так вот некий товарищ Alokmenghrajani со своими друзьями задался целью написать игру с минимальным количеством кода. Задумка была написать игру по фильму Tron, и в итоге у них получилось 219 байт, что весьма неплохо.
+10
Итак, тебе нужен шрифт…
1 мин
20KСлучайно наткнулся на схему для выбора шрифтов. Думаю, кому-нибудь будет полезна.
Картинка кликабельна.
PS: Оригинал на английском здесь. Переводил на русский — не я.
Картинка кликабельна.
PS: Оригинал на английском здесь. Переводил на русский — не я.
+103
Менеджер паролей с web доступом
2 мин
50K В нашей компании используются десятки серверов на которых крутятся сотни сервисов. Их настраивают и администрируют разные люди, которые могут заболеть, перейти на другой проект или уволиться. Уже не один раз возникала ситуация, когда вдруг оказывалось, что никто не знает пароля от той или иной базы данных, web сервера или иного ресурса требующего авторизации. В данной ситуации есть только один выход — единый сервер хранения паролей.
Выбор софта был осложнён тем, что требовалось решение с возможностью установки на локальный сервер и именно под Linux. Наконец после долгого поиска мною был установлен и опробован TeamPass — Collaborative Password Manager. Данный продукт полностью удовлетворил мои потребности в централизованном хранения паролей. Я не буду описывать установку. Она довольно простая и достаточно подробно описана тут. Моей целью было рассказать про решение которое я долго искал. Авось кому-нибудь тоже пригодится.
Выбор софта был осложнён тем, что требовалось решение с возможностью установки на локальный сервер и именно под Linux. Наконец после долгого поиска мною был установлен и опробован TeamPass — Collaborative Password Manager. Данный продукт полностью удовлетворил мои потребности в централизованном хранения паролей. Я не буду описывать установку. Она довольно простая и достаточно подробно описана тут. Моей целью было рассказать про решение которое я долго искал. Авось кому-нибудь тоже пригодится.
+27
Как выбирать фрилансерские заказы
5 мин
2.1KПривет, Хабр!
Мое краткое повествование могло бы быть идеальным для хаба «Я негодую», но, однако, я попытаюсь собрать в этом посте некоторые правила по тому как стоит выбирать и выполнять фрилансерские заказы (да и любые другие заказы не проходящие по официальному договору), выведенных на основе своего небольшогоопыта провала в этой сфере.
Всем кому интересно, как обезопасить во фрилансе себя хоть немного, прошу под кат.
Мое краткое повествование могло бы быть идеальным для хаба «Я негодую», но, однако, я попытаюсь собрать в этом посте некоторые правила по тому как стоит выбирать и выполнять фрилансерские заказы (да и любые другие заказы не проходящие по официальному договору), выведенных на основе своего небольшого
Всем кому интересно, как обезопасить во фрилансе себя хоть немного, прошу под кат.
+29
Информация
- В рейтинге
- Не участвует
- Откуда
- Донецк, Донецкая обл., Украина
- Дата рождения
- Зарегистрирован
- Активность