Pull to refresh
5
0
Рустам @RustamS

Пользователь

Send message

Material Design и поиск на примере приложения-справочника

Reading time8 min
Views29K

Введение


Несколько лет назад я писал статью на Хабр о приложении-справочнике по математике для Android, которое стало моим первым опытом в разработке для GooglePlay. Сегодня, оглядываясь назад на свой прошлый хабрапост и прошлую версию приложения, мне становится страшно (чтобы содрогнуться достаточно взглянуть на первый скриншот ниже). За прошедшие несколько лет многое поменялось: AndroidMarket стал называться GooglePlay с новыми правилами и прочим, выходили новые версии ОС, появилась некая общая google-концепция к дизайну приложений material-design, появились новые среды разработки, да и Хабр изменился.

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

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

Леденец из мороженого, или как привнести в ваше приложение немного Material

Reading time7 min
Views20K
Пятая версия Android была выпущена почти полгода назад. Несмотря на это, большинство приложений в маркете до сих пор упорствуют в стиле Holo. То ли новый Material-стиль пока не по зубам среднему разработчику, то ли Android L еще не успел прочно войти в обыденность.

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

Если вы, как я недавно, твердо решили обернуть своё, давно не обновлявшееся, приложение в новую «шкурку», этот обзор инструментов и библиотек может сэкономить вам N часов времени.

Осторожно, мало картинок!

Риски и метрики в автоматизации тестирования

Reading time7 min
Views28K


Добрый день!
Бизнес любит измерять, менеджмент любит прозрачность, а сотрудники не любят всю эту бумажную работу, в особенности если от них хотят неизвестно что… Процессы автоматизации тестирования не исключение. Я приведу 5 рисков, которые чаще всего встречаются, которые стреляют, которые нельзя недооценивать, которые могут привести к провалу всего тестирования и проектов в целом. Также я приведу примеры метрик, добросовестное использование которых поможет успокоиться вам, вашему начальству, бизнесу.
Читать дальше →

Приемы разработки ASMX веб-сервисов

Reading time99 min
Views122K
В этой статье я расскажу о различных приемах разработки SOAP веб-сервисов по технологии ASMX, а также об этой технологии в целом. Кроме SOAP, также будет рассмотрена реализация AJAX. Статья будет полезна как тем, кто уже знаком с ней, так и тем, кто только собирается создать свой первый веб-сервис.
Читать дальше →

Каких ответов я жду на собеседовании по тестированию

Reading time15 min
Views920K
Я провожу собеседования на тестировщиков. У меня иногда болит голова.

Долго собирался написать статью… И вот, наконец, выполнил свое намерение. Вопросы, поднимаемые в статье, обсуждались уже не раз и не два, но усердные поиски компиляции ответов на эти вопросы так и не увенчались успехом. Но, как подсказывает мой опыт, такая компиляция очень нужна. Прежде всего она требуется юниорам, ибо в сети по запросу «тестирование» на них (соискателей) обрушивается огромный объем информационного мусора, который плохо структурирован и часто противоречит сам себе.
Читать дальше →

15 советов и хитростей инструментов разработчика Chrome, которые вы обязаны знать

Reading time5 min
Views208K
Сегодня Google Chrome является самым популярным браузером среди веб разработчиков. С быстрым, шести недельным, циклом релизов и мощным набором постоянно расширяющихся инструментов разработчика, превратившим браузер в инструмент, который вы обязаны иметь. Большинство из вас, вероятно, знакомы со многими его функциями, такими как «живое» редактирование CSS, используя консоль и отладчик. В этой статье мы с вами рассмотрим 15 захватывающих советов и хитростей, которые позволят улучшить вашу производительность еще больше.
Читать дальше →

Мигрируем на HTTPS

Reading time5 min
Views124K
В переводе этого документа описываются шаги, которые необходимо предпринять для перевода вашего сайта с HTTP на HTTPS. Шаги можно выполнять с любой скоростью – либо всё за день, либо один шаг за месяц. Главное, делать это последовательно.

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

