Как стать автором
Обновить
14
0

Java Developer

Отправить сообщение

Разработка через страдание

Время на прочтение6 мин
Количество просмотров55K
От переводчика:
Немало копий сломано в спорах о том, когда уместнее KISS, а когда DRY, когда лучше как можно быстрее и проще решить задачу любыми средствами, а когда стоит создавать красивые и универсальные абстракции. Натан Марц, автор популярного фреймворка Storm, используемого в Твиттере, предлагает свой вариант. Чтобы не создавать тонны бесполезного кода ради абстрактной универсальности и в то же время не позволять системе превращаться в кашу из костылей, он использует «разработку через страдание» (suffering oriented programming).



Однажды меня спросили: «Как ты решился пойти на такой страшный риск — писать Storm одновременно с запуском стартапа?» (Storm — фреймворк для распределённых вычислений в реальном времени). Да, пожалуй, со стороны создание такого крупного проекта для стартапа кажется крайне рискованным. Тем не менее, с моей точки зрения это вообще не было рискованным делом. Трудным, но не рискованным.

Я использую стиль разработки, который сильно уменьшает степень риска таких больших проектов, как Storm. Я называю этот стиль «разработкой через страдание». В двух словах: не занимайтесь реализацией технологий, от отсутствия которых вы не испытываете страданий. Этот совет применим как к большим, архитектурным решениям, так и к маленьким повседневным задачам. Разработка через страдание существенно уменьшает риск, гарантируя, что вы всегда работаете над чем-то важным, и что вы хорошо разобрались в предметной области, прежде чем вложить в решение много сил.

Я придумал такую мантру разработки: «Сначала сделай, чтобы было. Затем — чтобы было красиво. Затем — чтобы было быстро».
Читать дальше →
Всего голосов 101: ↑93 и ↓8+85
Комментарии64

Упражнения для тренировки мозга

Время на прочтение3 мин
Количество просмотров126K

В силу склада ума или давнего увлечения скорочтением, мнемотехникой и прочим, у меня был повышенный интерес к играм состоящим из набора упражнений для тренировки мозга(BrainChallenge, Dr.Kawashima и др.). Переиграв практически во все что было на десктопе и nds, появилось желание использовать такие игры для каждодневных тренировок, но для этого они не совсем подходят(в тексте объясню почему). Поэтому на досуге решил написал небольшой сайт с набором такого рода упражнений.
Читать дальше →
Всего голосов 96: ↑81 и ↓15+66
Комментарии83

Чем же занимаются программисты, и как объяснить это остальным?

Время на прочтение7 мин
Количество просмотров251K

Наверное, у каждого программиста возникала ситуация, когда совершенно не знакомые с IT люди просили его объяснить, в чём же состоит суть его профессии. Так уж сложилось, что у большинства людей понятие «программист» ассоциируется либо с замкнутым гиком в очках и свитере, либо с неким гениальным красноглазым подростком-хакером — но при этом никто не знает, чем именно он занимается.

Как рассказать им об этом, не пугая страшными терминами и фрагментами кода?
Под катом я воспроизведу такой рассказ, а также развенчаю несколько мифов о программировании.
Случай из жизни
Всего голосов 187: ↑156 и ↓31+125
Комментарии235

Mobile Professional Days в Харькове

Время на прочтение1 мин
Количество просмотров2.5K
В международный день защиты информации, 30 ноября, мобильные разработчики Украины и России готовы поделиться своими знаниями в области мобильных технологий, в частности об iOS, Android и Windows Phone. Всё это именуется конференцией Mobile Professional Days 2012!

image

На мероприятии гостей ждет: 10-тичасовая программа с докладамми, мастер-классы по использованию CocoaPods и Core Data, сотни новых лиц и полезных знакомств, отличное музыкальное сопровождение, IT-afterparty, конкурсы от организаторов и многое другое.

Зарегистрироваться и ознакомиться с программой можно уже сейчас.
Всего голосов 21: ↑16 и ↓5+11
Комментарии2

Готовится образовательный ресурс по Android от XDA-developers

Время на прочтение1 мин
Количество просмотров12K

Известный ресурс по Android XDA Developers начал подготовку собственного учебника по Android и всему, что связано с этой системой.

