Как стать автором
Обновить
1
Карма
0
Рейтинг

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

  • Подписчики
  • Подписки 4

Git: распространённые ошибки и способы их исправления

Блог компании RUVDS.com Разработка веб-сайтов *Git *
Перевод
Если вы когда-нибудь работали над большим проектом, в котором, помимо вас, участвуют и многие другие программисты, тогда вы, очевидно, применяли Git в роли системы контроля версий. В ходе использования чего-то, по уровню сложности похожего Git, все совершают ошибки.


Автор материала, перевод которого мы публикуем сегодня, собирается обсудить распространённые ошибки, которые совершают программисты при работе с Git, и поговорить о том, как с этими ошибками бороться.
Читать дальше →
Всего голосов 76: ↑56 и ↓20 +36
Просмотры 40K
Комментарии 19

База данных штрихкодов скачать бесплатно без регистрации (и прочей хурмы)

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

Мы работаем над ним лет 8 и теперь в нем около 3 миллионов штрихкодов в стандартах EAN (EAN-13, EAN-8) и UPC (UPC-A, UPC-E).
Читать дальше →
Всего голосов 114: ↑114 и ↓0 +114
Просмотры 69K
Комментарии 54

Что больше всего раздражает ваших пользователей согласно Google

Разработка под Android *Дизайн мобильных приложений *Графический дизайн *Дизайн
Перевод
image

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

Перевод


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

Время это один из самых драгоценных ресурсов, которые у нас есть. Большинство людей это знает, включая ваших пользователей. Время настолько ценно, что если время загрузки вашего сайта занимает больше 5 секунд, то вы можете помахать ручкой 75% вашей потенциальной аудитории. Ох.
Всего голосов 25: ↑20 и ↓5 +15
Просмотры 30K
Комментарии 125

Добро пожаловать на борт: вводим новых разработчиков в команду

Блог компании Badoo Разработка веб-сайтов *Программирование *Управление разработкой *Управление персоналом *

Привет, Хабр! Меня зовут Андрей Гоменюк, я тимлид одной из команд серверной разработки Badoo.

На майском Badoo Techleads Meetup, посвящённом управлению разработкой, я поделился опытом интеграции новичков в команду. А сегодня делюсь текстовым дополненным и улучшенным вариантом своего доклада.

Представьте, что сегодня ваш первый рабочий день в Badoo. Каких же знаний и умений ждёт от вас отдел и в частности я, руководитель? Как минимум таких:
Читать дальше →
Всего голосов 112: ↑103 и ↓9 +94
Просмотры 44K
Комментарии 52

Дейкстра за линейное время

Алгоритмы *
Из песочницы

Приветствую всех и особенно тех кто интересуется задачами дискретной математики и теорией графов.


Предыстория


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

Читать дальше →
Всего голосов 36: ↑35 и ↓1 +34
Просмотры 14K
Комментарии 13

Курс о Deep Learning на пальцах

Обработка изображений *Машинное обучение *Робототехника Искусственный интеллект
Я все еще не до конца понял, как так получилось, но в прошлом году я слово за слово подписался прочитать курс по Deep Learning и вот, на удивление, прочитал. Обещал — выкладываю!

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

Материалы курса были опробованы на студентах кафедры АФТИ Новосибирского Государственного Университета, поэтому есть шанс, что по ним действительно можно чему-то научиться.


Читать дальше →
Всего голосов 117: ↑117 и ↓0 +117
Просмотры 160K
Комментарии 31

Мониторинг приложений с Prometheus

Блог компании OTUS Системное администрирование *DevOps *
Перевод
Добрый вечер!

На этой неделе мы запускаем четвёртый по счёту поток курса «DevOps: практики и инструменты», так что по традиции небольшая интересная статья для вас.

Поехали

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

Ключевые моменты:

  • Изучение способов мониторинга приложений и серверов с помощью Prometheus;
  • Запуск Prometheus в Docker;
  • Мониторинг и инструментирование образца приложения Golang;
  • Развертывание Prometheus со стеками Docker;
  • Краткое руководство с примерами PromQL.

Читать дальше →
Всего голосов 6: ↑6 и ↓0 +6
Просмотры 20K
Комментарии 0

Система автоматического документирования REST-API в Laravel проектах

PHP *Laravel *
Из песочницы

Преамбула


