Обновить
41.9

GitHub *

Веб-сервис для хостинга и разработки IT-проектов

Сначала показывать
Порог рейтинга
Уровень сложности

Как проанализировать рынок фотостудий с помощью Python (1/3). Парсинг данных

Время на прочтение11 мин
Охват и читатели9.6K
В интернете огромное количество открытых данных. При правильном сборе и анализе информации можно решить важные бизнес-задачи. Например, стоит ли открыть свой бизнес?

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

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

В данной статье, первой из трех, опишу планирование и написание парсинга на Python.

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

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


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

Data Science блог с помощью fastpages

Время на прочтение9 мин
Охват и читатели2K

Как запустить свой DS/ML/AI/Tech блог с минимумом сложностей связанных с хостингом и деплойем этого блога.

7 достойных курсов по изучению Git и Github

Время на прочтение3 мин
Охват и читатели59K

Привет, хабр! Продолжаю делиться полезными подборками. Я уже публиковал посты с Github репозиторими (Часть 1 и Часть 2), а также подборку из 10 книг для разработчиков. Решил, не останавливаться:) Кому интересно — добро пожаловать под кат.


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

6 лучших практик для безопасного управления Git-репозиториями

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



Изучение исходников в репозитории позволяет оценить уровень безопасности приложений. Но если никто не смотрит на код, проблемы будут только расти. К счастью, у GitHub есть свои специалисты по безопасности, которые недавно обнаружили трояна в нескольких репозиториях Git. Его почему-то не заметили сами владельцы этих репозиториев. Хотя мы не можем диктовать другим людям, как управлять своими собственными хранилищами, мы можем учиться на их ошибках. В этой статье мы рассмотрим полезные приёмы работы с репозиториями.
Читать дальше →

Альтернативная конституция

Время на прочтение5 мин
Охват и читатели7.7K
«Мы вовсе не собираемся разрушать ваш старый мир. Мы собираемся построить новый. Вот вы – жестоки: вы не представляете себе строительство нового без разрушения старого. А мы представляем себе это очень хорошо. Мы даже поможем вашему поколению создать этот ваш рай, выпивайте и закусывайте на здоровье. Строить, господин Банев, только строить. Ничего не разрушать, только строить.»
— А и Б Стругацкие, «Гадкие лебеди»

image


Этот пост я задумываю как рискованный эксперимент. Я хочу выяснить, могут ли ИТишники самоорганизоваться для создания открытого, свободного (от слова freedom, а не free beer), чистого, высококлассного «кода», используя привычные им инструменты (Git, fork, TDD, agile, stackoverflow, абстракции, юнит-тесты и прочее). Только этот «код» — это текст, который мог бы являться конституцией в альтернативной реальности (или фантастического рассказа), очень близкой к нашей. Если тебе не нравится чужой код — напиши свой.

Являются ли программисты теми, кто пишет сценарий будущего или просто теми, кто пишет патчи за деньги?

Заодно попробуем составить базу знаний лучших решений, какие были за историю конституций всех времен и народов, методов написаний и улучшений, а так же dark pattern'ы. Например, довольно поучительный кейс Исландии, как они писали-писали вики-конституцию, но так и не написали. Не помогли ни кастрюли, ни батя Бьорк, ни то, что их всего 300 000 человек.

(Надеюсь, что читатели Хабра смогут отнестись к моей идее конструктивно и не превратят в балаган. Если превратят — то скрою статью и завершу «эксперимент».)

Тема живая, продолжение в канале @GaaS
Читать дальше →

Кодовая база. Расширяем RecyclerView

Время на прочтение8 мин
Охват и читатели4.9K
image
Всем привет!

Меня зовут Антон Князев, senior Android-разработчик компании Omega-R. В течение последних семи лет я профессионально занимаюсь разработкой мобильных приложений и решаю сложные проблемы нативной разработки.

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

Язык программирования Mash

Время на прочтение2 мин
Охват и читатели19K

http://mash-project.org
https://github.com/RoPi0n/mash-lang

Mash?


Это императивный язык программирования с динамической типизацией, сборкой мусора, ООП и поддержкой многопоточности.



