В 2007-м Стив Джобс представил iPhone, который произвел революцию в высокотехнологичной индустрии и изменил наш подход к работе и ведению бизнеса. Сейчас 2012-й и все больше и больше сайтов предлагают нативные iOS и Android клиенты для своих сервисов. Между тем не все стартапы обладают финансами для разработки приложений в дополнение к основному продукту. Для увеличения популярности своего продукта эти компании предлагают открытые API, которыми могут воспользоваться сторонние разработчики. Пожалуй Twitter был первым в этой сфере и теперь число компаний, последовавших этой стратегии, растет стремительно. Это действительно отличный способ создать привлекательную экосистему вокруг своего продукта.
Николай Воробьев @Kano
User
Непутевые заметки о ASP.NET MVC. Часть 1 (и единственная)
11 min
41KВ последнее время на Хабре часто начали появляться статьи о ASP.NET MVC. Однако в этой статье я бы хотел сделать несколько заметок по поводу построения приложений на вышеприведенном фреймворке: минимальный набор NuGet-packages (без которых грех начинать работу), логирование, подводные камни при использовании стандартных membership-, profile- провайдеров. И, напоследок, почему Web API из MVC 4 — то, что так долго мы все ждали.
+36
stripe — оплата в интернете для программистов
3 min
56KПопробовал весьма интересный стартап сервис по приему платежей пластиковыми картами stripe, основанный в Сан-Франциско.
Судя по их блогу, открылись они совсем недавно, если верить информации в интернете, в декабре 2011 года. Примечательно, что среди инвесторов данного сервиса три наиболее влиятельных венчурных фонда силиконовой долины (Sequoia Capital, Y Combinator и Andreessen Horowitz), а также Peter Thiel и Elon Musk, которые являются основателями PayPal. Такая компания инвесторов сразу привлекает внимание к проекту.
Судя по их блогу, открылись они совсем недавно, если верить информации в интернете, в декабре 2011 года. Примечательно, что среди инвесторов данного сервиса три наиболее влиятельных венчурных фонда силиконовой долины (Sequoia Capital, Y Combinator и Andreessen Horowitz), а также Peter Thiel и Elon Musk, которые являются основателями PayPal. Такая компания инвесторов сразу привлекает внимание к проекту.
+78
Выбираем мультиплатформенный движок для разработки мобильных игр (часть 1)
4 min
53KРазработка мобильных приложений это весьма перспективное и выгодное занятие. Одним из самых интересных направлений являются игры. Однако, игры — это довольно сложные приложения, а учитывая, что на рынке существует как минимум две мобильные платформы, на которые стоит ориентироваться, сложность возрастает вдвойне. По этому, нам надо как то облегчить свой и без того нелегкий труд.
+53
Html Agility Pack — удобный .NET парсер HTML
5 min
164KВсем привет!
Как-то раз мне пришла в голову идея проанализировать вакансии размещенные на Хабре. Конкретно интересовало, есть ли зависимость между размером зарплаты и наличия высшего образования. А еще сейчас у студентов идет сессия (в том числе и у меня), то возможно кому-то уже надоело трепать нервы на экзаменах и этот анализ будет полезен.
Так как я программист на .Net, то и решать эту задачу — парсить объявления на Хабре я решил на C#. Вручную разбирать строки html мне не хотелось, поэтому было придумано найти html-парсер, который помог бы осуществить задачу.
Забегая вперед скажу, что из анализа ничего интересного не вышло и сессию придется сдавать дальше :(
Но зато немножко расскажу про весьма полезную библиотеку Html Agility Pack
Как-то раз мне пришла в голову идея проанализировать вакансии размещенные на Хабре. Конкретно интересовало, есть ли зависимость между размером зарплаты и наличия высшего образования. А еще сейчас у студентов идет сессия (в том числе и у меня), то возможно кому-то уже надоело трепать нервы на экзаменах и этот анализ будет полезен.
Так как я программист на .Net, то и решать эту задачу — парсить объявления на Хабре я решил на C#. Вручную разбирать строки html мне не хотелось, поэтому было придумано найти html-парсер, который помог бы осуществить задачу.
Забегая вперед скажу, что из анализа ничего интересного не вышло и сессию придется сдавать дальше :(
Но зато немножко расскажу про весьма полезную библиотеку Html Agility Pack
+24
Очень много полезных штук для AS3 #1
4 min
24KНедавно в моей RSS ленте сразу несколько людей написало о большой подборке всяких штук для AS3, которые могут изрядно упростить жизнь Flash-разработчикам. Одним из таких людей был injun (чей блог я читаю уже очень давно), в его посте я увидел ссылку на исходный пост одного зарубежного автора, и решил сам посмотреть, что там к чему.
Изначально, я хотел опубликовать все ссылки в рамках одной статьи, но ссылок оказалось слишком много, и статью придётся разделить на несколько частей. В этой статье мы разберём 3D движки, 3D игровые движки, 2D игровые движки, изометрические движки, 3D фреймворки для анимации, 3D физические движки, библиотеки для дополненной реальности, твиннеры (движки для программной анимации). Итак, понеслась.
Изначально, я хотел опубликовать все ссылки в рамках одной статьи, но ссылок оказалось слишком много, и статью придётся разделить на несколько частей. В этой статье мы разберём 3D движки, 3D игровые движки, 2D игровые движки, изометрические движки, 3D фреймворки для анимации, 3D физические движки, библиотеки для дополненной реальности, твиннеры (движки для программной анимации). Итак, понеслась.
+48
Установка memcached под Windows за 5 минут (php5)
1 min
39KМногие разработчики используют Memcached, систему кэширования различных объектов в оперативной памяти. Устанавливается она очень просто
+31
Использование коэффициента Танимото для поиска людей с одинаковыми предпочтениями
3 min
12KРешая упражнения к книге «Программируем коллективный разум», я решил поделиться реализацией одного из алгоритмов упомянутого в этой книге (Глава 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}}
Чем выше оценка, тем больше нравится фильм.
Надо вычислить: насколько схожи интересы критиков для того, например, чтобы можно было на основе оценок одного рекомендовать фильмы другому?
+91
ChartBeat — Слушай пульс своего сайта
2 min
1.3KМногие из вебмастеров, наверняка, пользуются сервисами Google Analytics и Яндекс.Метрика. Хотелось бы рассказать про сервис, который никак не отменяет гигантов статистики, но может быть неплохим и увлекательным дополнением.
Сервис имеет trial период (для активации нужна кредитная карта), воспользовавшись которым, мы втянулись и решили остаться на платном сервисе.
Сервис имеет trial период (для активации нужна кредитная карта), воспользовавшись которым, мы втянулись и решили остаться на платном сервисе.
Итак, что же дает этот сервис?
+30
Windows-компьютер без антивирусов
6 min
63KПредупреждение: Описанное в статье несколько устарело, т.к. я забросил винды в эпоху Windows 2003.
Каждый раз, когда меня знакомые спрашивают: «какой антивирус лучше?», я могу сказать только одно: «антивирус — как придворный шаман. Бывают лучше, бывают хуже, но определить, кто лучше камлает, не получится». Антивирус не гарантирует защиту от вирусов, более того, у него есть полное моральное право пропустить новую заразу и начать её детектить дня через 2-3 после «инцидента». Т.е. как основное средство защиты он годится не очень.
Ниже описывается настройка windows, которая позволит защититься от любых реальных (т.е. встречающихся в природе) вирусов без использования антивирусов. Данная конфигурация уже 3 с половиной года работает на терминальном сервере, где пользователи (в лучшие времена до 70 человек) совсем не стесняются притаскивать на флешках всяких засранцев, лазать по сети где попало и т.д.
Любой уважающий себя вирус, оказавшись запущенным, тем или иным методом стремится в системе закрепиться, т.е. создаёт исполняемый файл или библиотеку, которая прописывается тем или иным образом в запуск. «Авто» запуск или в форме «дополнения» к другим исполняемым файлам (debugger, hander, плагин, и т.д.) — не важно. Важно: существует барьер под названием «запуск кода». Даже старые-добрые вирусы, дописывающие себя в исполняемые файлы, всё равно должны иметь возможность писать в файлы, которые предполагается запускать.
Безусловно, есть вирусы, размножающиеся без создания файлов (например, мс-бласт). Но условием появления этого вируса должна быть доступность сервера для обращений с носителей вируса или запуск кода через эксплоит в браузере\сетевой компоненте. В случае дыры в браузере дальнейшее размножение не возможно (т.к. нужно обращаться к браузерам на других машинах, а это требует поднятия сервера, куда будут ходить другие пользователи и мотивации пользователям ходить именно на этот узел). В случае дыры в сетевой компоненте и размножения без сохранения на диск, описанная мною методика с большой вероятностью работать не будет и возможна эпидемия. Однако, я не уверен, что антивирусы поймают такой 0day эксплоит, плюс, их (дыры) довольно резво фиксят, так что этот сценарий я откладываю как маловероятный. Наличие же файрволов ещё более уменьшает их опасность. От не-0day вполне же спасает своевременная (автоматизированная) установка обновлений.
Итак, основную бытовую опасность представляют вирусы, запускающиеся «из файла» (хотя бы потому, что они переживают перезагрузку компьютера). Если мы запретим каким-то образом запуск «неправильных» файлов, то проблема будет решена (т.к. несохраняющийся в файле вирус не сможет пережить перезагрузку, а в случае запуска с правами пользователя, даже банального релогина).
В Windows существует технология — политика ограниченного запуска приложений. Её можно активировать в режиме «запрещать всё, что не разрешено». Если поставить запрет полный — для всех, включая администраторов, все файлы, включая библиотеки, то мы получим точную гарантию того, что посторонний (не входящий в список разрешённых) файл не будет запущен. По-крайней мере я пока не слышал, чтобы в этой технологии были дыры. Обращаю внимание, нужно запрещать и библиотеки тоже, потому что печально известный конфикер запускается с флешек именно с помощью запуска библиотеки обманом rundll32.
Однако, запреты и разрешения не будут иметь смысла, если не сформулировать правила, которые запретят запуск «чужаков».
Перед тем, как описать подробно конфигурацию, сформулирую теоретические принципы её организации:
1. То, куда пользователь может писать закрыто для запуска.
2. То, что пользователь может запускать, закрыто для записи.
Каждый раз, когда меня знакомые спрашивают: «какой антивирус лучше?», я могу сказать только одно: «антивирус — как придворный шаман. Бывают лучше, бывают хуже, но определить, кто лучше камлает, не получится». Антивирус не гарантирует защиту от вирусов, более того, у него есть полное моральное право пропустить новую заразу и начать её детектить дня через 2-3 после «инцидента». Т.е. как основное средство защиты он годится не очень.
Ниже описывается настройка windows, которая позволит защититься от любых реальных (т.е. встречающихся в природе) вирусов без использования антивирусов. Данная конфигурация уже 3 с половиной года работает на терминальном сервере, где пользователи (в лучшие времена до 70 человек) совсем не стесняются притаскивать на флешках всяких засранцев, лазать по сети где попало и т.д.
Теория
Любой уважающий себя вирус, оказавшись запущенным, тем или иным методом стремится в системе закрепиться, т.е. создаёт исполняемый файл или библиотеку, которая прописывается тем или иным образом в запуск. «Авто» запуск или в форме «дополнения» к другим исполняемым файлам (debugger, hander, плагин, и т.д.) — не важно. Важно: существует барьер под названием «запуск кода». Даже старые-добрые вирусы, дописывающие себя в исполняемые файлы, всё равно должны иметь возможность писать в файлы, которые предполагается запускать.
Безусловно, есть вирусы, размножающиеся без создания файлов (например, мс-бласт). Но условием появления этого вируса должна быть доступность сервера для обращений с носителей вируса или запуск кода через эксплоит в браузере\сетевой компоненте. В случае дыры в браузере дальнейшее размножение не возможно (т.к. нужно обращаться к браузерам на других машинах, а это требует поднятия сервера, куда будут ходить другие пользователи и мотивации пользователям ходить именно на этот узел). В случае дыры в сетевой компоненте и размножения без сохранения на диск, описанная мною методика с большой вероятностью работать не будет и возможна эпидемия. Однако, я не уверен, что антивирусы поймают такой 0day эксплоит, плюс, их (дыры) довольно резво фиксят, так что этот сценарий я откладываю как маловероятный. Наличие же файрволов ещё более уменьшает их опасность. От не-0day вполне же спасает своевременная (автоматизированная) установка обновлений.
Итак, основную бытовую опасность представляют вирусы, запускающиеся «из файла» (хотя бы потому, что они переживают перезагрузку компьютера). Если мы запретим каким-то образом запуск «неправильных» файлов, то проблема будет решена (т.к. несохраняющийся в файле вирус не сможет пережить перезагрузку, а в случае запуска с правами пользователя, даже банального релогина).
В Windows существует технология — политика ограниченного запуска приложений. Её можно активировать в режиме «запрещать всё, что не разрешено». Если поставить запрет полный — для всех, включая администраторов, все файлы, включая библиотеки, то мы получим точную гарантию того, что посторонний (не входящий в список разрешённых) файл не будет запущен. По-крайней мере я пока не слышал, чтобы в этой технологии были дыры. Обращаю внимание, нужно запрещать и библиотеки тоже, потому что печально известный конфикер запускается с флешек именно с помощью запуска библиотеки обманом rundll32.
Однако, запреты и разрешения не будут иметь смысла, если не сформулировать правила, которые запретят запуск «чужаков».
Модель безопасности
Перед тем, как описать подробно конфигурацию, сформулирую теоретические принципы её организации:
1. То, куда пользователь может писать закрыто для запуска.
2. То, что пользователь может запускать, закрыто для записи.
+79
Дополнительные 24 часа в сутках. Игры со временем -2
8 min
8.7KВ первой части материала разговор шел об относительности времени, много внимания уделено ведению списка дел. Пожалуйста, прочитайте, тот материал, чтобы повествование не было отрывочным, а вы могли окинуть взглядом все приемы эффективного уплотнения времени.
Начало материала
В продолжении речь будет идти о том, как нам уплотнить время и какие техники для этого существуют. В каждом случае, помните, что если вам претит излагаемая техника, вы физически не воспринимаете ее, то не стоит ломать свое сознание и себя. Значит это не для вас. Кто-то заимствует технику целиком, кто-то возьмет только ее часть, это нормально. Все мы отличаемся и поэтому то, что хорошо одному, не подходит для другого. Найдите свой путь, моя задача показать вам возможные варианты.
Линейный конвейер. Путь из точки А в точку Б.
С раннего детства наш мир упорядочен, все примеры, которые нам подкидывает жизнь, родители, школа, сугубо линейны. Исключения редки, воспринимаются как нечто выбивающиеся из правил. Помните, школьные задачки про путь из пункта А в пункт Б, в которых еще встречались промежуточные точки. Это ключевой алгоритм всех действий, которым обучают в обычной, среднестатистической школе. Мы с детства знаем, что для достижения результата, надо сделать то-то и то-то. В этом нет ничего плохого, ведь линейность действий проста, понятна, предсказуема. Вот только есть небольшая проблема, не всегда линейные действия и поведение наиболее эффективно в реальной жизни.
Начало материала
В продолжении речь будет идти о том, как нам уплотнить время и какие техники для этого существуют. В каждом случае, помните, что если вам претит излагаемая техника, вы физически не воспринимаете ее, то не стоит ломать свое сознание и себя. Значит это не для вас. Кто-то заимствует технику целиком, кто-то возьмет только ее часть, это нормально. Все мы отличаемся и поэтому то, что хорошо одному, не подходит для другого. Найдите свой путь, моя задача показать вам возможные варианты.
Линейный конвейер. Путь из точки А в точку Б.
С раннего детства наш мир упорядочен, все примеры, которые нам подкидывает жизнь, родители, школа, сугубо линейны. Исключения редки, воспринимаются как нечто выбивающиеся из правил. Помните, школьные задачки про путь из пункта А в пункт Б, в которых еще встречались промежуточные точки. Это ключевой алгоритм всех действий, которым обучают в обычной, среднестатистической школе. Мы с детства знаем, что для достижения результата, надо сделать то-то и то-то. В этом нет ничего плохого, ведь линейность действий проста, понятна, предсказуема. Вот только есть небольшая проблема, не всегда линейные действия и поведение наиболее эффективно в реальной жизни.
+33
Срываем сроки
2 min
1.3KКогда уже закончится этот ад? Такой вопрос частенько задаёт себе рядовой фрилансер в повседневной жизни. Вроде и платят нормально, и ТЗ изложен доходчиво (не так, как в прошлом проекте), но всё равно — не прёт… Уже и баш весь перечитал, вконтакте всем отписался, потроллил на хабре, но поработать никак не получается, хоть доделывать осталось всего ничего, если собраться с силами — можно за две недели добить… И вот так один дедлайн сменяется другим, затем начинается игра в прятки с заказчиком, потом обоюдные обиды, плохие отзывы… Знакомо, не правда ли?
+67
Вышел SDK для uTorrent Apps, приз $1000 за лучшее применение
1 min
641Как и обещалось, BitTorrent выложил SDK для uTorrent Apps и документацию, так что теперь у всех появилась возможность создавать собственные приложения на базе uTorrent 3.0. Например, владелец трекера могут внедрить поиск по своему трекеру прямо в P2P-клиент.
Чтобы стимулировать разработчиков, компания BitTorrent даже организовала конкурс с призом в $1000 за лучшее приложение uTorrent Apps, которое будет опубликовано в течение ближайшего месяца, то есть до 13 августа 2010 года.
Чтобы стимулировать разработчиков, компания BitTorrent даже организовала конкурс с призом в $1000 за лучшее приложение uTorrent Apps, которое будет опубликовано в течение ближайшего месяца, то есть до 13 августа 2010 года.
+19
Работа с Visual Studio Team Foundation Server 2010
7 min
97KДанная статья будет полезна тем, кто не устанавливал и не использовал Visual Studio Team Foundation Server раньше. TFS может быть частью очень сложной инфраструктуры, которая включает отчеты, интеграцию с SharePoint, множественные домены, распределенные базы данных и т.д., но я не собираюсь затрагивать эти области. Моя основная задача – это помочь разобраться с базовыми элементами TFS (система контроля версий, система отслеживания ошибок и заданий и система автоматических сборок) и начать использовать данную систему.
+17
NoSQL, используя MongoDB, NoRM и ASP.NET MVC
5 min
13KTranslation
В данной статье, я хотел бы рассказать, как работать с NoSQL и документо-ориентированной базой данных MongoDB, NoRM и ASP.NET MVC 2.
NoSQL и документо-ориентированная база данных
В этом году особенно заметны активные движения в направлении NoSQL и люди постоянно обсуждают о применении документо-ориентированных баз вместе с веб-приложениями. Согласно Википедии “NoSQL — движение, продвигающее свободный класс не реляционных хранилищ данных, которое прервало длинную историю реляционных баз данных. Данные хранилища могут не требовать фиксированных схем для таблиц, чаще всего избегают join-операций и обычно имеют горизонтальное масштабирование. Преподаватели часто ссылаются на подобные базы данных, как на структурированные хранилища.
+18
Pivotal Tracker
3 min
28KМы все прекрасно понимаем, что не существует универсальной системы управления проектами, которая бы подходила для всех случаев. Выбор системы целиком и полностью зависит от Ваших нужд. Если вы не нуждаетесь в репозитариях, и для общения Вам достаточно комментариев в тикетах, а работаете Вы над проектром по «гибким» методологиям, то возможно одним из лучших вариантов будет — Pivotal Tracker.
Пост в первую очередь предназначен для тех, кто не знаком с Pivotal Tracker, или тех кто считает его сложным и непонятным.
+37
Opera 10.50 (под Windows) и как подружить её с Silverlight
1 min
9.3KНедавно, после того как обновил браузер Opera, сестренка попросила меня разобраться, почему вместо привычного плеера появилась странная картинка.
Перешел на страницу установки… но увидел надпись Microsoft Silverlight may not be supported on this browser, и таблицу поддерживаемых браузеров (см. ниже), среди которых Opera не было. Но выход всё же был. Инструкция под хабракатом.
Перешел на страницу установки… но увидел надпись Microsoft Silverlight may not be supported on this browser, и таблицу поддерживаемых браузеров (см. ниже), среди которых Opera не было. Но выход всё же был. Инструкция под хабракатом.
+26
Пробуем TorrentStream — смотрим торренты онлайн
5 min
112KСобственно, про топик-ссылку "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 (кодеки).
Что это? Просмотр фильмов в .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 (кодеки).
+40
Различия между Silverlight на Windows и Windows Phone
14 min
2KTranslation
Данный топик описывает различия реализации между Silverlight 3 на Windows и Silverlight на Windows Phone.
Советую ознакомиться, что поддерживает Silverlight на Windows Phone, а также более детально ознакомиться с информацией о не поддерживаемых типах и членах.
Советую ознакомиться, что поддерживает Silverlight на Windows Phone, а также более детально ознакомиться с информацией о не поддерживаемых типах и членах.
+9
Расширение возможностей IntelliSense для XAML-редактора Visual Studio 2010
3 min
1.7KTranslation
Оценив новые возможности IntelliSense в редакторе кода VS 2010, по принципу PascalCase, когда по ходу печати вы получаете список предполагаемых команд. К сожалению, новые вкусные возможности не доступны в XAML редакторе. Но нет повода для печали…
+20
Information
- Rating
- Does not participate
- Location
- Санкт-Петербург, Санкт-Петербург и область, Россия
- Date of birth
- Registered
- Activity