За время существования самого сайта и форума накопилось множество материалов, которые могут оказаться крайне полезными для Android-разработчиков, многие из которых для поиска нужной информации банально используют Google. Однако, для стройной системы обучения, что особенно важно для новичков, было бы целесообразным иметь некоторое упорядоченное централизованное хранилище, которым должен стать новый проект — XDA-University.

Проект будет представлять из себя коллективный труд многих людей, на котором бесплатно будет доступна самая актуальная информация из недр XDA-Developers. Кроме этого, готовится к публикации PDF-книга, которую также бесплатно можно будет загрузить и использовать оффлайн. На данный момент всем интересующимся предлагается оставить свой email на сайте XDA-developers.com с тем, чтобы вовремя получить уведомление о начале работы.
Источник
Всего голосов 49: ↑45 и ↓4+41
Комментарии3

Как два программиста хлеб пекли

Время на прочтение5 мин
Количество просмотров260K


Я работаю программистом уже много лет, на протяжении которых, как это ни странно, я всё время что-то программирую. И вот какую интересную вещь я заметил: в коде, написанном мной месяц назад, всегда хочется что-то чуть-чуть поправить. В код полугодичной давности хочется поменять очень многое, а код, написанный два-три года назад, превращает меня в эмо: хочется заплакать и умереть. В этой статье я опишу два подхода. Благодаря первому архитектура программы получается запутанной, а сопровождение — неоправданно дорогим, а второй — это принцип KISS.

Итак, представим себе, что есть два программиста. Один из них умный, прочёл кучу статей на Хабре, знает каталог GoF наизусть, а Фаулера — в лицо. Другой же делает всё просто. Первого будут звать, например, Борис Н., а второго — Маркус П. Само собой, имена вымышленные, и все совпадения с реальными людьми и программистами случайны.

Итак, к ним обоим приходит проектный менеджер (если в вашей вселенной PM не ходит сам к программистам, назовите его как-то иначе, например BA или lead, сути это не изменит) и говорит:
— Ребята, нам нужно, чтобы делался хлеб.

Именно так, «делался», без уточнения способа производства.

Как же поступят наши программисты?
Читать дальше →
Всего голосов 380: ↑348 и ↓32+316
Комментарии328

“АвтоУскорение”: как попасть без денег в Топ-100 Google Play и что делать дальше?

Время на прочтение10 мин
Количество просмотров35K
Все началось 19 мая 2011 года, когда друзья на день рождения подарили мне новенький смартфон Google Nexus S. До этого я долгое время я работал программистом, потом специфика моей деятельности поменялась, но «руки то помнят». Поэтому я сразу задумал что-нибудь запрограммировать для моего нового классного смартфона, и написал приложение Авто-ускорение. Сегодня хочу рассказать, что я узнал, понял и сделал за два месяца с момента старта.
Читать дальше →
Всего голосов 60: ↑49 и ↓11+38
Комментарии46

AndroidKickstartr — создай современный проект в пять кликов

Время на прочтение2 мин
Количество просмотров40K

На днях появился новый веб-сервис, позволяющий в несколько кликов создавать новый проект для андроид со всеми современными вкусностями сторонних библиотек.
Название AndroidKickstartr.com отлично описывает его задачу — максимально быстро и просто сконфигурировать новый проект, добавив туда все самое необходимое.
Читать дальше →
Всего голосов 58: ↑50 и ↓8+42
Комментарии38

Бюджетный 3D-кинотеатр как бизнес-проект

Время на прочтение11 мин
Количество просмотров54K
Эта статья о том, как организовать свой 3D-кинотеатр используя существующие на сегодняшний день технологии с наименьшими затратами, то есть именно бюджетный вариант.
В данном посте я не буду рассматривать оборудование для премьерных показов фильмов, как в больших кинотеатрах, поэтому сразу расскажу почему:
Премьерный показ фильмов на сегодняшний день возможен, только на специальном дорогостоящем оборудовании сертифицированными под стандарт DCI, это такая защита данных от несанкционированного копирования.
Что бы иметь представление о какой стоимости профессионального оборудования идет речь, то это порядка 3 млн.руб. (100 000$) Согласитесь, такие вложения в ряде случаев могут быть вполне не оправданы. Я же предложу схемы, так называемых бюджетных мини 3D-кинотеатров с начальным вложением от 300 тыс.руб. (10 000$, простите, за такое грубое округление) Кого заинтересовало, прошу подкат.
Узнать больше о мини 3D-кинотеатре
Всего голосов 81: ↑77 и ↓4+73
Комментарии75

