Pull to refresh
15
0
Николай Воробьев @Kano

User

Send message

RESTful API для сервера – делаем правильно (Часть 1)

Reading time13 min
Views333K
В 2007-м Стив Джобс представил iPhone, который произвел революцию в высокотехнологичной индустрии и изменил наш подход к работе и ведению бизнеса. Сейчас 2012-й и все больше и больше сайтов предлагают нативные iOS и Android клиенты для своих сервисов. Между тем не все стартапы обладают финансами для разработки приложений в дополнение к основному продукту. Для увеличения популярности своего продукта эти компании предлагают открытые API, которыми могут воспользоваться сторонние разработчики. Пожалуй Twitter был первым в этой сфере и теперь число компаний, последовавших этой стратегии, растет стремительно. Это действительно отличный способ создать привлекательную экосистему вокруг своего продукта.

Читать дальше →
Total votes 73: ↑70 and ↓3+67
Comments57

Непутевые заметки о ASP.NET MVC. Часть 1 (и единственная)

Reading time11 min
Views41K
В последнее время на Хабре часто начали появляться статьи о ASP.NET MVC. Однако в этой статье я бы хотел сделать несколько заметок по поводу построения приложений на вышеприведенном фреймворке: минимальный набор NuGet-packages (без которых грех начинать работу), логирование, подводные камни при использовании стандартных membership-, profile- провайдеров. И, напоследок, почему Web API из MVC 4 — то, что так долго мы все ждали.
Поехали
Total votes 60: ↑48 and ↓12+36
Comments72

stripe — оплата в интернете для программистов

Reading time3 min
Views56K
Попробовал весьма интересный стартап сервис по приему платежей пластиковыми картами stripe, основанный в Сан-Франциско.

stripe blueprints

Судя по их блогу, открылись они совсем недавно, если верить информации в интернете, в декабре 2011 года. Примечательно, что среди инвесторов данного сервиса три наиболее влиятельных венчурных фонда силиконовой долины (Sequoia Capital, Y Combinator и Andreessen Horowitz), а также Peter Thiel и Elon Musk, которые являются основателями PayPal. Такая компания инвесторов сразу привлекает внимание к проекту.
Читать дальше →
Total votes 88: ↑83 and ↓5+78
Comments53

Выбираем мультиплатформенный движок для разработки мобильных игр (часть 1)

Reading time4 min
Views53K
imageРазработка мобильных приложений это весьма перспективное и выгодное занятие. Одним из самых интересных направлений являются игры. Однако, игры — это довольно сложные приложения, а учитывая, что на рынке существует как минимум две мобильные платформы, на которые стоит ориентироваться, сложность возрастает вдвойне. По этому, нам надо как то облегчить свой и без того нелегкий труд.
Читать дальше →
Total votes 63: ↑58 and ↓5+53
Comments66

Html Agility Pack — удобный .NET парсер HTML

