Как стать автором
Поиск
Написать публикацию
Обновить
1154.57

Программирование *

Искусство создания компьютерных программ

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

Про uuid-ы, первичные ключи и базы данных

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

Статья посвящена альтернативным версиям Qt-драйверов для работы с базами данных. По большому счету отличий от нативных Qt-драйверов не так много, всего пара: 1) Поддержка типа UUID; 2) Работа с сущностью "Транзакция" как с самостоятельным объектом. Но эти отличия привели к существенной модификации исходных Qt-решений и изменили мой подход к написанию рабочего кода.

Читать далее

Постмортем инцидентов для начинающих

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

image
Фото с сайта Unsplash.com


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


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

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

Автоматическая документация по коду для API в Laravel

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

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

Ждать долго не пришлось, при обновлении на сервере PHP c 7.2 до 7.4 - мы получили страницу с описанием ошибки, вместо документации. Ошибка найдена в библиотеке, которую мы использовали для рендеринга UI документации. ПР на гитхабе был создан быстро, но провисел в статусе open почти неделю. После этого, тикет насчет документации пошел в работу.

Читать далее

Гугл финанс перестал транслировать данные российских акций — что делать? (UPD: починили)

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

С 5 июня 2021 года сайт гугла, и самое главное гугл таблицы - перестали отдавать данные с Московской биржи. 

При попытке получить любые котировки с префиксом MCX, например для Сбербанка, формулой из гугл таблиц =GOOGLEFINANCE("MCX:SBER") теперь всегда возвращается результат #N/A.

А при поиске любой российской бумаги на сайте Google находятся любые рынки, кроме Московской биржи.

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

Google Finance давай, до свидания!

Культура разработки ПО слишком позитивна, это может нам вредить

Время на прочтение4 мин
Количество просмотров18K
image

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

Выгорание


Разве не странно, что множество молодых людей ощущает себя выгоревшим всего спустя несколько лет работы? Я часто встречаю людей, испытавших срыв всего спустя один-два года. Я и сам испытал выгорание (даже дважды). В первый раз мне пришлось взять перерыв на полгода. Во второй раз, который произошёл совсем недавно, мне потребовался целый год, прежде чем я смог вернуться к программированию.

В этом году я много общался с людьми, не связанными с технологиями, и заметил одну вещь: мы не особо жалуемся на свою работу. Мы жалуемся на плохое руководство и плохие проекты, но не на сам кодинг. Мы воспринимаем горение своей работой как нечто само собой разумеющееся. Вы удивлены? Почитайте вакансии. Любовь к работе — часто одно из обязательных требований. От нас ждут, что мы будем любить свою работу, более того, что мы сделаем программирование центром своей вселенной.
Читать дальше →

Пространственные спектры и фрактальность рельефа, силы тяжести и снимков

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

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


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


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

Оптимизация при помощи линейного поиска на Python

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

Линейный поиск — это алгоритм оптимизации, который может использоваться для целевых функций с одной или несколькими переменными. Он предоставляет возможность использовать алгоритм одномерной оптимизации, например поиск методом деления пополам (бисекции) для многомерной целевой функции, работая с линейным поиском для определения оптимального размера шага в каждом измерении от известной точки до оптимума. Мы уже делились переводами Джейсона Браунли, например статьёй о смешанных ансамблях, а в этом учебном руководстве, которое мы перевели к старту курса о машинном и глубоком обучении, рассказывается об основах: вы узнаете, как на Python с помощью линейного поиска выполнить оптимизацию.

Читать далее

Чему можно научиться у фикуса-душителя? Паттерн Strangler

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

При рефакторинге монолита на микросервисы часто мы уже обладаем работающей системой. У которой миллионы, тысячи активных пользователей. Возможно их 20, но они очень важные и очень активные. Как в таком случае отрефакторить все, чтобы внешне никто ничего не заметил? И как в этом поможет тропический фикус-душитель?

Читать далее

5 разных библиотек Python, которые сэкономят ваше время

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

В этой подборке, переводом которой мы решили поделиться к старту курса о машинном и глубоком обучении, по мнению автора, каждая библиотека заслуживает отдельной статьи. Всё начинается с самого начала: предлагается библиотека, которая сокращает шаблонный код импортирования; заканчивается статья пакетом удобной визуализации данных для исследовательского анализа. Автор также касается работы с картами Google, ускорения и упрощения работы с моделями ML и библиотеки, которая может повысить качество вашего проекта в области обработки естественного языка. Посвящённый подборке блокнот Jupyter вы найдёте в конце.