Подборка полезного для любителей Twitter Bootstrap

Время на прочтение2 мин
Количество просмотров250K
В подборке сервисы, плагины, темы и другие полезности, облегчающие работу с Twitter Bootstrap.

Стилизация


BootSwatchr — быстрая стилизация Twitter Bootstrap.

Читать дальше →
Всего голосов 248: ↑243 и ↓5+238
Комментарии58

Диаграммы разложения на простые множители

Время на прочтение3 мин
Количество просмотров8.5K
Недавно в свободное время написал программу для генерации диаграмм, полученных с помощью разложения числа на простые множители или "факторизационных диаграмм".

Вот так выглядит 700:


По расположению точек несложно заметить, что всего их здесь 7*5*5*2*2.

Далее описание того, как это работает.
Читать дальше →
Всего голосов 91: ↑87 и ↓4+83
Комментарии15

Создание плагина для Intellij Platform (IntelliJ IDEA, RubyMine, WebStorm, PhpStorm, PyCharm and AppCode)

Время на прочтение5 мин
Количество просмотров17K
Привет, Хабр!
В данном топике я расскажу как создать простой плагин для IntelliJ IDEA и PyCharm. Так как все IDE содержат одинаковый интерфейс для работы с плагинами, то модификация его для других систем не требует значительных усилий (подробнее), в отличии от процесса непосредственной разработки.

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

Плагины пишутся на Java, UI создается на SWING. Документация для разработки плагинов состоит всего лишь из нескольких страниц и горстки примеров. На просторах интернета данная тематика не отражена совсем. Единственное, что слегка помогает это наличие исходных кодов у некоторых уже созданных плагинов.

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


Читать дальше →
Всего голосов 38: ↑37 и ↓1+36
Комментарии8

Удивительно простой, но красивый CSS-эффект

Время на прочтение4 мин
Количество просмотров67K
Наткнулся на очень простой в реализации, но интересный rollover-эффект для кнопок на CSS. Автор — некий японец ksk1015.



Демонстрация эффекта и процесс написания.
Читать дальше →
Всего голосов 141: ↑130 и ↓11+119
Комментарии31

Нейросеть Google приступила к работе

Время на прочтение2 мин
Количество просмотров118K
В июне 2012 года группа исследователей из Google запустила нейросеть на кластере 1000 компьютеров (16 тыс. процессорных ядер; 1 млрд связей между нейронами). Эксперимент стал одним из самых масштабных в области искусственного интеллекта, причём систему изначально создавали для решения практических задач.

Самообучаемая нейросеть — достаточно универсальный инструмент, который можно использовать на разных массивах данных. В компании Google её применили для улучшения точности распознавания речи: «Мы получили уменьшение на 20-25% количества ошибок при распознавании, — говорит Винсент Ванхоук (Vincent Vanhoucke), руководитель отдела распознавания речи в Google. — Это значит, что многие люди получат безошибочный результат». Нейросеть оптимизировала алгоритмы для английского языка, но Ванхоук говорит, что аналогичные улучшения могут быть достигнуты и для других языков и диалектов.
Читать дальше →
Всего голосов 152: ↑140 и ↓12+128
Комментарии184

Фишинг паролей в GMail

Время на прочтение1 мин
Количество просмотров91K
Сегодня с утра обнаружил у себя в почте вот такое письмо:



На самом деле никаких файлов к письму не прилагается, а все шесть ссылок (View, Download...) ведут по одному и тому же адресу:
http://95.211.83.65/~ru1/account.googlemail.com/viewer/13083e7f5f2c0890&mt/0AgIDhQrUEZCMdGc0ejVXZGZpb1FrbWo5cmc2ZVZOalE/?email=tutjaubralsvojmeil@gmail.com

И что там?
Всего голосов 214: ↑195 и ↓19+176
Комментарии91

Восстановление расфокусированных и смазанных изображений. Повышаем качество

