Search
Write a publication
Pull to refresh
52
0.5
Дмитрий @bogolt

User

Send message

Trafaret — библиотека для проверки и преобразования данных

Reading time5 min
Views5.7K
Исходные данные — вы строите некий сервис, и узнаете, что будете получать данные из вне в определенном формате.
Предположим что это будет JSON, структуру его определяете не вы, и вообще вот она:
Читать дальше →

Тьюринговская трясина

Reading time4 min
Views5.9K
Бойтесь Тьюринговской трясины, в которой всё возможно, но ничего конкретного нельзя сделать просто.
Алан Перлис

Что такое Тьюринговская трясина? Это состояние, в котором программа становится столь могущественной, столь обобщенной, что усилия по решению с её помощью какой-либо конкретной задачи равны или превосходят затраты на написание с нуля программы, которая решает только данную задачу.
Читать дальше →

Продажа Raspberry Pi стартует сегодня в 10:00 МСК

Reading time1 min
Views12K


«Леди и джентльмены, заведите свои будильники!» — предупредили публику разработчики Raspberry Pi. Можно с большой долей уверенности предположить, что 29 февраля 2012 года в 6:00 GMT (10:00 по московскому времени) начнётся открытая продажа этого Linux-компьютера размером с кредитную карточку.
Читать дальше →

Прислушивайтесь к своему сообществу, но не позволяйте ему указывать, что вам нужно делать

Reading time6 min
Views2K
Перевод статьи из блога Джефа Этвуда, одного из основателей Stack Exchange Network, сети вебсайтов, посвященных работе с вопросами и ответами в различных областях. Среди прочих вебсайтов этой сети стоит выделить Stack Overflow — самый первый вебсайт, созданный в рамках Stack Exchange Network и посвященный вопросам и ответам в области программирования. Отдельная благодарность karaboz за помощь и вдохновение.


Наверняка вы знаете, как журналисты любят спрашивать в своих интервью о вашей самой большой слабости или о вашей самой крупной ошибке, которую вы когда-либо совершили? Эти вопросы могут выглядеть стереотипными или даже походить на клише. Но будьте внимательны, когда отвечаете на них: они намного важнее, чем кажутся.


imageКогда люди спрашивают меня о самой большой ошибке, которую я совершил в процессе создания Stack Overflow (Прим. переводчика — далее SO) я рад, что не надо выдумывать и говорить банальности. Я могу честно и открыто рассказать об огромной, нелепой и, до смешного, дурацкой ошибке, которую совершил в самом начале разработки SO. Что ещё хуже, я могу рассказать о такой ошибке, которую продолжал совершать потом ещё и на протяжении девяти месяцев на фоне продолжающихся протестов сообщества.

Читать дальше →

Почему проекты в IT занимают в 2-3 раза дольше, чем планируется?

Reading time3 min
Views24K
Мы с другом решаем пойти в поход от Сан Франциско до Лос Аджелеса, чтобы заскочить в гости к нашим друзьям на Ньюпорт Бич. Посмотрим на карту и примерно прикинем путь по берегу:

image

Путь займёт около 400 миль, в день мы можем пройти 4 мили в час по десять часов, так что придём мы туда примерно через 10 дней. Мы звоним друзьям и бронируем столик на 6 вечера в воскресенье.

Читать дальше →

Существующие приложения и будущие Android x86 устройства

Reading time4 min
Views14K
Вскоре на рынке появятся новые смартфоны и планшеты, работающие на базе x86 архитектуры, о своих планах на выпуск подобных устройств уже заявили компании Lenovo и Motorola. Что принетсет новая платформа разработчикам программного обеспечения? Об этом я и хотел бы поговорить в данной статье.

Но сначала немного о планах и серьезности намерений производителей «железа».
Читать дальше →

Давненько не брал я в руки шашки. Знаем, знаем, как Вы играете