Интересно? Тогда под кат!
Читать дальше →

Не хочу Visual Studio Code: 7 open source альтернатив

Время на прочтение5 мин
Охват и читатели126K
В этом переводе расскажем про альтернативные редакторы кода, которые ничуть не уступают VS Code, а при грамотном подборе расширений даже превосходят его.



Редактор Visual Studio Code, также известный как VS Code работает на Linux, Windows и macOS. Он занимает промежуточное положение между простым текстовым редактором исходного кода и интегрированной средой разработки (IDE), которая управляет всей вашей кодовой базой. Функциональность VS Code можно расширить с помощью плагинов. Это надёжный редактор кода, который может достойно побороться с проприетарными конкурентами.

Изначально VS Code был создан как open source продукт. Однако его готовые сборки распространяются под проприетарной лицензией Microsoft. Но не всё так плохо.
Читать дальше →

Линтер на все случаи жизни — GitHub Super Linter

Время на прочтение4 мин
Охват и читатели27K


Команда DevOps инженеров из GitHub поделились своим универсальным решением для проверки качества кода. С ним можно настроить линтер для 17 языков всего в 11 строк:


name: Lint Code Base
on:
  push:
    branches-ignore:
      - 'master'
jobs:
  linter:
    runs-on: ubuntu-latest
    steps:
        - uses: actions/checkout@v2
        - uses: docker://github/super-linter:v2.1.0

Код выше является YAML конфигурацией для GitHub Actions (бесплатный CI/CD от GitHub) и далее мы разберемся с его содержимым и принципом работы.

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

Что я узнал после более чем 1000 code review

Время на прочтение4 мин
Охват и читатели18K
За последние 3 года я рассмотрел более 1000 pull (merge) request’ов. За это время я многому научился — в основном тому, как не проверять код, как сделать процесс менее болезненным, что делает код хорошего качества и так далее.

Pull request должен делать только одну вещь


Это самая важная вещь, на которую стоит обратить внимание.

Делая code review, вы должны держать в голове много вещей. «Что за этим стоит?», «Как это согласуется с остальной частью кода?» и «Будет ли это хорошо работать?» Вот лишь некоторые из вопросов, на которые нужно ответить. Таким образом, когда у вас есть pull request, который пытается решить одну проблему, на некоторые из этих вопросов легче ответить.

Другим важным аспектом является размер pull request’а. Большие запросы требуют экспоненциально больше времени для рассмотрения. И когда я узнаю, что мне нужно потратить более 15 минут на запрос, вам придется подождать до пары часов.
Читать дальше →

Настраиваем GitHub Actions для Android с последующим деплоем в PlayMarket

Время на прочтение6 мин
Охват и читатели4.3K
Привет, Хаброжители! На днях начал изучать GitHub Actions для Android. Ранее у меня была удачная попытка настройки данного функционала для проекта на Flutter, но без деплоя, для которого полно информации и гайдов как на англоязычных ресурсах, так и на русскоязычных, а вот с нативным андроидом не всё так прозаично. И решил записать основные проблемы и их решение.

Этап первый: настройка для автоматической подписи готового apk


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

Я использую вариант с использование файла keystore.properties, который позволяет нам добавить ключ разработчика в папку проекта, не светя при этом паролями от него, делается это так:
Читать дальше →

Круги ада с GitHub Actions (строим CI/CD pipeline для Java-проекта)

Время на прочтение14 мин
Охват и читатели49K


Мне частенько приходится строить пайплайн для сборки проектов на Java. Иногда это опенсорс, иногда нет. Недавно я решил попробовать перенести часть своих репозиториев с Travis-CI и TeamCity на GitHub Actions, и вот что из этого получилось.
Читать дальше →

Мир Open Source: преимущества и недостатки

Время на прочтение8 мин
Охват и читатели15K

open source adv and disadv


Субъективная попытка оценить мир open source, с позиции рядового контрибьютора, спустя два года ежедневного участия. Не претендую на истину, не напрягаю советами, только структурированные наблюдения. Возможно, эта статья поможет лично вам понять — быть или не быть open source contributor'ом.

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

Ближайшие события