Для того, чтоб описать и задокументировать правила клиент-серверного
взаимодействия используя Rest-api можно выделить три основных метода:


  1. Описывать своим коллегам правила обращения к серверу на пальцах
    Этот метод быстр и не требует долгосрочной поддержки, но высока вероятность, что вас за это будут бить.
  2. Руками составлять Google-docs/Wiki/Readme в проекте
    Удобно тем, что однажды написанная документация не требует повторного объяснения. Её можно показать коллегам и даже иногда заказчику. Минусом данного метода является долгосрочная поддержка такой документации. Когда Api в проекте вырастает до таких размеров, что сама мысль "А когда же я обновлял документацию?" вызывает холодок по спине, тогда вы понимаете, что дальше так продолжаться не может. Формально вы можете обновлять документацию очень часто и маленькими фиксами, но это до первого отпуска.
  3. Использовать систему автодокументирования
    И вот для того, чтобы решить минусы первых двух методов человечество придумало системы автоматического документирования. Основная идея заключается в том, что к проекту пристыковывается некий плагин, который собирает информацию по вашему коду, сам составляет документацию и обёртывает её в удобочитаемый формат. Но большинство решений по этому методу не идеальны. Давайте попробуем сделать инструмент, который поможет получить документацию нашего проекта с минимальным количеством телодвижений

Читать дальше →
Всего голосов 14: ↑14 и ↓0 +14
Просмотры 19K
Комментарии 6

Apache Kafka – мой конспект

Мессенджеры *Java *
Это мой конспект, в котором коротко и по сути затрону такие понятия Kafka как:

— Тема (Topic)
— Подписчики (consumer)
— Издатель (producer)
— Группа (group), раздел (partition)
— Потоки (streams)

Kafka — основное


При изучении Kafka возникали вопросы, ответы на которые мне приходилось эксперементально получать на примерах, вот это и изложено в этом конспекте. Как стартовать и с чего начать я дам одну из ссылок ниже в материалах.

Apache Kafka – диспетчер сообщений на Java платформе. В Kafka есть тема сообщения в которую издатели пишут сообщения и есть подписчики в темах, которые читают эти сообщения, все сообщения в процессе диспетчеризации пишутся на диск и не зависит от потребителей.
Читать дальше →
Всего голосов 16: ↑15 и ↓1 +14
Просмотры 267K
Комментарии 10

Для чего и как проводят backlog grooming в продуктовых командах?

Блог компании Hygger Управление разработкой *Управление проектами *Управление продуктом *
Бэклог продуктовых задач является одним из основных и обязательных артефактов Agile. Фактически, это набор требований, полученных от бизнеса и сформулированных в виде задач для разработки. Что нужно делать для того, чтобы эти задачи всегда были в порядке? И как это связано с концепцией backlog grooming?

image
Читать дальше →
Всего голосов 8: ↑7 и ↓1 +6
Просмотры 78K
Комментарии 3

Как заработать свои первые 100$ в Google Play Market — мой опыт

Разработка под Android *Монетизация мобильных приложений *
В этой статье я расскажу, как мне удалось заработать первые 100$ на моих приложениях в Google Play Market. Какие стратегии более успешные и на что стоит обратить внимание новичку.
Читать дальше →
Всего голосов 40: ↑34 и ↓6 +28
Просмотры 188K
Комментарии 52

Docker. Начало

Разработка веб-сайтов *.NET *Разработка под Linux *Учебный процесс в IT Разработка под Windows *


Примерно такие же эмоции я и мои коллеги испытывали, когда начинали работать с Docker. В подавляющем большинстве случаев это происходило от недостатка понимания основных механизмов, поэтому его поведение казалось нам непредсказуемым. Сейчас страсти поутихли и вспышки ненависти происходят все реже и все слабее. Более того, постепенно мы на практике оцениваем его достоинства и он начинает нам нравиться… Чтобы снизить степень первичного отторжения и добиться максимального эффекта от использования, нужно обязательно заглянуть на кухню Docker'a и хорошенько там осмотреться.
Читать дальше →
Всего голосов 24: ↑22 и ↓2 +20
Просмотры 172K
Комментарии 31

Знакомство с реактивными потоками – для Java-разработчиков

Блог компании Издательский дом «Питер» Программирование *Java *Проектирование и рефакторинг *Scala *
Перевод
Привет, Хабр!

