Как стать автором
Обновить
0
0
Andrei K @1110001111

Flutter, Android

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

Idiom Land — приложение для изучения английских идиом

Время на прочтение1 мин
Количество просмотров13K
В предыдущей статье на Мегамозге мы рассказали о том, как набрать первую 1000 фолловеров в Instagram, и о том, как мы придумали карточки, помогающие в изучении английских идиом (они же фразеологизмы, они же устойчивые выражения).

Так как обучающих карточек уже накопилось много (больше 800), мы решили собрать их в одном приложении — версия для iOS, версия для Android.



Приглашаем всех желающих попробовать наше приложение и написать свое мнение. С каждым обновлением мы планируем добавлять в приложение по 100 новых карточек. Пока что мы учим английскому на английском, но русская локализация тоже планируется.
Читать дальше →
Всего голосов 16: ↑13 и ↓3+10
Комментарии12

Автоматизация разработки в ZeptoLab

Время на прочтение5 мин
Количество просмотров22K
Для работы над нашими играми мы широко используем программных ботов, наделенных тем или иным интеллектом. Боты помогают нам разрабатывать, тестировать и эксплуатировать наши игры. Я хочу рассказать про несколько примеров такого симбиоза с автоматикой.

image
Вот так выглядит Ам Ням в игре Cut the Rope 2
Читать дальше →
Всего голосов 29: ↑27 и ↓2+25
Комментарии8

Создание синтезатора на JavaScript

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


Идея сделать браузерный синтезатор у меня появилась достаточно давно, ещё когда Audio API был в весьма зачаточном состоянии и практически единственным шансом извлечь звук из браузера (кроме воспроизведения готовых файлов) была генерация WAV с его последующей кодировкой в base64 и записью в аудио-тег. И если синтез и кодирование удавались без проблем (WAV формат довольно прост), то с потоковым аудио для музицирования в реальном времени всё было хуже и никакими ухищрениями не удавалось добиться бесшовной буферизации, в связи с чем идея и заглохла, так не успев родиться. За прошедшие годы браузеры в поддержке Audio API заметно прибавили, что в свою очередь вдохновило меня на новые эксперименты в этой области. В данной статье шаг за шагом описывается процесс создания браузерного синтезатора средствами HTML5, начиная с генерации простой синусоиды, продолжая коммутацией и модуляцией сигналов и заканчивая аудиоэффектами.
Читать дальше →
Всего голосов 45: ↑43 и ↓2+41
Комментарии9

19 принципов разработки по БЭМ, или что должен знать каждый разработчик библиотек

Время на прочтение11 мин
Количество просмотров43K
БЭМ набирает популярность и становится актуальнее — например, недавно Google выпустил новую библиотеку блоков под названием Material Design Lite, реализованную по БЭМ-методологии. Команда БЭМ тоже не сидела без дела — мы выпустили новую версию библиотеки bem-components, на базе которой построены сайты и проекты не только Яндекса, но и других разработчиков.

Эти события натолкнули нас на мысль ещё раз вспомнить и рассказать вам, как сформировались принципы разработки библиотек в БЭМ-методологии. Надеемся, что многим это будет интересно и полезно. Итак, поехали.

image

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

Если вы хотите узнать на примерах, как мы пришли к нашим принципам разработки, добро пожаловать под кат.
Читать дальше →
Всего голосов 68: ↑52 и ↓16+36
Комментарии32

Высоконагруженные сайты и приложения на Python / Django (29 проектов)

Время на прочтение9 мин
Количество просмотров135K
Наша компания довольно давно занимается разработкой больших веб-приложений на Python / Django. В рунете крайне мало информации об этом замечательном языке программирования и фремворке на его основе. Мы решили исправить эту ошибку и рассказать о популярных высоконагруженных сайтах на этой технологии, а также дать много интересных технических подробностей. Для удобства сравнения сайтов между собой мы приводим еще и немного статистики к каждому из проектов. В целом сайтов на Python / Django, конечно, очень много в мире, мы охватим только наиболее интересные по нашему мнению.