Читать далее

Развертывание приложения Symfony в AWS Lambda

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

Сначала давайте разберемся, что такое бессерверная архитектура и когда она нужна.

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

AWS Lambda обеспечивает высокую доступность, причем плата взимается только за фактически затрачиваемое время вычислений. Этот сервис может быть весьма полезен для таких задач, как запуск cron-заданий, отправка уведомлений в режиме реального времени, предоставление доступа к API, обработка каких-нибудь событий при выполнении различных операций и т. д. В сети можно найти массу примеров использования сервиса.

Читать далее

Пара мыслей о геттерах и сеттерах в C++

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

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

TL;DR: геттеры и сеттеры не очень хорошо подходят для структуроподобных объектов.

Читать далее

Чему я научился, проработав два года разработчиком ПО в Microsoft

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

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

Я пришёл в Microsoft сразу после учёбы в колледже, Indian Institute of Technology Guwahati, и эта работа стала моим первым опытом. Со временем я очень сильно вырос и получил множество новых уроков. В этой статье я постараюсь структурировать свои мысли о них.

Итак, вот пять вещей, которым я научился.

1. Исследования, исследования и снова исследования


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

Когда я говорю «исследования», то подразумеваю два значения:

Проведение исследований для выявления первопричины проблемы.

Я почти сразу понял: очень легко выработать привычку не вдаваться в подробности проблемы и не понимать её истинные причины. А если вы не знаете конкретной причины существования проблемы, это почти всегда сказывается, когда вы уже почти решите задачу. «Почти» — очень важное здесь слово.

Проведение исследований для нахождения самого эффективного решения текущей задачи.
Читать дальше →

Борьба с несбалансированностью классов с помощью модуля NEARMISS

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

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

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

Метод NearMiss — это метод недостаточной выборки. Он пробует сбалансировать распределение классов путём случайного исключения наблюдений из бо́льших классов. Если экземпляры из двух разных классов очень похожи между собой, метод удаляет наблюдение из мажоритарного класса.

Давайте рассмотрим работу этого метода на практике. Для начала установим необходимые нам библиотеки через стандартный pip в cmd:

Читать далее

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

Анонс эфира live-coding на SwiftUI

Время на прочтение1 мин
Количество просмотров745

Приглашаем на эфир live-coding на SwiftUI. Реализуем фичу для опенсорсного проекта StackOv, который написан полностью на SwiftUI. Обсудим, почему использовать некоторые системные View при работе со SwiftUI — не всегда удачная идея. Посмотрим, как можно сделать по-другому.  Эфир состоится 24 июня, четверг, в 18:30 мск. 

Регистрация

Читать далее

И грянул гром: эскалации, проблемы с производительностью и как мы это решали

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

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

Читать далее

Рабочее место в кафе, улучшение фотографий и команды для хакатонов: выпускные работы наших студентов

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

2 июня прошли защиты выпускных проектов у студентов образовательных проектов Mail.ru Group. Ребята шли к этому моменту два года, и последний семестр был почти полностью посвящен реализации этих идей. Свои работы в защищали 8 команд из «Технопарка» (МГТУ им. Н. Э. Баумана) и 3 из «Технополиса» (СПбПУ им. Петра Великого). Все они реализовали разные проекты, объединенные одной целью — улучшить жизнь людей с помощью технологий.

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

Возможные неопределенности в карьере программиста. Часть 2

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

Доброго времени суток, Хабровчане!

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

Что начал делать Ваня чтобы повысить свои навыки? Как прошел интервью в новую компанию? Обо всем по порядку.

Читать далее

Построение кластеров Kubernetes средствами самого Kubernetes

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

Думаете, я сошел с ума? Я уже сталкивался с такой реакцией, когда впервые предложил развертывать кластеры Kubernetes с помощью Kubernetes.

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

Читать далее

Кастомные операторы RxJS

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

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

Читать далее

Как байпасить reCaptcha V3 с помощью Selenium Python?

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

*bypass - обход

Мы будем использовать библиотеку python Selenium для байпаса google reCaptcha v3. Следуйте пошаговой инструкции, чтобы получить результат.

Для примера мы будем использовать демо-версию Google reCaptcha api.

Здесь ссылка: https://www.google.com/recaptcha/api2/demo

Читать далее

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