Возможно, моя заметка для многих будет всем известной истиной, но для меня, как и для многих моих знакомых, это оказалось приятной новостью. Поскольку область нашей деятельности – веб-разработка, мое обращение именно к представителям этого сегмента. Хотя все, о чем пойдет речь ниже, будет относиться ко всем компаниям, которые занимаются разработкой ПО.
Томас Шестаков @Megaprog
Пользователь
Дао Вебсервиса. (Или да хватит же изобретать велосипеды!)
12 min
59K
Увы, реальность за хабракатом меня сильно разочаровала — я увидел очередной велосипед, да еще и с квадратными колесами. (Коллеги, ничего личного, только техническое обсуждение.) Правда, авторы честно сказали, что увидели на нескольких сайтах модное слово REST и решили сделать по нему. Только вот поняли они этот «РЭСТ» по-своему, примерно как Дед Щукарь читал и понимал толковый словарь.
В этом топике я призываю по-настоящему покончить с велосипедами в API сайтов. Ведь получается какой анекдот: АПИ разрабатывается для упрощения доступа к сайту и легкости подключения внешних систем, а получается такой, что с ним еще сложнее, чем без него :)
Чуть ниже под катом я подпишу смертный приговор всем велосипедам в универсальных API. Чтобы не быть голословным, я все проиллюстрирую примерами.
Но должен предупредить сразу — после прочтения статьи вы не сможете без рвотного рефлекса смотреть на очередной велосипед Васи Пупкина под гордым названием «универсальное API сайта».
В повествовании будут рассмотрены следующие вопросы:
- Базовые технологии: XML-RPC, REST, SOAP и краткое сравнение
- Дао вебсервиса
- Просветленные API
- Как отличить сайтовое API от говна
- Выводы
+262
REST vs SOAP. Часть 1. Почувствуйте разницу
6 min
484KНекоторое время назад я гуглил интернет по поводу “REST vs SOAP”, прочитал пару статей и вроде бы все понял, но не почувствовал от этого никакого удовлетворения. Что-то было не так, то ли я не почувствовал основную идею, то ли просто читал, одновременно слушая новый музон и думая о новой фиче в проекте. Как появилось время, решил восполнить этот пробел, заодно написав полезную статью по этому поводу.
+95
RESTful API для сервера – делаем правильно (Часть 1)
13 min
334KTranslation
В 2007-м Стив Джобс представил iPhone, который произвел революцию в высокотехнологичной индустрии и изменил наш подход к работе и ведению бизнеса. Сейчас 2012-й и все больше и больше сайтов предлагают нативные iOS и Android клиенты для своих сервисов. Между тем не все стартапы обладают финансами для разработки приложений в дополнение к основному продукту. Для увеличения популярности своего продукта эти компании предлагают открытые API, которыми могут воспользоваться сторонние разработчики. Пожалуй Twitter был первым в этой сфере и теперь число компаний, последовавших этой стратегии, растет стремительно. Это действительно отличный способ создать привлекательную экосистему вокруг своего продукта.
+67
Как я поступил на бакалавриат в Канаде
5 min
184K
0. Вступление
Здравствуйте, дорогие читатели Хабра!
В этом топике я расскажу Вам о том, как осуществилась моя главная цель и, по совместительству, мечта: поступить после российской средней школы в университет Канады. Данная тема будет полезна как ученикам 10-11 классов, так и их родителям, которые хотят отправить своего ребенка на учёбу заграницу. Я постараюсь полностью описать все затраты, подводные и надводные камни, тонкости процесса поступления, получения канадской визы, перелета и проживания на собственном примере.
Топик для удобства делю на части. Приятного чтения!
+100
Падение Angry Birds
5 min
48KTranslation
В прошлом году я проводил вебинар, участие в котором возможно было только по приглашениям и каждый его участник подписывал NDA соглашение перед посещением. На этом вебинаре я рассказывал о текущем состоянии индустрии мобильных игр и о том, как независимые разработчики могут занять доминирующее положение.
В частности я представлял углубленный анализ Angry Birds VS Tap Pet Hotel и того, как премиальные игры за $0.99 оказались побеждены бесплатными играми. Теперь это звучит очевидно, но хочу напомнить, что это было 12 месяцев назад и во время этого вебинара Tap Pet Hotel было лишь несколько месяцев отроду. Многие люди на вебинаре на самом деле не понимали как работают социальные игры.
Магазины приложений прошли через два этапа. Второй этап завершился около 6 месяцев назад.
Этап 1 в монетизации приложений был обусловлен платными играми (по 0.99 за игру).
Этап 2 это «Free to play» и сейчас такие приложения правят магазином.
Никакая из игр серии Angry Birds сейчас не входит в Топ-50 самых прибыльных приложений на iPhone. Самой близкой к чарту является оригинальная игра на 52 месте:

В частности я представлял углубленный анализ Angry Birds VS Tap Pet Hotel и того, как премиальные игры за $0.99 оказались побеждены бесплатными играми. Теперь это звучит очевидно, но хочу напомнить, что это было 12 месяцев назад и во время этого вебинара Tap Pet Hotel было лишь несколько месяцев отроду. Многие люди на вебинаре на самом деле не понимали как работают социальные игры.
Магазины приложений прошли через два этапа. Второй этап завершился около 6 месяцев назад.
Этап 1 в монетизации приложений был обусловлен платными играми (по 0.99 за игру).
Этап 2 это «Free to play» и сейчас такие приложения правят магазином.
Этап 2 в жизни App Store: падение Злых Птиц
Никакая из игр серии Angry Birds сейчас не входит в Топ-50 самых прибыльных приложений на iPhone. Самой близкой к чарту является оригинальная игра на 52 месте:

+85
+12
Flash Builder 4 и юнит тесты
1 min
2.5KБыл приятно удивлен тем, что теперь создание юнит-тестов занимает считанные мгновения.
Итак, кратенько расскажу и покажу, как писать юнит-тесты в Flash Builder 4.
Это даже не статья, а просто описание нескольких простых шагов
Поехали!
Итак, кратенько расскажу и покажу, как писать юнит-тесты в Flash Builder 4.
Это даже не статья, а просто описание нескольких простых шагов
Поехали!
+25
Система распределения заказов среди исполнителей методом ангелов
8 min
24K
Задача усложняется, если исполнитель выполняет работу на территории заказчика. А услуга, которую он оказывает — вполне может быть выполнена без поддержки компании работодателя. Скажем, договорившись за полцены от официальной цены. Знакомо? Сантехники, репетиторы или даже девушки по вызову – все эти бизнесы остаются халтурами низкого уровня, во многом из-за сложности контроля со стороны работодателя. А диспетчеру, выполняющему эту работу, придется стать ангелом, чтобы распределить все заказы и никого не обидеть.
Наша задача — выбрать оптимального исполнителя, среди нескольких возможных.
+44
События .NET в деталях
9 min
153KЕсли вы .NET программист, то вы наверняка объявляли и использовали события в своем коде. Несмотря на это, не все знают, как события работают внутри и какие особенности связаны с их применением. В этой статье я попытался описать работу событий как можно более подробно, включая некоторые частные случаи, с которыми редко приходится иметь дело, но про которые важно и\или интересно знать.
+55
Слабые события в C#
11 min
81KTranslation
От переводчика
Недавно в проекте, где я работаю, мы столкнулись с проблемой утечки памяти. Прочитав множество статей — от рассказов по управлению памятью в .NET до практических рекомендаций по правильному освобождению ресурсов, я в том числе наткнулся на статью, в которой рассказывается, как корректно использовать события. Ее перевод я и хочу вам представить.
Это топик из песочницы, с которым я попал сюда на Хабр.
+59
Особенности поиска и устройства на работу программистом. И что плохого в современных хедхантерах
5 min
31KНи для кого не секрет, что программисты сейчас востребованы, и найти работу программисту с опытом не составляет труда. Спрос нынче больше предложения.
В этом посте я хочу описать свой опыт и наблюдения, которые я сделал после прохождения нескольких собеседований. Буду рад, если его прочитают не только соискатели, но и работодатели.
Небольшой дискламмер. Я программист и пишу с точки зрения программиста. Я сейчас не ищу работу. Я не представляю и не рекламирую ни одну из компаний, упомянутых в этом посте. Я получил оффер примерно от 6 из 9 компаний, где проходил собеседование. Я не вижу ничего плохого в том, чтобы открыто писать названия некоторых компаний, потому что они сами не делают тайны из своей деятельности и открыто публикуют свои вакансии. От моих рук ни один хедхантер не пострадал.
В этом посте я хочу описать свой опыт и наблюдения, которые я сделал после прохождения нескольких собеседований. Буду рад, если его прочитают не только соискатели, но и работодатели.
Небольшой дискламмер. Я программист и пишу с точки зрения программиста. Я сейчас не ищу работу. Я не представляю и не рекламирую ни одну из компаний, упомянутых в этом посте. Я получил оффер примерно от 6 из 9 компаний, где проходил собеседование. Я не вижу ничего плохого в том, чтобы открыто писать названия некоторых компаний, потому что они сами не делают тайны из своей деятельности и открыто публикуют свои вакансии. От моих рук ни один хедхантер не пострадал.
+187
Как создать простую Tower Defense игру на Unity3D, часть первая
16 min
128KTutorial
Здравствуйте! Давно уже хотел опубликовать эту статью, да не успевал выделить время. Заранее хотел бы предупредить, что статья рассчитана на не шибко знающего Unity3D пользователя, потому в тексте будет обилие пояснений.
Часть вторая
Всем заинтересовавшимся — добро пожаловать под кат!
Часть вторая
Всем заинтересовавшимся — добро пожаловать под кат!
+65
Type classes в Scala
4 min
25KRecovery Mode