Небольшая таблица известных проектов (на основе данных http://builtwith.com/), кликабельно:
Читать дальше →
Всего голосов 51: ↑43 и ↓8+35
Комментарии56

Переход Todoist на Material Design

Время на прочтение9 мин
Количество просмотров23K
В рамках нашего конкурса для разработчиков приложений мы обещали перевести для вас несколько интересных материалов о том, как популярные приложения были переведены на новый язык визуального оформления информации: Material Design. На прошлой неделе мы рассказывали о Feedly, сегодня речь пойдёт о Todoist, одном из самых популярных таск-менеджеров для Android и iOS.


Читать дальше →
Всего голосов 13: ↑13 и ↓0+13
Комментарии4

Кофе с огурцами (Espresso + Cucumber)

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


    Относительно не так давно появилась замечательная библиотека Espresso для тестирования UI Android приложений. Её преимущества над аналогами обозревались не один раз. Если вкратце, то они заключаются в том, что это разработка Google для собственной ОС (ранее они сами использовали Robotium), а так же в лаконичности синтаксиса и скорости работы. Итак, мы решили идти в ногу со временем и использовать Espresso. Но нам мало тех плюсов, что уже есть, мы хотим BDD (http://en.wikipedia.org/wiki/Behavior-driven_development), мы хотим скриншотов и отчетов в json и html, мы хотим запускать это все на CI, в конце концов! Но обо всем по порядку. Я расскажу как подружить Cucumber (http://habrahabr.ru/post/62958/) и Espresso (http://habrahabr.ru/post/212425/) на небольшом примере. Всех, кто устал от Appium, кто хочет уйти от Robotium и тех, кому небезразлично тестирование Android, прошу под кат.
Читать дальше →
Всего голосов 23: ↑22 и ↓1+21
Комментарии4

Тайная жизнь мейкеров и хакатонщиков

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


На днях встретилась с замечательным человеком — Zentelechia Юрой Зубаровским (стартапер в сфере хардверных технологий). Он провел два дня в кругу инженеров, хакеров, дизайнеров, биологов и маркетологов. Поделился со мной тем, чему научился и что девушки тоже нужны в хардеврных проектах.

Что такое хакатон?

  • Хакатон – это инновационный способ сгенерировать новые идеи.
  • Хакатон – это непрерывная работа (в формате 24 или 48 часов) над своей идеей, прототипом, бизнес-планом проекта и финальной презентацией перед экспертами.
  • Хакатон – это площадка, которая объединяет специалистов из разных технических, экономических, креативных и управленческих областей.
  • Хакатон – это новый способ вовлечения и создания сообщества мейкеров и стартап-культуры.
  • Хакатон – это альтернатива лекциям, конспектам, сериалам и праздным выходным.
  • Хакатон – это tech-фитнес, техническая и предпринимательская прокачка мозгов.


Как это все происходит?

Все начинается с того, что ты регистрируешься на любой хакатон — AngelHack, Hack for People {Hardware}, HackDay и другие. Я поучаствовал в одном из них.
Читать дальше →
Всего голосов 9: ↑8 и ↓1+7
Комментарии5

Тестирование на Android: Robolectric + Jenkins + JaСoСo

Время на прочтение5 мин
Количество просмотров29K
Тестирование Android приложений — тема большая и емкая, говорить о ней можно бесконечно. Мы в Rambler&Co автотесты любим, пишем и активно используем для всех наших приложений. В данной статье мы расскажем, как получать и анализировать результаты тестирования android (и не только) приложений. Покажем как настроить Robolectric, JaCoCo и Jenkins, чтобы было вот так:


Читать дальше →
Всего голосов 22: ↑21 и ↓1+20
Комментарии4

Что такое красивый код, и как его писать?

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

1. Вступление


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

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

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

Профессии программиста, как и большинству других профессий, приходится учиться каждый день в течение нескольких лет, а, по большому счету, и всю жизнь. Вначале ты осваиваешь набор базовых знаний в объеме N семестровых курсов, потом долго топчешься по различным граблям, перенимаешь опыт старших товарищей, изучаешь хорошие и плохие примеры (плохие почему-то чаще).

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

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

В этом-то и заключается вся сложность: твое представление о “достойном” и “красивом” коде полностью основано на личном многолетнем опыте. Попробуй теперь передать это представление в сжатые сроки человеку с совсем другим опытом или даже вовсе без него.

Но если для нас действительно важно качество кода, который пишут люди, работающие вместе с нами, то попробовать все же стоит!
Читать дальше →
Всего голосов 97: ↑79 и ↓18+61
Комментарии146

Как 40 тем грамматики и 2000 слов сделали индустрию в несколько сотен миллиардов долларов (часть 1 из 2)

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


54750 писем за 5 лет. С разными вариациями одного и того же вопроса: «Как выучить иностранный язык».

Меня зовут Елена Шипилова и моя компания занимается преподаванием иностранных языков онлайн с 2010 года. В среднем на протяжении этих 5 лет в день через меня проходило около 20-30 писем с однотипными вопросами по изучению иностранных языков, с проблемами, которые мешают заговорить на иностранном языке и задачами, которые заставляют обычных людей браться за иностранные языки. Примерное количество писем за эти 5 лет составляет 54750.

Эта цифра — лучшее маркетинговое исследование в иностранных языках, которое только можно себе представить, поэтому писать о своих выводах я буду не на базе своей фантазии или заказных маркетинговых исследований (все мы знаем, как они проводятся), а на более чем реальной статистике.
Читать дальше →
Всего голосов 34: ↑30 и ↓4+26
Комментарии46

Управление временем для начинающих и пара приложений, которые в этом помогут

Время на прочтение7 мин
Количество просмотров9.6K
Сегодня крайне актуальна проблема борьбы с ленью и вытекающая из нее тема управления временем. Почти каждый имеет неограниченный доступ к образовательным материалам на любой вкус, может работать удаленно, да и вообще жить в любом удобном ритме. Единственное что остается нерешенным — где на все это найти время, да чтобы еще осталось на сон?



В этой статье мы обсудим вопрос планирования и управления временем, что это дает, а также посмотрим, как это можно имплементировать в реальную жизнь тем, кто этим всерьез не занимался. Поехали
Читать дальше →
Всего голосов 12: ↑12 и ↓0+12
Комментарии2

Старый код: почему он такой

Время на прочтение5 мин
Количество просмотров22K
Большинство из разработчиков рано или поздно сталкиваются с необходимостью что-нибудь поменять в коде, которому уже много лет. К тому моменту над этим кодом успело поработать, сменяя друг друга, множество программистов, и каждый из них что-то менял или добавлял новые кусочки.

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

Сразу скажу, что проблема старого кода не может уместиться в одну статью, поэтому я разбил наболевшее на несколько частей. Сегодня мы поговорим о том, что отличает «старый код». В следующей статье я, исходя из опыта написания кода, управления проектами и общения с бизнесом, напишу несколько мыслей, как с ним бороться.
Читать про старый код
Всего голосов 25: ↑20 и ↓5+15
Комментарии17

Шпаргалка Java программиста 2: Триста пятьдесят самых популярных не мобильных Java opensource проектов на github

Время на прочтение39 мин
Количество просмотров169K
Что это и зачем оно надо: Как известно, главное преимущество Java мира в том в нем существует огромное количество open-source проектов на на все случаи жизни, однако найти нужный на github'e не так просто, так как описание проекта часто мало информативно, зачастую сложно даже понять этот проект для Android'a или нет. В этой статье я автоматически и полуавтоматически собрал Java проекты, убрал старые и проекты только для Android'a, выбрал 350 набравших больше всего звезд, разделил по категориям и перевел описания.

Если вы хотите убедиться что базы данных пишут не только на C, найти проекты для работы с большими данными или нейронными сетями, пишите свой язык программирования для JVM и хотите посмотреть как это уже сделано или же просто хотите узнать какие новые возможности можно найти в Java мире open-source то это статья вам, думаю, может пригодится.

В чем смысл серии статей 'Шпаргалки Java программиста'
За время работы Java программистом я заметил, что как правило программисты постоянно и планомерно используют от силы 10-20% от возможностей той или иной технологии, при этом остальные возможности быстро забываются и при появлении новых требований, переходе на новую работу или подготовке к техническому интервью приходится перечитывать все документации и спецификации с нуля. Зато наличие краткого конспекта особенностей тех или иных технологий (шпаргалок) позволяет быстро освежить в памяти особенности той или иной технологии.


Другие статьи серии: часть 1. JPA и Hibernate в вопросах и ответах

Update: Внимание, актуальная версия со много большим количеством ссылок, находиться теперь в моем github'e проекте useful-java-links, по этой ссылке.


Читать дальше →
Всего голосов 51: ↑43 и ↓8+35
Комментарии49

10 интересных трендов в дизайне мобильных приложений

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


Благодаря развитию мобильных приложений – от Uber до Vine – мы постепенно начинаем понимать, как тренды в дизайне программ обретали форму в течение половины десятилетия. Многие факторы влияют на то, как в определенный отрезок времени выглядят мобильные приложения: от таких социальных трендов, как «экономика взаимопомощи», до изменений в технологиях – в этом году, например, мы видим огромные экраны телефонов в сочетании с крошечными носимыми аксессуарами.

Чем больше пользователи используют мобильные технологии в их повседневной жизни, тем больше они думают о приложениях, которыми пользуются. Проверяя почту, бронируя номер в отеле, заказывая безглютеновую пиццу с доставкой на дом. Такие приложения, как Airbnb и GrubHub выделяются из общей массы и минимизируют количество мыслей, направленных на их использование. Поэтому пользователи могут совмещать работу в приложении с чем-то еще и не тратить время на обдумывание того, как найти функции, которые им необходимы. Чем больше дел одновременно выполняют пользователи, тем больше им необходимы мобильные приложения с дизайном, который отвечает их потребностям и дает им то, чего они желают – тогда, когда им это нужно.

Учитывая вышесказанное, давайте взглянем на текущие тенденции в дизайне мобильных приложений, которые предоставляют пользователям то, что они хотят прямо сейчас:
Читать дальше →
Всего голосов 8: ↑8 и ↓0+8
Комментарии2

Мозг. Голографическая память. Квантовые вычисления. Анонс

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


С одной стороны, еще Резерфорд говорил: «Если учёный не может объяснить уборщице, которая убирается у него в лаборатории, смысл своей работы, то он сам не понимает, что он делает». С другой стороны, короткое объяснение порой способно запутать сильнее, чем что-либо прояснить. Я занимаюсь искусственным интеллектом. В этой области есть два основных направления: одно — придумать алгоритмы как что-либо сделать и другое — объяснить, как это делает человеческий мозг. И если первое направление может похвастаться грандиозными успехами, то второе пока только фонтанирует идеями разного уровня здравости. Понимание работы мышления усложняется тем, что все алгоритмические идеи должны быть соотнесены с возможностями реального мозга и пройти тест на биологическую достоверность. Так вот, мое направление – второе.
Читать дальше →
Всего голосов 32: ↑27 и ↓5+22
Комментарии41

Java 8: Овладейте новым уровнем абстракции

Время на прочтение5 мин
Количество просмотров110K
Одной из многих причин, почему мне нравится работать именно с функциональным программированием, является высокий уровень абстракции. Это связано с тем, что в конечном итоге мы имеем дело с более читаемым и лаконичным кодом, что, несомненно, способствует сближению с логикой предметной области.

В данной статье большее внимание уделяется на четыре вещи, представленные в Java 8, которые помогут вам овладеть новым уровнем абстракции.


Читать дальше →
Всего голосов 50: ↑43 и ↓7+36
Комментарии94

Как независимый разработчик прикоснулся к легенде. Часть первая

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

1


В новый офис бывших коллег я попал под аккомпанемент дождя. Вот-вот начался май, пора к такому привыкать. Отряхиваюсь от влаги, жму руку бывшему руководителю, через просторный холл поднимаюсь на второй этаж, дальше по коридору, затем направо или налево — уж и не вспомню — и вот она, цитадель геймдева. Знакомые лица, знакомые рукопожатия, всё как в старые добрые времена. За три месяца инди-плавания я уже успел подзабыть, что такое офисные кресла, кофемашина и фритуплей.
Читать дальше →
Всего голосов 40: ↑36 и ↓4+32
Комментарии16

Зaчем мне AshleyMadison, если я не курю?

Время на прочтение5 мин
Количество просмотров31K
Как вы все уже наверное знаете, недавно были выложены дампы баз AshleyMadison. Я решил не упускать возможность и проанализировать реальные данные дейтинг платформы. Попробуем предсказать платежеспособность клиента по его характиристикам таким как возраст, рост, вес, привычки и т.д.



Попробуем?
Читать дальше →
Всего голосов 32: ↑26 и ↓6+20
Комментарии26

Говорит Gartner: «Перегретые» IoT и практичные облака

Время на прочтение2 мин
Количество просмотров8.1K
Пара слов о том, что мы публиковали совсем недавно:


Сегодня мы решили порассуждать на общие темы и затронуть область IoT.

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

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность

Специализация

Специалист
Flutter
Android development