Некоторое время назад я прочитал интересный пост, посвященный полезным фрэймворкам и библиотекам для разработки под iOS. С вашего позволения и согласия Coder89 представляю «Полезные штуки для iOS-разработчика часть вторая».
Николай Воробьев @Kano
User
Suggest.io: на пути к идеальному поиску
2 min
16KЖивой поиск для вашего сайта
Поиск по сайту — проблема для большинства Интернет-ресурсов. Создание собственного поиска занимает время и требует навыков тонкой настройки поисковой системы. Если владелец сайта заинтересован, чтобы его поиск оставался актуальным, ему нужно иметь «под рукой» специалиста, который постоянно занимается совершенствованием алгоритма релевантности, индексом, базой запросов и т.д. Всё это хлопотно, поддержка собственного поиска требует серьезных затрат.
Suggest.io восполняет этот пробел. Новый сервис ближе других подошёл к решению задачи организации живого поиска по сайту c минимумом затрат времени на установку.

+38
Эффективное использование WebAPI: self hosting REST-сервисов
5 min
44KС выходом ASP.NET WebAPI у разработчиков появилась возможность быстро создавать REST-сервисы в удобном виде, с одной стороны полностью реализуя принципы REST, а с другой используя всю мощь платформы ASP.NET.
Про возможности и применение WebAPI написано уже достаточно много статей, например, вы можете узнать о интересной функции самодокументирования API сервиса через ApiExplorer.
Существует еще одна замечательная возможность WebAPI, про которую написано не так много — это возможность WebAPI осуществлять самостоятельный хостинг сервиса (self hosting). В этой статье на примере разбирается, как создавать и запускать REST selfhosting-сервисы на базе WebAPI.
Для предоставления доступа к API сервиса не всегда является целесообразным разворачивать его на базе сервера IIS. Если сервис не является частью какого-либо веб-приложения, имеет смысл запускать его на базе собственной инфраструктуры.
Другим вариантом использования механизма self hosting может быть запуск сервисов на платформах, которые не содержат сервер IIS либо на которых запуск IIS осложнен или излишен.
Так или иначе, WebAPI позволяет вам создавать сервисы независимые от IIS, доступ к которым может быть получен без установки веб-приложения на веб-сервер .
Про возможности и применение WebAPI написано уже достаточно много статей, например, вы можете узнать о интересной функции самодокументирования API сервиса через ApiExplorer.
Существует еще одна замечательная возможность WebAPI, про которую написано не так много — это возможность WebAPI осуществлять самостоятельный хостинг сервиса (self hosting). В этой статье на примере разбирается, как создавать и запускать REST selfhosting-сервисы на базе WebAPI.
Self hosting REST-сервиса
Для предоставления доступа к API сервиса не всегда является целесообразным разворачивать его на базе сервера IIS. Если сервис не является частью какого-либо веб-приложения, имеет смысл запускать его на базе собственной инфраструктуры.
Другим вариантом использования механизма self hosting может быть запуск сервисов на платформах, которые не содержат сервер IIS либо на которых запуск IIS осложнен или излишен.
Так или иначе, WebAPI позволяет вам создавать сервисы независимые от IIS, доступ к которым может быть получен без установки веб-приложения на веб-сервер .
+7
Полезные штуки для iOS-разработчика #1
4 min
83KНа Хабре в свое время было несколько статей «Очень много полезных штук для AS3». Автор попытался собрать ссылки на самые полезные и интересные библиотеки. И т.к. в последнее время я разрабатываю под iOS, решил последовать его примеру и сделать то же самое, но для своей платформы. Описания почти прикладывать не буду, все есть на страничках проектов.
+104
RESTful API для сервера – делаем правильно (Часть 1)
13 min
334KTranslation
В 2007-м Стив Джобс представил iPhone, который произвел революцию в высокотехнологичной индустрии и изменил наш подход к работе и ведению бизнеса. Сейчас 2012-й и все больше и больше сайтов предлагают нативные iOS и Android клиенты для своих сервисов. Между тем не все стартапы обладают финансами для разработки приложений в дополнение к основному продукту. Для увеличения популярности своего продукта эти компании предлагают открытые API, которыми могут воспользоваться сторонние разработчики. Пожалуй Twitter был первым в этой сфере и теперь число компаний, последовавших этой стратегии, растет стремительно. Это действительно отличный способ создать привлекательную экосистему вокруг своего продукта.
+67
Непутевые заметки о 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
165KВсем привет!
Как-то раз мне пришла в голову идея проанализировать вакансии размещенные на Хабре. Конкретно интересовало, есть ли зависимость между размером зарплаты и наличия высшего образования. А еще сейчас у студентов идет сессия (в том числе и у меня), то возможно кому-то уже надоело трепать нервы на экзаменах и этот анализ будет полезен.
Так как я программист на .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
13KРешая упражнения к книге «Программируем коллективный разум», я решил поделиться реализацией одного из алгоритмов упомянутого в этой книге (Глава 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.4KМногие из вебмастеров, наверняка, пользуются сервисами Google Analytics и Яндекс.Метрика. Хотелось бы рассказать про сервис, который никак не отменяет гигантов статистики, но может быть неплохим и увлекательным дополнением.

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

Сервис имеет trial период (для активации нужна кредитная карта), воспользовавшись которым, мы втянулись и решили остаться на платном сервисе.
Итак, что же дает этот сервис?
+30
Windows-компьютер без антивирусов
6 min
64KПредупреждение: Описанное в статье несколько устарело, т.к. я забросил винды в эпоху 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.8KВ первой части материала разговор шел об относительности времени, много внимания уделено ведению списка дел. Пожалуйста, прочитайте, тот материал, чтобы повествование не было отрывочным, а вы могли окинуть взглядом все приемы эффективного уплотнения времени.
Начало материала
В продолжении речь будет идти о том, как нам уплотнить время и какие техники для этого существуют. В каждом случае, помните, что если вам претит излагаемая техника, вы физически не воспринимаете ее, то не стоит ломать свое сознание и себя. Значит это не для вас. Кто-то заимствует технику целиком, кто-то возьмет только ее часть, это нормально. Все мы отличаемся и поэтому то, что хорошо одному, не подходит для другого. Найдите свой путь, моя задача показать вам возможные варианты.
Линейный конвейер. Путь из точки А в точку Б.
С раннего детства наш мир упорядочен, все примеры, которые нам подкидывает жизнь, родители, школа, сугубо линейны. Исключения редки, воспринимаются как нечто выбивающиеся из правил. Помните, школьные задачки про путь из пункта А в пункт Б, в которых еще встречались промежуточные точки. Это ключевой алгоритм всех действий, которым обучают в обычной, среднестатистической школе. Мы с детства знаем, что для достижения результата, надо сделать то-то и то-то. В этом нет ничего плохого, ведь линейность действий проста, понятна, предсказуема. Вот только есть небольшая проблема, не всегда линейные действия и поведение наиболее эффективно в реальной жизни.
Начало материала
В продолжении речь будет идти о том, как нам уплотнить время и какие техники для этого существуют. В каждом случае, помните, что если вам претит излагаемая техника, вы физически не воспринимаете ее, то не стоит ломать свое сознание и себя. Значит это не для вас. Кто-то заимствует технику целиком, кто-то возьмет только ее часть, это нормально. Все мы отличаемся и поэтому то, что хорошо одному, не подходит для другого. Найдите свой путь, моя задача показать вам возможные варианты.
Линейный конвейер. Путь из точки А в точку Б.
С раннего детства наш мир упорядочен, все примеры, которые нам подкидывает жизнь, родители, школа, сугубо линейны. Исключения редки, воспринимаются как нечто выбивающиеся из правил. Помните, школьные задачки про путь из пункта А в пункт Б, в которых еще встречались промежуточные точки. Это ключевой алгоритм всех действий, которым обучают в обычной, среднестатистической школе. Мы с детства знаем, что для достижения результата, надо сделать то-то и то-то. В этом нет ничего плохого, ведь линейность действий проста, понятна, предсказуема. Вот только есть небольшая проблема, не всегда линейные действия и поведение наиболее эффективно в реальной жизни.
+33
Срываем сроки
2 min
1.3KКогда уже закончится этот ад? Такой вопрос частенько задаёт себе рядовой фрилансер в повседневной жизни. Вроде и платят нормально, и ТЗ изложен доходчиво (не так, как в прошлом проекте), но всё равно — не прёт… Уже и баш весь перечитал, вконтакте всем отписался, потроллил на хабре, но поработать никак не получается, хоть доделывать осталось всего ничего, если собраться с силами — можно за две недели добить… И вот так один дедлайн сменяется другим, затем начинается игра в прятки с заказчиком, потом обоюдные обиды, плохие отзывы… Знакомо, не правда ли?
+67
Вышел SDK для uTorrent Apps, приз $1000 за лучшее применение
1 min
648Как и обещалось, 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
Information
- Rating
- Does not participate
- Location
- Санкт-Петербург, Санкт-Петербург и область, Россия
- Date of birth
- Registered
- Activity