Время на прочтение5 мин
Количество просмотров210K
Представляю вашему вниманию заключительную статью из трилогии «Восстановление расфокусированных и смазанных изображений». Первые две вызвали заметный интерес — область, действительно, интересная. В этой части я рассмотрю семейство методов, которые дают лучшее качество, по сравнении со стандартным Винеровским фильтром — это методы, основанные на Total Variaton prior.
Также по традиции я выложил новую версию SmartDeblur (вместе с исходниками в open-source) в которой реализовал этот метод. Итоговое качество получилось на уровне коммерческих аналогов типа Topaz InFocus. Вот пример обработки реального изображения с очень большим размытием:


Читать дальше →
Всего голосов 355: ↑352 и ↓3+349
Комментарии86

Восстановление расфокусированных и смазанных изображений

Время на прочтение10 мин
Количество просмотров221K
Восстановление искаженных изображений является одной из наиболее интересных и важных проблем в задачах обработки изображений – как с теоретической, так и с практической точек зрения. Частными случаями являются размытие из-за неправильного фокуса и смаз – эти дефекты, с которым каждый из вас хорошо знаком, очень сложны в исправлении – именно они и выбраны темой статьи. С остальными искажениями (шум, неправильная экспозиция, дисторсия) человечество научилось эффективно бороться, соответствующие инструменты есть в каждом уважающем себя фоторедакторе.

Почему же для устранения смаза и расфокусировки практически ничего нету (unsharp mask не в счет) – может быть это в принципе невозможно? На самом деле возможно – соответствующий математический аппарат начал разрабатываться примерно 70 лет назад, но, как и для многих других алгоритмов обработки изображений, все это нашло широкое применение только в недавнее время. Вот, в качестве демонстрации вау-эффекта, пара картинок:



Я не стал использовать замученную Лену, а нашел свою фотку Венеции. Правое изображение честно получено из левого, причем без использования ухищрений типа 48-битного формата (в этом случае будет 100% восстановление исходного изображения) – слева самый обычный PNG, размытый искусственно. Результат впечатляет… но на практике не все так просто. Под катом подробный обзор теории и практические результаты.
Осторожно, много картинок в формате PNG!
Читать дальше →
Всего голосов 291: ↑289 и ↓2+287
Комментарии93

Работать с AdMob в России станет проще с 1 октября 2012 года

Время на прочтение2 мин
Количество просмотров6.6K
Для российских разработчиков мобильных приложений, использующих AdMob в качестве средства монетизации есть хорошие новости. С 1 октября вступает в силу новая инструкция ЦБ РФ О ПОРЯДКЕ
ПРЕДСТАВЛЕНИЯ РЕЗИДЕНТАМИ И НЕРЕЗИДЕНТАМИ УПОЛНОМОЧЕННЫМ
БАНКАМ ДОКУМЕНТОВ И ИНФОРМАЦИИ, СВЯЗАННЫХ С ПРОВЕДЕНИЕМ
ВАЛЮТНЫХ ОПЕРАЦИЙ…


В это инструкции, в отличие от устаревшего документа, явно присутствуют термины «оферта» и «публичная оферта».

Читать дальше →
Всего голосов 12: ↑11 и ↓1+10
Комментарии3

Разработчики Google Play из России теперь могут получать банковские переводы через Google Checkout

Время на прочтение1 мин
Количество просмотров37K
image

Приятная новость для многих российских разработчиков игр и приложений поступила от команды Google Checkout. Подготовлено важное обновление, которое позволит разработчикам из Бразилии, России и Тайваня получать банковские переводы за продажи в Google Play через аккаунт Google Checkout. Очередной запланированный платеж девелоперы получат через аккаунт Google AdSense, однако в дальнейшем будет использоваться новый способ оплаты.
Подробности
Всего голосов 32: ↑31 и ↓1+30
Комментарии74

Кастомный ExpandableListView в Android

Время на прочтение5 мин
Количество просмотров64K
В данной статье хочу привести небольшой пример работы с кастомизацией ExpandableListView — двухуровневого списка.

То, что должно получиться в итоге

image

Читать дальше →
Всего голосов 31: ↑25 и ↓6+19
Комментарии10

Информация

В рейтинге
Не участвует
Откуда
Белгород, Белгородская обл., Россия
Дата рождения
Зарегистрирован
Активность