Reading time4 min
Views5K
Ситуация в appStore для casual разработчиков быстро меняется.
2 года назад можно было заработать, выпуская платное приложение одновременно с бесплатным аналогом.
После появления в магазине более 100 000 программ этот трюк стал неэффективен.
Год назад шустрые парни стали выкладывать только бесплатные приложения, но с покупками внутри.
Одновременно число программ в appStore перевалило за 500 000.
В ближайшее время ( судя по финансовым отчетам 2012 года) только реклама внутри приложения принесет быстрые деньги.



До прошлого года я использовал фирменную рекламу от Apple.
Однако родная iAd реклама работает исключительно на территории врага.
Чтобы добрать деньги с игроков, живущих не в США (а это минимум 25%), следует прикрутить рекламу от, скажем, Google, которая будет мелькать там, где не работает iAd.

Под habracut я опишу механизм AdWhirl, реализующий показ баннеров от разных производителей.
Пример кода взят из бессмертной игры нашего прекрасного детства.

Читать дальше →

HashLife на коленке

Reading time5 min
Views8.7K
После возни с трехмерной игрой «Жизнь» я вспомнил о том, что для обычной, конвеевской версии этой игры существует алгоритм под названием «Hashlife». Он несколькими фразами описан в Википедии, и приведенной там картинки с комментарием («конфигурация через 6 октиллионов поколений») для меня было достаточно, чтобы держаться от этой идеи подальше: сколько же ресурсов нужно этому алгоритму? Стоит ли за него браться вообще?

Общая идея алгоритма такая.

Допустим, что у нас есть квадрат поля размером N*N (N>=4 – степень двойки). Тогда мы можем однозначно определить состояние его центральной области размером (N/2)*(N/2) через T=N/4 шага. Если мы запомним состояние исходного квадрата и результат его эволюции в словаре, то сможем в следующий раз, встретив такой квадрат, сразу определить, что с ним станет.

Предположим, что для квадратов N*N эволюцию на N/4 шага мы считать умеем. Пусть у нас есть квадрат 2N*2N. Чтобы просчитать его развитие на N/2 шагов, можно сделать следующее.

Разобьем квадрат на 16 квадратиков со стороной N/2. Составим из них 9 квадратов со стороной N, для каждого из них найдем результат эволюции на N/4 шага. Получится 9 квадратов со стороной N/2. В свою очередь, из них составим уже 4 квадрата со стороной N, и для каждого из них найдем результат эволюции на N/4 шага. Полученные 4 квадрата со стороной N/2 объединим в квадрат со стороной N – он и будет ответом.



Читать дальше →

Кто кого учит: преподаватель студента или студент преподавателя?

Reading time11 min
Views17K


Вступление



Нет, мой пост не про Никиту Михалкова, как некоторые могли бы подумать, гляда на скриншоты. Мне хотелось бы поведать хабрасообществу о методах преподавания IT-дисциплин на примере нескольких ВУЗов одного из крупных городов в России с позиции человека, который раньше занимался тем, что писал на заказ студентам этих ВУЗов курсовые и дипломные работы и тесно работал не только с учащимися и с преподавательским составом, но и с работодателями. Параллельно это не мешало мне учиться на всё той же специальности, связанной с IT и увидеть всю «систему» своими глазами изнутри. Я читаю хабр уже около четырех лет и заметил, что на нём пишут много статей на тему образования, но тот ВУЗ, где я учился отличается тем, что получил несколько грантов в области нанотехнологий и кластерных вычислений, поэтому я с удовольствием расскажу о всей подноготной таких популярных в телевизоре тем.

В завершение статьи я также хотел бы вывести некоторые тезисы на тему образования в IT, которые будут несколько различаться с общепринятыми, чтобы дать вам пищу для обсуждений в комментариях, если конечно это будет вам интересно…
Читать дальше →

О личном опыте программирования в транспорте, макдональдсе и прочих людных и шумных местах

Reading time2 min
Views4.2K

Введение


Я Ruby on Rails разработчик в одной довольно большой и развивающейся компании. Обожаю свою работу, но также в свободное время пишу различные проекты для души и иногда для денег. В рабочее время писать упомянутое совесть мешает, а личное время всегда хочется сэкономить и потратить на какое-то приятное безделие.