В последнее время в сообществе Scala-разработчиков стали уделять всё большее внимание шаблону проектирования Type classes. Он помогает бороться с лишними зависимостями и в то же время делать код чище. Ниже на примерах я покажу, как его применять и какие у такого подхода есть преимущества.
Статься расчитана не только на программистов, пишущих на Scala, но и на Java — возможно, они получат для себя ответ, как, хотя бы в теории, выглядит решение для многих прикладных задач, в котором компоненты не связаны между собой и расширяемы уже после написания. Также это может быть интересно разработчикам и проектировщикам на любых других языках.
+9
Как я стал чемпионом Robocode
Medium
5 min
5.3KRetrospective
Я — Jdev, автор Robocode-бота Tomcat, который в ноябре/декабре 2011 года был Королём Премьер Лиги общего зачёта Robocode (пруф) без единого поражения, сейчас занимает 3-е место из 911 в процентном зачёте и является героем моего повествования. В этой статье я рассказываю о своём шестилетнем пути к победе.
+44
Сохранение контактной информации в Google Contacts
8 min
6.1KДобрый день, коллеги!
Как я и обещал в своей предыдущей статье, хочу поделится с вами информацией касательно использования Google Contacts API. Кому интересно узнать, как вызывать Google Contacts API из Java на Google Apps Engine — добро пожаловать под кат.
Как я и обещал в своей предыдущей статье, хочу поделится с вами информацией касательно использования Google Contacts API. Кому интересно узнать, как вызывать Google Contacts API из Java на Google Apps Engine — добро пожаловать под кат.
+12
Простой чат с помощью Channel API на Google App Engine для Python
10 min
5.8KПредставляю вашему вниманию вольный перевод статьи под названием "A Simple Chat using the Channel API". Так же я решил немного добавить своего кода.
Сегодня мы представляем вам новую статью для Google App Engine посвященную Сhannel API, которое появилось в декабре 2010 года в релизе 1.4. С этого момента стала возможной отправка сообщений напрямую с сервера клиенту и обратно без использования polling.
Поэтому стало достаточно просто реализовать чат на Google App Engine. Процесс реализации описан под катом.
Сегодня мы представляем вам новую статью для Google App Engine посвященную Сhannel API, которое появилось в декабре 2010 года в релизе 1.4. С этого момента стала возможной отправка сообщений напрямую с сервера клиенту и обратно без использования polling.
Поэтому стало достаточно просто реализовать чат на Google App Engine. Процесс реализации описан под катом.
+21
Bomberman Online и хабраэффект — 450 игроков на одной карте. Отчёт и детали игрового движка
4 min
33K
Как и обещали в топике-анонсе нашей игры, выкладываем отчёт о хабраэффекте и детали игрового движка.
+153
Как я стал indie gamedev-разработчиком или особенности национальной разработки на коленке
8 min
34KЯ не являюсь профессиональным разработчиком программного обеспечения и программирование практически никак не связано с моей основной трудовой деятельностью. Все гораздо хуже — это мое хобби. Смена деятельности весьма полезна и позволяет отдыхать от унылой и монотонной работы, а если она еще и позволяет извлекать удовольствие от процесса и результата, то это полезно вдвойне.
Для меня всегда интересным был gamedev (game development — разработка игр). Думаю, у каждого ребенка (подростка, гика, подставить свое) была такая пусть далекая и практически недостижимая, но мечта. Большинство вырастают и благополучно забывают о ней под грузом текущих проблем, а некоторые сохраняют ее даже до того момента, когда их дети вырастают и сами начинают мастерить что-то подобное. Мне повезло (или не повезло) относиться ко второй группе.
Для меня всегда интересным был gamedev (game development — разработка игр). Думаю, у каждого ребенка (подростка, гика, подставить свое) была такая пусть далекая и практически недостижимая, но мечта. Большинство вырастают и благополучно забывают о ней под грузом текущих проблем, а некоторые сохраняют ее даже до того момента, когда их дети вырастают и сами начинают мастерить что-то подобное. Мне повезло (или не повезло) относиться ко второй группе.
+46
Практические задания с сайта unity3dstudent.com
4 min
19KTutorial
Из постов DisaDisa — переводов уроков с сайта unity3dstudent — я узнал об этом интересном сайте. Помимо уроков (вполне вменяемых, хотя и не совсем логичных — местами повествование переходит на очевидные моменты языков программирования (javascript, в случае этих уроков), такие как циклы или булевые выражения) там оказались ещё и так называемые “Challenges” — практические задания на применение материала из уроков. Задания сопровождаются видео-примером результата решения.