Некоторые тонкости работы с Github и NPM — со вкусом ES6

Reading time10 min
Views21K
Здравствуйте, меня зовут Александр, и я пишу велосипеды по выходным программист.



В нашем клубе анонимных велосипедостроителей считается особым шиком не только сотворить очередной шедевр, но и поделиться им с сообществом. Так как существует просто огромное количество статей о том, как выложить проект на Github или npm, я не буду в 100500 раз пересказывать одно и то же.

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

Эффективные ревью кода: 9 советов от исправившегося скептика

Reading time4 min
Views20K
Я знал теорию. Ревью кода помогает:
  • Находить баги
  • Обеспечивать читаемость и поддерживаемость кода
  • Распространять знания кода на всю команду
  • Быстрее входить в работу новым членам команды
  • Показывать всем новые подходы к решению задач

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

Уменьшаем количество ошибок с помощью чек-листа Code Review

Reading time3 min
Views31K
В нашей статье об эффективных ревью кода мы рекомендовали использовать чеклист. Чеклисты (контрольные списки) — это великая вещь в ревью: они гарантируют, что ревью действительно прошло через вашу команду. Также они способствуют выявлению и решению общих трудностей.

Исследование, проведенное Software Engineering Institute, показывает, что программисты делают 15-20 распространенных ошибок. Добавив такие ошибки в чеклист, вы можете быть уверены, что заметите их в момент появления и поможете от них избавиться надолго.

Чтобы вам было от чего отталкиваться, вот вам список типичных пунктов:
Читать дальше →

Несколько интересных особенностей MySQL

Reading time8 min
Views63K
В не очень далеком прошлом мне пришлось покопаться немного в исходном коде MySQL, и разобраться в некоторых аспектах его работы. В ходе работы лопаткой, и эксперимeнтов, я наткнулся на несколько очень интересных особенностей, часть из которых просто забавна, а в случае некоторых бывает очень интересно понять, чем руководствовался программист, который принимал решение сделать именно так.

Начнем с такого интересного типа, как ENUM.

mysql> CREATE TABLE enums(a ENUM('c', 'a', 'b'), b INT, KEY(a));
Query OK, 0 rows affected (0.36 sec)

mysql> INSERT INTO enums VALUES('a', 1), ('b', 1), ('c', 1);
Query OK, 3 rows affected (0.05 sec)
Records: 3  Duplicates: 0  Warnings: 0


Итак, у нас есть таблица, в ней есть два столбца. У первого, a, тип ENUM, у второго, b, INT. В таблице три строки, у всех трех значение b равно 1. Интересно, чему равны минимальный и максимальный элементы в столбце a?

mysql> SELECT MIN(a), MAX(a) FROM enums;
+--------+--------+
| MIN(a) | MAX(a) |
+--------+--------+
| c      | b      |
+--------+--------+
1 row in set (0.00 sec)


Кажется странным, было бы разумно, если бы самым маленьким был 'a', а самым большим — 'c'.
А что если выбрать минимум и максимум только среди тех строк, где b = 1? То есть, среди всех строк?

mysql> SELECT MIN(a), MAX(a) FROM enums WHERE b = 1;
+--------+--------+
| MIN(a) | MAX(a) |
+--------+--------+
| a      | c      |
+--------+--------+
1 row in set (0.00 sec)


Вот так мы заставили MySQL поменять свое мнение о том, как сравнивать поля в ENUM, просто добавив предикат.
Разгадка такого поведения заключается в том, что в первом случае MySQL использует индекс, а во втором нет. Это, конечно, не объясняет, почему MySQL сравнивает ENUMы по разному для сортировки в индексе, и при обычном сравнении.

Второй пример проще и лаконичнее:

mysql> (SELECT * FROM moo LIMIT 1) LIMIT 2;
+------+
| a    |
+------+
|    1 |
|    2 |
+------+
2 rows in set (0.00 sec)


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

Интересно, что далеко не любой SELECT в скобках сработает, в частности, UNION в скобках — это синтаксическая ошибка:

mysql> (SELECT * FROM moo UNION ALL SELECT * FROM hru) LIMIT 2;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'UNION ALL SELECT * FROM hru) LIMIT 2' at line 1


Еще несколько интересных примеров под катом
Читать дальше →

Сэм Альтман и Дастин Московитц: Как и зачем создавать стартап?

Reading time35 min
Views84K


Cтэнфордский курс CS183B: How to start a startup. Стартовал в 2012 году под руководством Питера Тиля. Осенью 2014 года прошла новая серия лекций ведущих предпринимателей и экспертов Y Combinator:


Первая часть курса
Читать дальше →

Питер Тиль: как построить монополию?

Reading time21 min
Views52K


Cтэнфордский курс CS183B: How to start a startup. Стартовал в 2012 году под руководством Питера Тиля. Осенью 2014 года прошла новая серия лекций ведущих предпринимателей и экспертов Y Combinator:


Первая часть курса
Читать дальше →

Sublime Text для фронтэнд-разработчика

Reading time5 min
Views215K


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

Использование принципов психологии для роста конверсии сайтов. Часть 2: гештальт-психология, закон прошлого опыта

Reading time4 min
Views13K
Часть 1.
Часть 3
Часть 4
Часть 5

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

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

Немного информации

Довольно сложно утверждать, что влияние того или иного изменения обусловлено именно этим законом, но автор считает, что это именно так. Кроме того, принято считать, что этот закон имеет второстепенное значение и легко перекрывается другими подшаблонами.
image

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

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

Reading time3 min
Views28K

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

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

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

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

A/B тестирование: 70 ресурсов, которые послужат хорошим стартом для начинающих

Reading time10 min
Views120K
Сделать веб-сайт доходным можно двумя способами. Первый – привлекать больше трафика, второй – повышать конверсию, т.е. побуждать большее количество посетителей становиться покупателями. Скорее всего, вы уже слышали о том, что трафик можно просто купить – сотни интернет-ресурсов предлагают эту услугу. А не лучше ли оптимизировать конверсию? Как узнать, что именно нужно проверить, и как провести A/B тестирование?

А/В тестированию и оптимизации уровня конверсии посвящено бесчисленное количество ресурсов. Однако, очень редко на сайтах подробно разбирается весь этот процесс целиком от самого начала («Что и как тестировать?») и до конца («Как улучшить конверсию?»).
Читать дальше →

Какой стартап заинтересует инвестора?

Reading time1 min
Views572
Финам провел конференцию "Интернет-стартапы: выжить и преуспеть", на которой (помимо прочего) рассказали о том, каким должен быть стартап, чтобы заинтересовать инвестора.
Так как ответы на вопросы получились весьма пространными, далее — резюме высказанных принципов интересного стартапа.
Читать дальше →

Про «забывчивость» веб-сервисов

Reading time2 min
Views417
Практически каждый сервис, имеющий регистрацию пользователей, при входе дает возможность запомнить пользователя. Реализовано это через куки, для пользователя — лишь скромная галочка «запомнить меня» в форме авторизации и/или регистрации. Простая технология, предназначенная для упрощения работы пользователей с сервисом, удобная и уже ставшая привычной.

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

Как этого избежать? Существуют простые решения

7 основных принципов юзабилити для интернет-магазинов (перевод)

Reading time5 min
Views43K


Какое влияние оказывают веб-страницы продуктов интернет-магазина на уровень конверсии? Ну, это как сказать. Но факт в том, что страница продукта – это ваш последний шанс побудить пользователя совершить покупку.

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

Вот где пригодятся методы юзабилити.
Читать дальше →

Information

Rating
Does not participate
Location
Казахстан
Registered
Activity