В силу специфики рода деятельности мне нужен следующий реквизит (думаю, это джентельменский набор многих из нас): ноутбук с заряженной батареей, место для сидения и интернет (не постоянно)

Читать дальше →

Знакомство с мнемоникой

Reading time6 min
Views99K
Введение

Доброго времени суток! Сразу оговорюсь, что цель этой статьи — познакомить и, возможно, заинтересовать вас такой штукой, как мнемоника. Мнемоника — наука о запоминании. То бишь совокупность способов и уловок, которые помогут вам запомнить большие объёмы информации в правильной последовательности (Например, 100 случайных слов (чисел) можно запомнить последовательно с интервалом в среднем в 6 секунд). Некоторые умудряются запомнить несколько тысяч цифр после числа Пи. Так же мнемотехника помогает в освоении иностранного языка ). Но нам пока рано об этом думать. Вы спросите:«Зачем мне ета ваша мнемоника?». Я отвечу: вы можете использовать её не только как хобби (от простого облегчения жизни, до того, что можете удивлять друзей, предложив с ними поочерёдно запомнить N информации поочерёдно), но и участвовать в соревнованиях (да-да, есть соревнования по запоминанию, где участвуют не прирождённые гении, а люди, натренировавшие себе память).
Читать дальше →

Как создавать «зеленый» код

Reading time6 min
Views5.4K
Что такое энерго-эффективность в применении к мобильным платформам? Простыми словами это возможность сделать больше, затратив при этом меньше энергии.

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

Как мы разрабатывали мобильный гид Toozla для Symbian и MeeGo

Reading time3 min
Views3.1K
Мысль о том, что наш мобильный аудио-гид по интересным местам Toozla нужно написать для платформы Symbian, нас посещала давно. Но до создания приложения руки дошли лишь в начале 2011 года — примерно за месяц до решения Nokia сделать ставку на Windows Phone 7. Впрочем, на наши планы это никак не повлияло: устройства на Symbian и в то время, и по сей день занимают большой процент на рынке.

Выбирая необходимый вариант разработки, мы исходили из трёх возможных путей.

Первый — использовать нативный Symbian SDK. Основным плюсом при выборе Symbian SDK был бы максимальный охват устройств, начиная с Symbian 3rd Edition. Однако на этом SDK писать программы довольно сложно (особенно, когда дело доходит до UI), поэтому этот вариант разработки мы быстро отмели.

Второй путь — использовать Qt SDK 1.0. Данный devkit вышел в середине 2010 года и был основан на Qt 4.6.3. В отличие от Symbian SDK, данный вариант позволял упростить разработку (особенно работу со специфичными для мобильных устройств API) и рассчитывать на кроссплатформенность. Среди минусов данного решения были меньший охват устройств (только Symbian v1 и Symbian v3) и, всё-таки, некоторая сложность разработки современного UI.

Читать дальше →

Кроссплатформенность — это круто

Reading time8 min
Views30K
Этот пост участвует в конкурсе „Умные телефоны за умные посты“.

Ни для кого не секрет, что сегодня мобильные игры очень популярны. Возможность написать одну из таких игр есть у каждого разработчика, даже начинающего. Часто возникает вопрос с выбором платформы. Конечно, хочется, чтобы игра была сразу везде: на iOS и Android, на WP7 и MeeGo, на десктопе и в браузере. И чтобы все это можно было лекго реализовать с помощью бесплатных инструментов.



В этой статье я расскажу вам, как сделать основную часть кода платформонезависимой, а для остального использовать удобные средства разработки для каждой конкретной платформы.
Читать дальше →

Сон и продуктивная деятельность

Reading time8 min
Views106K

Вступление


Доброго времени суток, %habrauser%! Думаю, в этой статье я не открыл ничего нового. Просто меня самого заинтересовала тема продуктивного сна. Несколько последних лет я был приверженцем мнения, что сон – это бесполезная трата времени, к сожалению необходимая организму. И посему, я максимально старался сократить время сна. Но чем больше я это делал, тем больше я начинал походить на зомби. И тогда я стал искать альтернативу. И результатом обобщения всей найденной мной информацией и стала эта статья. Итак, поехали!
Читать дальше →