Сегодня мы вернемся к одной из тем, затрагиваемых в нашей замечательной книге "Реактивные шаблоны проектирования". Речь пойдет об Akka Streams и потоковой передаче данных в целом — в книге Роланда Куна этим вопросам посвящены главы 10 и 15-17.
Читать дальше →
Всего голосов 12: ↑12 и ↓0 +12
Просмотры 16K
Комментарии 4

Знакомство с гео-библиотекой S2 от Google и примеры использования

Блог компании Badoo Программирование *Go *Геоинформационные сервисы *
Привет, Хабр!

Меня зовут Марко, я работаю в Badoo в команде «Платформа». Не так давно на GopherCon Russia 2018 я рассказывал, как работать с координатами. Для тех, кто не любит смотреть видео (и всех интересующихся, конечно), публикую текстовый вариант своего доклада.



Введение


Сейчас у большинства людей в мире есть смартфон с постоянным доступом в Интернет. Если говорить в цифрах, то в 2018 году смартфон будет у почти 5 млрд людей, и 60% из них пользуются мобильным Интернетом.

Это огромные числа. Компаниям получать координаты пользователей стало легко и просто. Эти лёгкость и доступность породили (и продолжают порождать) огромное количество сервисов, основанных на координатах.

Всем нам известны компании типа Uber, игры, покорившие мир, такие как Ingress и Pokemon Go. Да что уж там, в любом банковском приложении есть возможность увидеть банкоматы или скидки поблизости.

Мы в Badoo также очень активно используем координаты, чтобы предоставлять своим пользователям лучший, актуальный и интересный для них сервис. Но о каком именно использовании идёт речь? Давайте посмотрим на примеры сервисов, которые у нас есть.
Читать дальше →
Всего голосов 75: ↑74 и ↓1 +73
Просмотры 21K
Комментарии 20

Удивительно простой обмен сообщениями с Spring Cloud Stream

Java *
Из песочницы
Привет, Хабр! Представляю вашему вниманию перевод статьи "Surprisingly simple messaging with Spring Cloud Stream" автора Richard Seroter.

Существует множество вариантов взаимодействия микросервисов. Вы можете использовать обнаружение сервисов (Service Discovery, например, Spring Cloud Discovery Server/Client в реализации Netflix Eureka) и совершать прямые вызовы. Или можете использовать общую базу данных для обмена результами работы. Но брокеры сообщений продолжают оставаться популярным выбором.

Они варьируются от простых движков вроде Amazon SQS или RabbitMQ до событийных потоковых процессоров вроде Azure Event Hubs или Apache Kafka и вплоть до служебных шин вроде Microsoft BizTalk Server. Когда разработчики выбирают один из движков, они критически нуждаются в знаниях об их эффективности. Как вы можете повысить производительность разработчиков? Для Java разработчиков Spring Cloud Stream предлагает ценную абстракцию.

Spring Cloud Stream предлагает интерфейс для разработчиков, которым не требуются нюансы базового брокера. Этот брокер, Apache Kafka или RabbitMQ, настраивается самим Spring Cloud Stream. Связь с брокером и обратно от брокера осуществляется также через библиотеку Stream.

Что меня волнует, так это то, что все брокеры обрабатываются одинаково. Spring Cloud Stream нормализует поведение, даже если оно не является родным для брокера. Например, хотите создать конкурирующую модель консюмера для своих клиентов или секционировать обработку? Эти концепции ведут себя по-разному в RabbitMQ и Kafka. Нет проблем. Spring Cloud Stream делает работу одинаково прозрачной. Давайте фактически попробуем оба этих сценария.
Читать дальше →
Всего голосов 14: ↑13 и ↓1 +12
Просмотры 16K
Комментарии 3

Apache Cassandra + Apache Ignite — как совместить лучшее

Блог компании GridGain Программирование *Java *Big Data *
Apache Cassandra — это одна из популярных распределенных дисковых NoSQL баз данных с открытым исходным кодом. Она применяется в ключевых частях инфраструктуры такими гигантами как Netflix, eBay, Expedia, и снискала популярность за свою скорость, способность линейно масштабироваться на тысячи узлов и “best-in-class” репликацию между различными центрами обработки данных.

Apache Ignite — это In-Memory Computing Platform, платформа для распределенного хранения данных в оперативной памяти и распределенных вычислений по ним в реальном времени с поддержкой JCache, SQL99, ACID-транзакциями и базовой алгеброй машинного обучения.