Лучшие GitHub-репозитории для веб-разработчиков

Время на прочтение5 мин
Охват и читатели29K
Программист тратит многие часы на разработку некоего функционала и на то, чтобы код соответствовал передовым практическим приёмам, принятым в той или иной среде. В эти часы не должно входить регулярное написание шаблонных конструкций. Программист может сильно помочь себе в деле правильной организации работы, избавив себя от ненужных дел и вложив время в изучение правильных инструментов. Хорошим подспорьем может оказаться и знание о ценных ресурсах, список которых всегда полезно держать под рукой.



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

GitHub: шаблон Zabbix для мониторинга задач сбора данных в MaxPatrol SIEM

Время на прочтение2 мин
Охват и читатели6.1K


Сегодня SIEM – это главный помощник при анализе событий ИБ: трудно представить, сколько бы потребовалось времени, чтобы вручную просматривать логи с множества источников. При этом прекращение сбора данных с источника – достаточно распространенная проблема SIEM. И далеко не всегда можно решить ее встроенными средствами – а ведь потеря событий в неподходящий момент может быть равнозначна катастрофе. Чтобы ценная информация не пропадала, мы реализовали внешнее решение для контроля работы MaxPatrol SIEM: разработали шаблон для системы мониторинга Zabbix и скрипт на питоне, которым готовы с вами поделиться. Подробности и ссылка на GitHub под катом.
Читать дальше →

Code review Терминатор. Ревью, за которое вам скажут спасибо

Время на прочтение4 мин
Охват и читатели7.5K

Рыжик помогает мне ревьюить код. А когда ему что-то не нравится — тоже настоящий Терминатор

«Code review Терминатор», — однажды назвал меня коллега после особо продуктивного ревью. С одной стороны, это тешило ЧСВ и было приятно. С другой — коллега действительно научился чему-то новому, и это позволило писать ему более качественный код. Так что win-win.

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

Заканчивался последний день рабочей недели…

Время на прочтение2 мин
Охват и читатели5.2K
Заканчивался последний день рабочей недели. Я делал себе кофе на офисной кухне, размышляя, каким образом мы бы смогли снизить очередь пул реквестов, которая сильно разрослась после введения review guide. Вроде бы простые правила вызывали длительную переписку в комментариях к пул реквестам между членами review team и разработчиками фрэймворка.

image

Ничего не предвещало. Смеркалось.
Читать дальше →

Как облегчить себе жизнь при использовании Git (а также подборка материалов для глубокого погружения)

Время на прочтение13 мин
Охват и читатели41K

Tree of Dragons II by surrealistguitarist

Для тех, кто каждый день использует Git, но чувствует себя неуверенно, команда Mail.ru Cloud Solutions перевела статью фронтенд-разработчика Шейна Хадсона. Здесь вы найдете несколько трюков и советов, которые могут немного облегчить работу с Git, а также подборку статей и мануалов более продвинутого уровня.
Читать дальше →

10 отличных Github репозиториев для разработчиков (часть 2)

Время на прочтение4 мин
Охват и читатели18K

Привет, хабровчане. Недавно у меня был пост, где я перевел статью со списком крутых репозиториев на Github. Читателям зашло, поэтому решил сделать продолжение, тем более, что автор оригинала предложил еще один интересный список. Кому интересно, добро пожаловать под кат.



Как и в прошлом случае, перевод будет довольно вольным: я опустил предисловие и эмоциональные похвалы автора оригинала, чтобы оставить только суть. Еще, обновил цифры, чтобы информация была более актуальной к моменту публикации этого перевода. Итак, поехали.
Читать дальше →

Несколько советов о том, как ускорить сборку Docker-образов. Например, до 30 секунд

Время на прочтение11 мин
Охват и читатели35K

Прежде чем фича попадет на прод, в наше время сложных оркестраторов и CI/CD предстоит пройти долгий путь от коммита до тестов и доставки. Раньше можно было кинуть новые файлы по FTP (так больше никто не делает, верно?), и процесс «деплоя» занимал секунды. Теперь же надо создать merge request и ждать немалое время, пока фича доберётся до пользователей.


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


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

Вклад авторов