Программирование в стиле Теремка

Reading time2 min
Views2K
Перевод старался делать точным, насколько это возможно, и изменил лишь название компании, которая используется как пример, но по сфере деятельности и принципу работы в рознице схожа с той, что в оригинале.

Каждый блинчик в меню Теремка — всего лишь набор из примерно 8ми ингредиентов. С такой простой периодической таблицей элементов компания заработала 1.9 млрд долларов в прошлом году (нет, не Теремок, а всё-таки Taco Bell).
Чем больше я программирую и проектирую системы, тем больше я понимаю, что в множестве случаев можно достигнуть желаемого результата банально сочетая базовый набор инструментов, данный нам Unix. В конце концов, функциональность — это ценность, а код — это задолженность. Это утверждение обратно абсурднму тренду DevOps (разработчико-админов), исходя из которого системные администраторы начинают писать юнит-тесты и прочие вещи, чтобы помочь разработчикам, и гласит что программирование в стиле Теремка это разработчики, которые знают достаточно об администрировании (и Unix в целом) так, что они не изобретают велосипед, и приходят к простым и масштабируемым решениям.

Вот конкретный пример: представьте, вам нужно скачать и записать на диск миллионы веб-страниц для дальнейшей обработки. Как это сделать? Детки-крутышки скажут, что нужно написать распределённый паук на Clojure и запустить на EC2, коммуницируя с помощью SQS или 0MQ.

Ответ Теремка?

Мой опыт разработки/продвижения/поддержки. Perfect Ear

Reading time8 min
Views5.4K
Здравствуйте, коллеги,

наконец-то у меня дошли руки написать немного о своем опыте на примере моего главного на сегодняшний день приложения Perfect Ear (в русском маркете известного как Абсолютный Слух).

Образовательное приложение, являющееся сборником упражнений для тренировки слуха. Приложение, как не трудно догадаться, охватывает весьма узкий круг потребителей, тем не менее, мне удалось достичь определенного успеха с ним. Оно 2 недели пробыло в списке featured приложений, о чем более детально расскажу далее.

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

В конце приведу некоторые цифры.

Читать дальше →

Бета-тестирование iPhone-приложений

Reading time3 min
Views22K
logo В этой статье я хотел бы рассказать читателям про бета-тестирование приложений, сложностях, которые возникают на этом пути, а также о максимальной выгоде, получаемой из этого.

Ни для кого не секрет, что бета-тестирование на смартфонах — довольно трудоемкий процесс, а уж на iPhone — и подавно. Все дело в его многоступенчатости: сперва пользователю нужно найти UDID своего устройства, затем отправить его разработчикам. Только после этих действий со стороны юзера его аппарат вносится в список зарегистрированных девайсов, а уж потом собирается рабочая версия и отсылается ему на почту письмо с просьбой об установке.
Читать дальше →

Идеальная архитектура

Reading time4 min
Views60K
Существует много разных взглядов на разработку архитектуры и дизайна современных приложений. Некоторые архитекторы стремятся продумать все до мелочей, разрисовать use case-ы всех классов и модулей, проанализировать миллион возможных способов их использования, все их обязательно задокументировать и уже потом приступить к этапу кодирования.

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

Читать дальше →

Еще раз о поиске простых чисел

Reading time7 min
Views230K
Скульптура `Решето Эратосфена` (Стэнфордский университет) В заметке обсуждаются алгоритмы решета для поиска простых чисел. Мы подробно рассмотрим классическое решето Эратосфена, особенности его реализации на популярных языках программирования, параллелизацию и оптимизацию, а затем опишем более современное и быстрое решето Аткина. Если материал о решете Эратосфена предназначен в первую очередь уберечь новичков от регулярного хождения по граблям, то алгоритм решета Аткина ранее на Хабрахабре не описывался.

На снимке — скульптура абстрактного экспрессиониста Марка Ди Суверо «Решето Эратосфена», установленная в кампусе Стэнфорского университета
Читать дальше →

Information

Rating
3,314-th
Registered
Activity