Apache Cassandra является классическим решением в своей области. Как и в случае с любым специализированным решением, её преимущества достигнуты благодаря ряду компромиссов, значительная часть которых вызвана ограничениями дисковых хранилищ данных. Cassandra оптимизирована под максимально быструю работу с ними в ущерб остальному. Примеры компромиссов: отсутствие ACID-транзакций и поддержки SQL, невозможность произвольных транзакционных и аналитических транзакций, если под них заранее не адаптированы данные. Эти компромиссы, в свою очередь, вызывают закономерные затруднения у пользователей, приводя к некорректному использованию продукта и негативному опыту, либо вынуждая разделять данные между различными видами хранилищ, фрагментируя инфраструктуру и усложняя логику сохранения данных в приложениях.

Возможное решение проблемы — использование Cassandra в связке с Apache Ignite. Это позволит сохранить ключевые преимущества Cassandra, при этом скомпенсировав ее недостатки за счет симбиоза двух систем.

Как? Читайте дальше, и смотрите пример кода.

Читать дальше →
Всего голосов 21: ↑21 и ↓0 +21
Просмотры 11K
Комментарии 11

Пара способов отправить уведомления на смартфон со своего сервера

Мессенджеры *PHP *Программирование *Разработка под Android *Google API *
Из песочницы
В этом туториале я рассмотрю пошагово, как отправлять со своего сервера уведомления на свой (или не свой) смартфон, какие средства для этого понадобятся. Эти способы универсальны и подойдут для любого языка программирования, т.к. напрямую используют API гугла, без использования библиотек. Отправить можно на смартфоны с Android, iOS и в браузеры с поддержкой Push API (на сегодня это Chrome, Firefox и их производные).

В общем всем тем, кто давно хотел отправлять уведомления со своего домашнего сервера на свой смартфон, но не знал с чего начать, посвящается.
Хочу отправлять свои уведомления!
Всего голосов 49: ↑43 и ↓6 +37
Просмотры 68K
Комментарии 81

Мониторинг ошибок на страницах сайта с помощью Яндекс.Метрики

JavaScript *Программирование *
Tutorial
Сегодня я наткнулся на интересный пост о мониторинге ошибок на сайте. У описанного метода есть недостаток — он применим только для React.
После прочтения поста я сразу же вспомнил про вебвизор. Если бы мне позвонил человек, который ой, я куда-то нажала, оно выскочило нашел ошибку на сайте, я бы очень обрадовался возможности посмотреть, что он сделал, а не задавать человеку кучу вопросов, тратя его и свое время.

Оказалось, что все настолько просто, что реализация задумки заняла у меня всего минуту.
Читать дальше →
Всего голосов 12: ↑12 и ↓0 +12
Просмотры 5.9K
Комментарии 6

React, Drag&Drop и performance

Блог компании Macte JavaScript *Интерфейсы *ReactJS *
Tutorial


В данной статье мы расскажем про свой опыт реализации интерфейса редактирования расписания занятий. Расскажем о проблемах, с которыми мы столкнулись и о возможных путях решения.
Читать дальше →
Всего голосов 12: ↑12 и ↓0 +12
Просмотры 22K
Комментарии 26

Hello Logify, или мониторим ошибки на установленных приложениях

Блог компании Developer Soft Программирование *.NET *
Как известно, программ без ошибок не бывает, и существует очень много инструментов и подходов, призванных улучшить качество выпускаемых приложений, от юнит тестов до анализаторов кода. Однако, даже если использовать все их одновременно, никто не даст гарантии, что ваши приложения лишены каких-либо ошибок. И если проблемы, возникающие во время разработки и тестирования, видны нам сразу, ну или почти сразу, и мы имеем возможность получить подробную информацию, что произошло и оперативно это исправить, то ошибки после выпуска, происходящие на пользовательской стороне, являются более коварными.

Самое главное, что, скорее всего, вам о них просто не сообщат. Как часто вы отправляли ошибки в Microsoft, когда вас об этом просили? :) Пользователи, как правило, либо просто перезапускают приложение, матерятся и продолжают пользоваться дальше, либо удаляют его полностью. Если вам повезет, и о падении вам сообщат, то зачастую это выглядит как-то так:



и это не вносит абсолютно никакой ясности в понимание проблемы. В результате у пользователей формируется негативный опыт от использования вашей программы, а вы не имеете никакой возможности что-то с этим сделать.
Читать дальше →
Всего голосов 39: ↑37 и ↓2 +35
Просмотры 9.2K
Комментарии 33

Информация

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