Reading time5 min
Views164K
Всем привет!
Как-то раз мне пришла в голову идея проанализировать вакансии размещенные на Хабре. Конкретно интересовало, есть ли зависимость между размером зарплаты и наличия высшего образования. А еще сейчас у студентов идет сессия (в том числе и у меня), то возможно кому-то уже надоело трепать нервы на экзаменах и этот анализ будет полезен.
Так как я программист на .Net, то и решать эту задачу — парсить объявления на Хабре я решил на C#. Вручную разбирать строки html мне не хотелось, поэтому было придумано найти html-парсер, который помог бы осуществить задачу.
Забегая вперед скажу, что из анализа ничего интересного не вышло и сессию придется сдавать дальше :(
Но зато немножко расскажу про весьма полезную библиотеку Html Agility Pack
Читать дальше →
Total votes 58: ↑41 and ↓17+24
Comments69

Очень много полезных штук для AS3 #1

Reading time4 min
Views24K
Недавно в моей RSS ленте сразу несколько людей написало о большой подборке всяких штук для AS3, которые могут изрядно упростить жизнь Flash-разработчикам. Одним из таких людей был injun (чей блог я читаю уже очень давно), в его посте я увидел ссылку на исходный пост одного зарубежного автора, и решил сам посмотреть, что там к чему.

Изначально, я хотел опубликовать все ссылки в рамках одной статьи, но ссылок оказалось слишком много, и статью придётся разделить на несколько частей. В этой статье мы разберём 3D движки, 3D игровые движки, 2D игровые движки, изометрические движки, 3D фреймворки для анимации, 3D физические движки, библиотеки для дополненной реальности, твиннеры (движки для программной анимации). Итак, понеслась.
Читать дальше →
Total votes 58: ↑53 and ↓5+48
Comments29

Использование коэффициента Танимото для поиска людей с одинаковыми предпочтениями

Reading time3 min
Views12K
Решая упражнения к книге «Программируем коллективный разум», я решил поделиться реализацией одного из алгоритмов упомянутого в этой книге (Глава 2 — Упражнение 1).

Исходные условия следующие: пусть мы имеем словарь с оценками критиков:

critics={'Lisa Rose'{'Superman Returns'3.5'You, Me and Dupree'2.5'The Night Listener'3.0}
           'Gene Seymour'
{'Superman Returns'5.0'The Night Listener'3.5'You, Me and Dupree'3.5}}

Чем выше оценка, тем больше нравится фильм.
Надо вычислить: насколько схожи интересы критиков для того, например, чтобы можно было на основе оценок одного рекомендовать фильмы другому?

Читать дальше →
Total votes 109: ↑100 and ↓9+91
Comments22

ChartBeat — Слушай пульс своего сайта

Reading time2 min
Views1.3K
Многие из вебмастеров, наверняка, пользуются сервисами Google Analytics и Яндекс.Метрика. Хотелось бы рассказать про сервис, который никак не отменяет гигантов статистики, но может быть неплохим и увлекательным дополнением.

image

Сервис имеет trial период (для активации нужна кредитная карта), воспользовавшись которым, мы втянулись и решили остаться на платном сервисе.

Итак, что же дает этот сервис?


Читать дальше →
Total votes 52: ↑41 and ↓11+30
Comments40

Windows-компьютер без антивирусов

Reading time6 min
Views63K
Предупреждение: Описанное в статье несколько устарело, т.к. я забросил винды в эпоху Windows 2003.

Каждый раз, когда меня знакомые спрашивают: «какой антивирус лучше?», я могу сказать только одно: «антивирус — как придворный шаман. Бывают лучше, бывают хуже, но определить, кто лучше камлает, не получится». Антивирус не гарантирует защиту от вирусов, более того, у него есть полное моральное право пропустить новую заразу и начать её детектить дня через 2-3 после «инцидента». Т.е. как основное средство защиты он годится не очень.

Ниже описывается настройка windows, которая позволит защититься от любых реальных (т.е. встречающихся в природе) вирусов без использования антивирусов. Данная конфигурация уже 3 с половиной года работает на терминальном сервере, где пользователи (в лучшие времена до 70 человек) совсем не стесняются притаскивать на флешках всяких засранцев, лазать по сети где попало и т.д.

Теория


Любой уважающий себя вирус, оказавшись запущенным, тем или иным методом стремится в системе закрепиться, т.е. создаёт исполняемый файл или библиотеку, которая прописывается тем или иным образом в запуск. «Авто» запуск или в форме «дополнения» к другим исполняемым файлам (debugger, hander, плагин, и т.д.) — не важно. Важно: существует барьер под названием «запуск кода». Даже старые-добрые вирусы, дописывающие себя в исполняемые файлы, всё равно должны иметь возможность писать в файлы, которые предполагается запускать.

Безусловно, есть вирусы, размножающиеся без создания файлов (например, мс-бласт). Но условием появления этого вируса должна быть доступность сервера для обращений с носителей вируса или запуск кода через эксплоит в браузере\сетевой компоненте. В случае дыры в браузере дальнейшее размножение не возможно (т.к. нужно обращаться к браузерам на других машинах, а это требует поднятия сервера, куда будут ходить другие пользователи и мотивации пользователям ходить именно на этот узел). В случае дыры в сетевой компоненте и размножения без сохранения на диск, описанная мною методика с большой вероятностью работать не будет и возможна эпидемия. Однако, я не уверен, что антивирусы поймают такой 0day эксплоит, плюс, их (дыры) довольно резво фиксят, так что этот сценарий я откладываю как маловероятный. Наличие же файрволов ещё более уменьшает их опасность. От не-0day вполне же спасает своевременная (автоматизированная) установка обновлений.

Итак, основную бытовую опасность представляют вирусы, запускающиеся «из файла» (хотя бы потому, что они переживают перезагрузку компьютера). Если мы запретим каким-то образом запуск «неправильных» файлов, то проблема будет решена (т.к. несохраняющийся в файле вирус не сможет пережить перезагрузку, а в случае запуска с правами пользователя, даже банального релогина).

В Windows существует технология — политика ограниченного запуска приложений. Её можно активировать в режиме «запрещать всё, что не разрешено». Если поставить запрет полный — для всех, включая администраторов, все файлы, включая библиотеки, то мы получим точную гарантию того, что посторонний (не входящий в список разрешённых) файл не будет запущен. По-крайней мере я пока не слышал, чтобы в этой технологии были дыры. Обращаю внимание, нужно запрещать и библиотеки тоже, потому что печально известный конфикер запускается с флешек именно с помощью запуска библиотеки обманом rundll32.

Однако, запреты и разрешения не будут иметь смысла, если не сформулировать правила, которые запретят запуск «чужаков».

Модель безопасности


Перед тем, как описать подробно конфигурацию, сформулирую теоретические принципы её организации:

1. То, куда пользователь может писать закрыто для запуска.
2. То, что пользователь может запускать, закрыто для записи.
Читать дальше →
Total votes 139: ↑109 and ↓30+79
Comments133

Дополнительные 24 часа в сутках. Игры со временем -2

Reading time8 min
Views8.7K
В первой части материала разговор шел об относительности времени, много внимания уделено ведению списка дел. Пожалуйста, прочитайте, тот материал, чтобы повествование не было отрывочным, а вы могли окинуть взглядом все приемы эффективного уплотнения времени.

Начало материала

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

Линейный конвейер. Путь из точки А в точку Б.
С раннего детства наш мир упорядочен, все примеры, которые нам подкидывает жизнь, родители, школа, сугубо линейны. Исключения редки, воспринимаются как нечто выбивающиеся из правил. Помните, школьные задачки про путь из пункта А в пункт Б, в которых еще встречались промежуточные точки. Это ключевой алгоритм всех действий, которым обучают в обычной, среднестатистической школе. Мы с детства знаем, что для достижения результата, надо сделать то-то и то-то. В этом нет ничего плохого, ведь линейность действий проста, понятна, предсказуема. Вот только есть небольшая проблема, не всегда линейные действия и поведение наиболее эффективно в реальной жизни.

Читать дальше →
Total votes 131: ↑82 and ↓49+33
Comments58

Срываем сроки

Reading time2 min
Views1.3K
Когда уже закончится этот ад? Такой вопрос частенько задаёт себе рядовой фрилансер в повседневной жизни. Вроде и платят нормально, и ТЗ изложен доходчиво (не так, как в прошлом проекте), но всё равно — не прёт… Уже и баш весь перечитал, вконтакте всем отписался, потроллил на хабре, но поработать никак не получается, хоть доделывать осталось всего ничего, если собраться с силами — можно за две недели добить… И вот так один дедлайн сменяется другим, затем начинается игра в прятки с заказчиком, потом обоюдные обиды, плохие отзывы… Знакомо, не правда ли?

Читать дальше →
Total votes 151: ↑109 and ↓42+67
Comments165

Вышел SDK для uTorrent Apps, приз $1000 за лучшее применение

Reading time1 min
Views641
Как и обещалось, BitTorrent выложил SDK для uTorrent Apps и документацию, так что теперь у всех появилась возможность создавать собственные приложения на базе uTorrent 3.0. Например, владелец трекера могут внедрить поиск по своему трекеру прямо в P2P-клиент.

Чтобы стимулировать разработчиков, компания BitTorrent даже организовала конкурс с призом в $1000 за лучшее приложение uTorrent Apps, которое будет опубликовано в течение ближайшего месяца, то есть до 13 августа 2010 года.
Читать дальше →
Total votes 25: ↑22 and ↓3+19
Comments14

Работа с Visual Studio Team Foundation Server 2010

Reading time7 min
Views97K

Данная статья будет полезна тем, кто не устанавливал и не использовал Visual Studio Team Foundation Server раньше. TFS может быть частью очень сложной инфраструктуры, которая включает отчеты, интеграцию с SharePoint, множественные домены, распределенные базы данных и т.д., но я не собираюсь затрагивать эти области. Моя основная задача – это помочь разобраться с базовыми элементами TFS (система контроля версий, система отслеживания ошибок и заданий и система автоматических сборок) и начать использовать данную систему.

Читать дальше →
Total votes 81: ↑49 and ↓32+17
Comments41

NoSQL, используя MongoDB, NoRM и ASP.NET MVC

Reading time5 min
Views13K


В данной статье, я хотел бы рассказать, как работать с NoSQL и документо-ориентированной базой данных MongoDB, NoRM и ASP.NET MVC 2.

NoSQL и документо-ориентированная база данных


В этом году особенно заметны активные движения в направлении NoSQL и люди постоянно обсуждают о применении  документо-ориентированных баз вместе с веб-приложениями. Согласно Википедии “NoSQL — движение, продвигающее свободный класс не реляционных хранилищ данных, которое прервало длинную историю реляционных баз данных.  Данные хранилища могут не требовать фиксированных схем для таблиц, чаще всего избегают join-операций и обычно имеют горизонтальное масштабирование. Преподаватели часто ссылаются на подобные базы данных, как на структурированные хранилища.
Читать дальше →
Total votes 42: ↑30 and ↓12+18
Comments23

Pivotal Tracker

Reading time3 min
Views28K
image
Мы все прекрасно понимаем, что не существует универсальной системы управления проектами, которая бы подходила для всех случаев. Выбор системы целиком и полностью зависит от Ваших нужд. Если вы не нуждаетесь в репозитариях, и для общения Вам достаточно комментариев в тикетах, а работаете Вы над проектром по «гибким» методологиям, то возможно одним из лучших вариантов будет — Pivotal Tracker.

Пост в первую очередь предназначен для тех, кто не знаком с Pivotal Tracker, или тех кто считает его сложным и непонятным.
Читать дальше →
Total votes 55: ↑46 and ↓9+37
Comments27

Opera 10.50 (под Windows) и как подружить её с Silverlight

Reading time1 min
Views9.3K
Недавно, после того как обновил браузер Opera, сестренка попросила меня разобраться, почему вместо привычного плеера появилась странная картинка.
Get Microsoft Silverlight


Перешел на страницу установки… но увидел надпись Microsoft Silverlight may not be supported on this browser, и таблицу поддерживаемых браузеров (см. ниже), среди которых Opera не было. Но выход всё же был. Инструкция под хабракатом.
Читать дальше →
Total votes 90: ↑58 and ↓32+26
Comments80

Пробуем TorrentStream — смотрим торренты онлайн

Reading time5 min
Views112K
Собственно, про топик-ссылку "On-line кинозал по протоколу p2p" про torrentstream.org. Скачал попробовать. Интересно.

Что это? Просмотр фильмов в .torrent прямо в браузере, прямо по ходу скачивания.

Коротко: в принципе работает; лучше чем uTorrent Stream; только Windows (Linux и Mac порты уже в разработке); удобства только только для FireFox; сам плеер работает и в IE и в Chrome тоже (ниже опишу как); качать надо довольно немаленький .exe (32mb); антивир — в комментах проверили KIS — норм все; плеер не понимает клавиатуры; есть подозрения про будущее проекта (слово «монетизация» слишком часто на сайте употребляется).



Качать: сам плагин 32МБ (или прямая ссылка на скачивание), надстройка для FireFox для удобства.

Внутри TorrentStream прямо рай для IT-шника кстати — сам написан похоже на Python 2.5 + wxWidgets + libvlc + Tribler (внутри немного покопаюсь в топике). Скомпилен py2exe. Есть еще какие-то куски от Lua — не понятно чего делающие. Собственно в распакованном виде: 26мб — только библиотеки Python+wxWidgets + 51МБ библиотеки libvlc (кодеки).
Читать дальше →
Total votes 66: ↑53 and ↓13+40
Comments113

Различия между Silverlight на Windows и Windows Phone

Reading time14 min
Views2K
imageДанный топик описывает различия реализации между Silverlight 3 на Windows и Silverlight на Windows Phone.
Советую ознакомиться, что поддерживает Silverlight на Windows Phone, а также более детально ознакомиться с информацией о не поддерживаемых типах и членах.
Читать дальше →
Total votes 55: ↑32 and ↓23+9
Comments12

Расширение возможностей IntelliSense для XAML-редактора Visual Studio 2010

Reading time3 min
Views1.7K
image
Оценив новые возможности IntelliSense в редакторе кода VS 2010, по принципу PascalCase, когда по ходу печати вы получаете список предполагаемых команд. К сожалению, новые вкусные возможности не доступны в XAML редакторе. Но нет повода для печали…
image
Читать дальше →
Total votes 52: ↑36 and ↓16+20
Comments7

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity