Habrahabr лучшее

Лучшие публикации за последние 24 часа
Подписка на Лента Habrahabr лучшее Habrahabr лучшее
Я люблю Мегафон, и являюсь клиентом с питерских времён, именно по этому меня раздражает то, что происходит последнее время. Трачу наше с вами время и пишу не ради того чтобы поплакаться в жилетку, а с верой в самое действенное СМИ, вдруг Мегафон одумается и начнёт исправляться, для этого и заголовок строго правдивый и совсем не жёлтый.
Читать дальше →
Привет, читатель.

Представляю пост который идёт строго (!) в закладки и передаётся коллегам. Он с подборкой примечательных файлов формата Jupyter Notebook по Machine Learning, Data Science и другим сферам, связанным с анализом данных. Эти блокноты Jupyter, будут наиболее полезны специалистам по анализу данных — как обучающимся новичкам, так и практикующим профи.



Итак, приступим.

Вводные курсы в Jupyter Notebook
Читать дальше →
Появились мощные светодиодные лампы, у которых люминофор нанесён на колбу изнутри. Я изучил и протестировал лампы нового поколения.

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

Привет, Хабр! Представляю вашему вниманию перевод статьи "What Is Rust's unsafe?" автора Nora Codes.


Мне доводилось видеть много недопониманий относительно того, что значит ключевое слово unsafe для полезности и правильности языка Rust и его продвижения как "безопасного языка системного программирования". Правда намного сложнее, чем можно описать в коротком твите, к сожалению. Вот как я ее вижу.


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

Читать дальше →
Разбираемся в ситуации и приводим мнения сообщества касательно потенциальной сделки.

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


На написание данной статьи меня вдохновила статья об анализе Сишного printf. Однако, там был пропущен момент о том, какой путь проходят данные после того, как они попадают в терминальное устройство. В данной статье я хочу исправить этот недочет и проанализировать путь данных в терминале. Также мы разберемся, чем отличается Terminal от Shell, что такое Pseudoterminal, как работают эмуляторы терминалов и многое другое.

Читать дальше →
Вот видишь ты на улице пёсика. Ты всегда видишь на улице пёсиков. Вот кто-то вообще их не замечает и не имеет хлопот, вот нет этих душевных терзаний, и вообще можно считать, что им на улице норм. Но ты же! И заметил, и глаза у тебя на мокром месте, такой думаешь: «пёсик. уаа, такой миленький, взял бы но не могу. Но вот прям точно, но никак». И пошёл такой дальше. Но пофотал его, погладил.


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

Раньше наш процесс релиза был ручным, медленным и напичканным ошибками.
Мы проваливали спринт за спринтом, потому что не успевали сделать и выложить фичи к следующему Sprint Review. Мы ненавидели наши релизы. Часто они длились по три-четыре дня.

В этой статье мы опишем практику Stop the Line, которая помогла нам сфокусироваться на устранении проблем конвейера выкладки. Всего за три месяца нам удалось увеличить скорость деплоя в 10 раз. Сегодня наш деплой полностью автоматизирован, а релиз монолита занимает всего 4-5 часов.

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

В этой статье я объясню, почему тебе не нужно идеальное решение.
Читать дальше →
Привет, Хабр! Представляю вашему вниманию перевод статьи автора «AMAZON: 25 years of success in ecommerce».



От гаража до самой дорогой компании мира

Понедельник. Утро. Сиэтл. Новые сотрудники Amazon выстраиваются в очереди, чтобы пройти посвящение и пополнить ряды гиганта электронной коммерции. Им напоминают, что они должны забыть раз и навсегда о «вредных привычках», тщательно привитых на прошлых работах, и акцентируют внимание на принципах лидерства, которыми с этого момента им предстоит руководствоваться каждый день. «Если вы врезались в стену, поднимитесь на стену» — только так можно быть лучшим амазонцем, а не лучшие здесь не работают.