Пока таких заданий всего три, но, будем надеяться, появятся ещё. Но даже эти задания позволяют на практике ощутить простоту и удобство Unity. Разумеется, они подразумевают самостоятельное решение (ссылки на задания будут перед их решением), но если что-то вдруг не получается, можно заглянуть сюда. Ещё одна цель поста (помимо разбора конкретных заданий) — показать на примере, что можно сделать с помощью Unity с приложением минимальных усилий.
/* Для понимания статьи желательно иметь хотя бы небольшой опыт работы с Unity (особенно с пользовательским интерфейсом) — можно посмотреть пару постов от DisaDisa или первые уроки на unity3dstudent.com */
В этой статье – только про первое из заданий. Остальные — в самое ближайшее время.
UPD: Вторая задача
UPD 2: Третья
Да, замечу ещё, что под формулировкой задания (видео + небольшой текст) на сайте даны ссылки на уроки, необходимые для выполнения задания.
Challenge accepted?

Пока таких заданий всего три, но, будем надеяться, появятся ещё. Но даже эти задания позволяют на практике ощутить простоту и удобство Unity. Разумеется, они подразумевают самостоятельное решение (ссылки на задания будут перед их решением), но если что-то вдруг не получается, можно заглянуть сюда. Ещё одна цель поста (помимо разбора конкретных заданий) — показать на примере, что можно сделать с помощью Unity с приложением минимальных усилий.
/* Для понимания статьи желательно иметь хотя бы небольшой опыт работы с Unity (особенно с пользовательским интерфейсом) — можно посмотреть пару постов от DisaDisa или первые уроки на unity3dstudent.com */
В этой статье – только про первое из заданий. Остальные — в самое ближайшее время.
UPD: Вторая задача
UPD 2: Третья
Да, замечу ещё, что под формулировкой задания (видео + небольшой текст) на сайте даны ссылки на уроки, необходимые для выполнения задания.
Challenge accepted?
+18
Information
- Rating
- Does not participate
- Location
- Москва, Москва и Московская обл., Россия
- Registered
- Activity