Pull to refresh
21
0
Злой Щавель @Ghedeon

User

Send message

Хороших книг пост

Reading time2 min
Views70K


А давайте давайте соберём здесь хорошие книги, которые просто стоило собрать.
Суть в том, что просто давно стоило сложить хорошие книги в одном посте, чтобы было что прочитать в дороге — или просто для души.
Читать дальше →
Total votes 84: ↑72 and ↓12+60
Comments392

Игра с «материальными» цветами стала ещё проще

Reading time2 min
Views18K


Не так давно вышла пятая по счёту версия Android, к которой разработчики системы подошли весьма кардинально. Было обновлено и добавлено множество функционала и API. Но для пользователей и разработчиков релиз всё таки наиболее отличился своим редизайном. Дизайнеры из Google быстро покорили сердца пользователей новым Material design.
Подробности
Total votes 27: ↑27 and ↓0+27
Comments9

Как мы учили кнопку плавать

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

В нашей концепции (приложений, сайта surfingbird.ru) активно используется такое понятие как «сёрф». Сервис генерирует для пользователя набор релевантных его интересам статей и переход к следующей, рекомендуемой статье мы называем «сёрфом». После очередного редизайна мы кнопку сёрф потеряли (раньше она была сверху, в акшенбаре, и до неё было не очень удобно тянуться), чем пользователи были очень возмущены. После просмотра ролика с превью материального дизайна мы загорелись идеей реализовать нечто подобное в приложении.

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

image
Читать дальше →
Total votes 21: ↑15 and ↓6+9
Comments14

Автоматическое тестирование Android приложений c любовью

Reading time1 min
Views16K
Новая видеозапись одного из докладов с нашей конференции мобильных разработчиков #MBLTDev. На этот раз мы решили выложить видео для Android-разработчиков и тестировщиков «Автоматическое тестирование Android приложений c любовью» от Алексея Коровянского.

Алексей является Android-разработчиком и основателем некоммерческого сообщества разработчиков Google Developer Group Омск.


Презентация

В своем докладе Алексей рассказал про проблемы и трудности, с которыми сталкиваются при автоматизации тестирования. Привел примеры, исходя из своего опыта, решение проблем, примеры того, что было раньше, что есть сейчас и сделал прогноз того, что нас ожидает в будущем. Кроме того, Алексей рассказал про тестирование на примере двух фреймворков и про Espresso и Robolectic.
Читать дальше →
Total votes 22: ↑18 and ↓4+14
Comments0

Чистый код с Google Guava

Reading time9 min
Views112K
Наверное, любому программисту доводилось видеть код, пестрящий большим количеством повторов и реализации «низкоуровневых» действий прямо посреди бизнес-логики. Например, посреди метода, печатающего отчёт, может оказаться такой фрагмент кода, конкатерирующий строки:

StringBuilder sb = new StringBuilder();
for (Iterator<String> i = debtors.iterator(); i.hasNext();) {
  if (sb.length() != 0) {
    sb.append(", ");
  }
  sb.append(i.next());
}
out.println("Debtors: " + sb.toString());

Понятно, что этот код мог бы быть более прямолинейным, например, в Java 8 можно написать так:

out.println("Debtors: " + String.join(", ", debtors));

Вот так сразу гораздо понятнее, что происходит. Google Guava – это набор open-source библиотек для Java, помогающий избавиться от подобных часто встречающихся шаблонов кода. Поскольку Guava появилась задолго до Java 8, в Guava тоже есть способ конкатенации строк: Joiner.on(", ").join(debtors).
Рассмотрим часто встречаемые шаблоны кода
Total votes 41: ↑36 and ↓5+31
Comments20

Правильно просыпаемся

Reading time3 min
Views17K
Во сколько Вы просыпаетесь? Я не говорю о том моменте, когда звонит надоевший будильник и Вам приходится вылезать из под теплого одеяла, я спрашиваю о том часе, когда в каждом уголочке тела ощущается бодрость, мысли становятся ясными, глаза живыми, а движения четкими и ловкими. До некоторых перемен в моей жизни бывали дни, когда я так и не проснувшись за весь день, снова ложился в кровать.

Вы когда-нибудь замеряли артериальное давление? Я уверен, что многие даже не знают каким оно должно быть. Не ловили себя на мысли, что у вас постоянно мерзнут руки или ноги? Если хотя бы над одним вопросом вы задумались и у вас нет проблем с сердечно-сосудистой системой, гипертонии, нарушения кровообращения мозга, тромбофлебита, злокачественных опухолей или заболеваний крови, вам должен быть интересен мой личный опыт внедрения в свою жизнь такой банальной вещи как контрастный душ. Именно о своем опыте я и хочу поделится с вами и буду рад, если кто-то дополнит мои наблюдения фактами или личными достижениями.
Читать дальше →
Total votes 137: ↑114 and ↓23+91
Comments125

Спать мало, но правильно?

Reading time7 min
Views899K
Навеяно этим постом от юзера case. Пост не новый, и на главную он не попал.
Но я вот наткнулся на него сегодня и решил написать кое-что о сне. Уверен, что это будет полезно многим хабравчанам, да и случайным читателям тоже.
Читать дальше →
Total votes 713: ↑670 and ↓43+627
Comments420

Размышления о произрастании рук разработчиков механических клавиатур. Обзор и разбор Cougar 700K

Reading time11 min
Views44K
image

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

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

Требования к клавиатуре: интересный hi-tech стиль (но строгий), набор текста (программирование-форумы-чаты), и пощупать, как ведет себя в играх. Для этого лучше всего подойдут переключатели Cherry MX Brown или Blue (Brown — игры+текст, Blue — текст). Знаю о существовании китайских клонов переключателей, но пока не готов им довериться (клавиатуры стоят примерно ту же цену — смысл брать китайцев?). Требовалась традиционная раскладка, без кучи дополнительных клавиш и ненужных функций (по возможности).

Среди многообразия и чудовищности всех моделей остановился на Corsair K70 и Cougar 700K.
Читать дальше →
Total votes 24: ↑14 and ↓10+4
Comments99

За один проход

Reading time7 min
Views156K
Среди задач по программированию часто попадаются такие: дана последовательность однотипных элементов (обычно это числа), требуется за один проход по ней найти какую-нибудь характеристику (среднее квадратическое отклонение, количество минимальных элементов, непрерывный участок с наибольшей суммой...) Дополнительное ограничение — последовательность может быть очень длинной, и в память не поместится. Других ограничений на элементы последовательности, обычно, не накладывается.
С этими задачами всё, более или менее, понятно: нужно найти то, что на мехмате МГУ называют «индуктивным расширением» искомой функции, и реализовать её вычисление. Если найти не удалось (требуемый объём памяти слишком велик), то задача не решается.
Но попадаются и другие задачи. В них есть дополнительные ограничения на элементы последовательности в совокупности, и эти ограничения приходится существенно использовать для решения (и проверять их не надо). Простейшая такая задача выглядит так:

Задача 1. В последовательности записаны целые числа от 1 до N в произвольном порядке, но одно из чисел пропущено (остальные встречаются ровно по одному разу). N заранее неизвестно. Определить пропущенное число

Решение очевидно: просматриваем числа, находим их количество K и сумму S. По условию, N=K+1, значит, сумма чисел от 1 до N будет равна (K+1)*(K+2)/2, и пропущенное число равно (K+1)*(K+2)/2-S. Если вы почему-то боитесь переполнений, то работайте с беззнаковыми числами (там переполнения не страшны — но будьте осторожны при вычислении (K+1)*(K+2)/2 :) ), или вместо суммы ищите XOR всех чисел.
Другие задачи
Total votes 73: ↑72 and ↓1+71
Comments56

Проектирование новостной ленты в социальных сетях

Reading time9 min
Views39K


Так сложилось, что за последние пару лет я успел поучаствовать в разработке нескольких социальных сетей. Главная задача, которую приходилось решать в каждом из этих проектов, заключалась в формировании новостной ленты пользователя. При чём важным условием была возможность масштабирования этой ленты в условиях роста числа пользователей (точнее, числа связей между ними) и, как следствие, — количества контента, который они деливерят друг другу.

Мой рассказ будет о том, как я, превозмогая трудности, решал задачу формирования новостной ленты. А также я расскажу о подходах, которые наработали ребята из проекта Socialite, и которыми они поделились на MongoDB World.
Читать дальше →
Total votes 38: ↑34 and ↓4+30
Comments68

Лицензия для вашего open-source проекта

Reading time98 min
Views185K
В этой статье я хочу немного поговорить об авторском праве и свободных лицензиях на ПО. Текст является результатом самостоятельного выбора лицензий и их применения к своим проектам.

Статья будет полезна тем, кто хочет:

— в общих чертах понять, что такое авторское право (но лучше обратиться к юристу);
— подобрать свободную лицензию для своего проекта;
— разобраться, что нужно писать в шапке файла исходного кода.
Читать дальше →
Total votes 136: ↑132 and ↓4+128
Comments117

Иконка бокового меню из Material Design (как в Google Play)

Reading time4 min
Views43K
Привет, Хабражители!

Наверное, многие заметили, что в последних версиях приложений Google Play и Google+ Фото для Android иконка бокового меню (NavigationDrawer) имеет красивую анимацию (переход из трёх полосок в стрелку). Пример здесь. Мне стало интересно, как это реализовано, и я отправился в путешествие по просторам Всемирной паутины в поисках ответа на этот вопрос. Теперь же спешу поделиться с вами этим рецептом.

Кому интересно, прошу под кат.
Читать дальше →
Total votes 28: ↑19 and ↓9+10
Comments36

Codeship.io: бесплатный CI сервер для приватного репозитория Github/Bitbucket

Reading time3 min
Views28K

Сразу заинтригую: в результате мы получим связку бесплатного приватного git репозитория на Bitbucket и бесплатный* Continious Integration сервер (SAAS), который будет собирать проект и прогонять все тесты после каждого пуша.
* — бесплатная подписка дает возможность тестировать 5 приватных репозиториев и максимум 100 билдов в месяц.

Мне этого для личного проекта достаточно.

Приведу пример для PHP, проект на Symfony2, но данный сервис поддерживает ещё и Ruby, Node.js, Python.

Читать дальше →
Total votes 28: ↑22 and ↓6+16
Comments19

Почему будущее за удалённой работой (часть 2)

Reading time5 min
Views61K


Немногим менее года назад я написал первую часть этой статьи, пообещав, что вторая будет посвящена рассмотрению самых частых возражений. Конечно, если кто-то и ждал продолжения, вероятно успел уже прочно забыть за это время. Утешая себя мыслью, что лучше всё-таки поздно, чем никогда, берусь наконец исправить ситуацию. Итак.
Читать дальше →
Total votes 94: ↑58 and ↓36+22
Comments189

Опыт удаленного поиска работы в Лондоне

Reading time4 min
Views46K
Год назад мне позвонил агент из Лондона — они искали Javascript программистов для Badoo. Смутно помня, что для работы в UK требуется сложная рабочая виза, я сообщил им сразу, что гражданство у меня только российское. Агент сообщил, что это не обязательно беда, и что у Badoo есть несколько квот для людей без права работать в Британии. Позже он правда перезвонил, извинился, и сказал что квоты закончились.

В этом году я получил гражданство Евросоюза и решил снова попытать удачу. Активный поиск занял около 3 месяцев. Тут будет список разнообразных мыслей, которые пришли в процессе поиска.

  • К поиску работы стоит подходить как к игре. Есть правила игры, есть победившие и проигравшие, и всегда можно сыграть другую игру. Не стоит воспринимать весь процесс слишком всерьез.
  • Правила поведения в интервью, технические задания и вопросы с большей вероятностью не будут иметь отношения к реальным проектам. Точно также финальное впечатления от тебя командой может не иметь отношения к тому, что ты на самом деле можешь.
  • Стоит предельно четко выяснить для себя на какие позиции вам охота попасть. Это сэкономит кучу времени — можно быстро отсеивать все ненужное. Я начинал поиск как фронтенд девелопер, потом очертил круг как фулл-стек девелопер с перспективой выхода на project manager.
  • Скайп интервью — ок. Техническое задание на выходные — ок. Слетать в Лондон на первое интервью или первое техническое задание — не ок. Лететь имеет смысл только когда уже все друг другу нравятся, и у обоих сторон есть положительное представление о том, как все может сложиться. Или просто если хочется посмотреть город.

Читать дальше →
Total votes 79: ↑64 and ↓15+49
Comments54

Айтишник на отдыхе: добавим немного астрономии?

Reading time6 min
Views125K

Стремительно приближается лето и сопутствующие ему выезды на природу. Посиделки затягиваются заполночь, и над головой появляются звезды. Но, как правило, зведное небо таинственно и непонятно — астрономию в школах не преподают толком, наверное, уже с конца 80-х, да и кто помнит, чему его учили в школе, если это не использовалось в жизни постоянно? А в небе хватает интересного, особенно если потратить чуть-чуть времени на астрономическое обеспечение выезда на природу.
Читать дальше →
Total votes 107: ↑104 and ↓3+101
Comments81

Часть 2. Сколько мегабит/с можно пропустить через зрительный нерв и какое разрешение у сетчатки? Немного теории

Reading time13 min
Views395K


Другие публикации из этой серии


Часть 1. Unboxing VisuMax — фемто-лазера для коррекции зрения
Часть 3. Знакомьтесь — лазер по имени Amaris. Переезды и первое пробуждение VisuMax
Часть 4.1 Возвращаем зрение. От очков до эксимерного лазера
Часть 4.2 Возвращаем зрение. От очков до эксимерного лазера

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

Я постараюсь рассмотреть человеческое зрение через призму IT. Если кому-то не слишком интересно читать часть, посвященную биологическим аспектам зрения — ничего страшного. Просто пропустите разделы, начиная с оптической системы глаза, и сразу переходите к традиционному конкурсу от наших девушек. Однако, я все же рекомендовал бы ознакомиться с этим материалом, чтобы лучше понять следующую статью, в которой мы будем рассматривать LASIK, Femto-LASIK, ReLEx SMILE и другие методы лазерной офтальмохирургии.

Есть настроение разобраться, что именно говорят эти непонятные люди в белых халатах, задумчиво глядя на результаты вашего обследования? Вы хотите узнать немного нового об уникальном природном даре — зрении? Тогда добро пожаловать под habracut. Как обычно — много иллюстраций и трафика (≈5 MB).
Читать дальше →
Total votes 267: ↑260 and ↓7+253
Comments426

Патч для гипервизора сознания

Reading time4 min
Views150K
image

Недавно в топе Хабра появился пост, заставивший меня вылезти из read-only: «Overclock мозга или внутрення виртуализация сознания».
Вводящее в заблуждение название и не менее спорное содержание. Неприятные ощущения вызывает еще и тот факт, что при всей неточности и искажении фактов автор осмелился прикрепить к нему метку tutorial.

Желающих взглянуть на осознанные сновидения без налета авторской фантазии, прошу под кат.
Читать дальше →
Total votes 135: ↑113 and ↓22+91
Comments168

Температура цвета

Reading time10 min
Views377K
image
По нашим психологическим ощущениям цвета бывают тёплыми и горячими, бывают холодными и очень холодными. На самом деле все цвета горячие, очень горячие, ведь у каждого цвета есть своя температура и она очень высокая.
Читать дальше →
Total votes 192: ↑174 and ↓18+156
Comments65

Лазерная арфа для ценителей современной музыки

Reading time1 min
Views52K


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

Читать дальше →
Total votes 44: ↑37 and ↓7+30
Comments22

Information

Rating
Does not participate
Registered
Activity