Сегодня компания Amazon такая большая и вездесущая, что многие задаются вопросом: «Как создать cайт как Amazon», но мало кто знает, что компания была создана в гараже. Джефф Безос и нанятые им первые сотрудники упаковывали книги за столами, сколоченными из старых дверей, а после он самостоятельно отвозил посылки на почту в своем Chevrolet Blazer 1987 года. В интервью 2016 года Безос признается Чарли Роузу: «Тогда я думал, что когда-то настанет день и мы сможем позволить себе погрузчик»

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


На русском языке довольно мало информации про то, как работать с ELF-файлами (Executable and Linkable Format — основной формат исполняемых файлов Linux и многих Unix-систем). Не претендуем на полное покрытие всех возможных сценариев работы с эльфами, но надеемся, что информация будет полезна в виде справочника и сборника рецептов для программистов и реверс-инженеров.


Подразумевается, что читатель на базовом уровне знаком с форматом ELF (в противном случае рекомендуем цикл статей Executable and Linkable Format 101).


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

Поработаем с эльфами
Стоит признать, что мы живём в информационном веке и сложно недооценивать значение информационных систем в повседневной жизни. Государства всё больше вмешиваются в некогда гиковскую информационную область и устанавливают правила её регулирования. Одним из институтов государственного регулирования в информационном пространстве является механизм «квалифицированной электронной подписи», условно неподделываемого доверенного идентификатора субъекта, которым он может заверять различного рода сделки в электронном виде от своего имени в инфопространстве. На самом деле, идея ЭП не нова и развивается достаточно давно, но как обычно, в России в какой-то момент что-то пошло немного не так. Статья является пространным субъективным рассуждением на тему института электронной подписи в России без излишнего погружения в технологическую матчасть. Ну и немного хейта, как же без этого.


CC-BY-SA, Vadim Rybalko
Читать дальше →
Нейронная сеть может опознать котика на фотографии, найти диван, улучшить видеозапись, нарисовать картинку из щенят или простого наброска. К этому мы уже привыкли. Новости о нейросетях появляются почти каждый день и стали обыденными. Компании Grid Dynamics поставили задачу не обыденную, а сложную — научить нейросеть находить специфический шуруп или болт в огромном каталоге интернет-магазина по одной фотографии. Задачка сложнее, чем найти котика.



Проблема интернет-магазина шурупов — в ассортименте. Тысячи или десятки тысяч моделей. У каждого шурупа свое описание и характеристики, поэтому на фильтры нет надежды. Что делать? Искать вручную или искать в гипермаркете на полках? В обоих случаях это потеря времени. В итоге клиент устанет и пойдет забивать гвоздь. Чтобы помочь ему, воспользуемся нейросетью. Если она может находить котиков или диваны, то пусть занимается чем-то полезным — подбирает шурупы и болты. Как научить нейросеть подбирать для пользователя шурупы быстро и точно, расскажем в расшифровке доклада Марии Мацкевичус, которая в компании Grid Dynamics занимается анализом данных и машинным обучением.
Читать дальше →
«Сделайте хотя бы раз то, что, по словам окружающих, вам не по плечу. После этого вы уже никогда не будете обращать внимание на их правила и ограничения.»
 Джеймс Кук, английский военный моряк, картограф и первооткрыватель




К выбору электронной книги каждый подходит по-своему. Одни долго думают и читают тематические форумы, другие руководствуются правилом «не попробуешь — не узнаешь», покупают себе Monte Cristo 4 от ONYX BOOX, и все сомнения насчёт покупки ридера улетучиваются, после чего девайс завоёвывает своё заслуженное место в отдельном отсеке рюкзака. Ведь купить электронную книгу стоит только потому, что это единственный гаджет в своём роде, с которым можно совершить кругосветное путешествие на одной зарядке (но только на более современном виде транспорта, чем у Фёдора Конюхова).
Читать дальше →
Cities: Skylines — это игра-симулятор города, обладающий достаточной сложностью, чтобы создавать в нём универсальные логические элементы. При помощи универсальных логических элементов можно построить любую схему, в том числе и Тьюринг-полные машины. То есть как и в Minecraft, мы можем создать внутри Cities: Skylines компьютер. Однако было бы очень трудно создавать на основе этих элементов полнофункциональный компьютер, поэтому я продемонстрирую вместо него 4-битный сумматор. Всё выполняется в ванильной версии игры, не требуется ни модов, ни дополнений.

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


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


Disclaimer: статья не совсем подходит для Хабра и не совсем понятно в какой хаб ее размещать, так же статья не является жалобой, я думаю сообществу будет полезно знать о том, как можно потерять деньги при продаже компьютерного железа на eBay.

Неделю назад ко мне обратился мой знакомый с просьбой дать совет, он продавал свое старое железо на eBay и столкнулся с обманом со стороны покупателя.

На продажу был выставлен процессор б/у Intel Core i7-4790K, цена была выставлена средняя по eBay. Лот был выставлен как обычно, фотография процессора с серийным номером и указанием что процессор бывший в употреблении, без какой-либо комплектации.
Читать дальше →
Служба поддержки — это то место, в которое пользователи обращаются, чтобы помочь вам создать лучший продукт. Конечно, в том случае, если вы готовы их слушать. Ежемесячно нам поступает более 175 000 обращений в поддержку, что можно сравнить с населением целого Петропавловска-Камчатского.

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

Летом 2018 команда QIWI Кошелька — разработчики, тестировщики, дизайнеры — разделилась на две группы и отправилась в колл-центры Калуги и Челябинска для того, чтобы узнать, с какими проблемами сталкиваются наши пользователи. Проводя аналогию, можно сказать, что прямой контакт команды разработки с пользователем это не тушение горящего пожара, это создание системы пожарной безопасности.


На работу в поля
Жюль Бретон


Под катом я коротко расскажу о том, как это было, и почему полезно выбираться из офиса и смотреть, как твоим продуктом пользуются люди.
Читать дальше →
27 апреля на конференции Стачка-2019, в рамках секции «DevOps», прозвучал доклад «Автомасштабирование и управление ресурсами в Kubernetes». В нём рассказывается о том, как с помощью K8s обеспечить высокую доступность приложений и гарантировать их максимальную производительность.



По традиции рады представить видео с докладом (44 минуты, гораздо информативнее статьи) и основную выжимку в текстовом виде. Поехали! Читать дальше →


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

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

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

В качестве скриптового языка я выбрал Lua. Читать дальше →
До После import math import os.path import requests # 100500 other imports print(math.pi) print(os.path.join('my', 'path')) print(requests.get) import smart_imports smart_imports.all() print(math.pi) print(os_path.join('my', 'path')) print(requests.get) Так получилось, что аж с 2012 года я разрабатываю open source браузерку, являясь единственным программистом. На Python само собой. Браузерка — штука не самая простая, сейчас в основной части проекта больше 1000 модулей и более 120 000 строк кода на Python. В сумме же с проектами-спутниками будет раза в полтора больше.

В какой-то момент мне надоело возиться с этажами импортов в начале каждого файла и я решил разобраться с этой проблемой раз и навсегда. Так родилась библиотека smart_imports (github, pypi).

Идея достаточно проста. Любой сложный проект со временем формирует собственное соглашение об именовании всего. Если это соглашение превратить в более формальные правила, то любую сущность можно будет импортировать автоматически по имени ассоциированной с ней переменной.

Например, не надо будет писать import math чтобы обратиться к math.pi — мы и так можем понять, что в данном случае math — модуль стандартной библиотеки.

Smart imports поддерживают Python >= 3.5 Библиотека полностью покрыта тестами, coverage > 95%. Сам пользуюсь уже год.

За подробностями приглашаю под кат.
Читать дальше →

Страницы

Последние публикации

Новые комментарии