Search
Write a publication
Pull to refresh
2
0
Send message

У вас нет причин использовать alpine для python-проектов

Reading time9 min
Views16K

По мотивам моего доклада на PyCon "Контейнеризация Python без боли". На своей практике я постоянно сталкиваюсь со спорами какой базовый образ лучше использовать для проектов: alpine или debian. Аргументы есть и у той, и у другой стороны, но мне это настолько надоело, что я решил сам разобраться и наконец-то поставить точку. В конце концов "В наше время верить нельзя никому, даже себе. Но мне - можно." (с)

Читать далее

mov Программирование на Ассемблере без знаний Ассемблера, habr

Level of difficultyHard
Reading time4 min
Views4.7K

Пролог

Решил поделиться своими мыслями и кратким двухдневным опытом написания (собирания по частям) программы на Ассемблере без чтения учебников, больших статей и в целом без опыта программирования на этом языке. На одном из форумов я набрёл на задачу вывода десятичного числа в консоль. Если на языке C или PHP эта операция совершенно элементарна, то на Ассемблере всё не так просто, как может показаться на первый взгляд. Для решения задачи я выбрал nasm (правда, выбора и не было), немножко поигравшись предварительно с вставками nasm (синтаксис AT&T) в код C (ссылка на форум с моими опытами в конце статьи).

Философское отступление
Остановись, дорогой читатель! И прежде чем читать дальше, задай себе вопрос: возможно ли начать ковать без обучения кузнечному делу?!

Я оставлю этот вопрос без ответа. Только скажу, что в нём нет ни капли иронии, издёвки, намёка на назидательность и т.д. Это вопрос без какого-либо дополнительного подтекста.

Поиски
Информации по Ассемблеру в Интернете очень много и заблудиться в разных видах Ассемблера (для различных систем) крайне просто. Я не единственный задавался вопросом в поиске «how to print a number in asm». Ответы на разных диалектах языка относительно легко можно найти на Stack Overflow, однако это совершенно не означает, что будет легко запустить найденный код на своей машине. Велика вероятность того, что что-нибудь не сойдётся. Научиться отличать синтаксис AT&T и intel можно за несколько минут, а вот с узнаванием tasm, fasm, masm, nasm - несколько сложнее. Единственное, что можно предположить и (почти) не прогадать: базовые инструкции во всех Ассемблерах имеют (почти) одинаковые мнемоники.

Читать далее

Лучшие новые библиотеки Python за 2022 год

Reading time10 min
Views35K

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

Читать далее

Путешествие сакуры из Японии в Россию по TCP/IP. Анатомия передачи файла: как выглядят фреймы, сегменты и пакеты

Level of difficultyMedium
Reading time4 min
Views10K

Допустим, я скачиваю браузером картинку PNG с фотографией ветки сакуры с веб-сайта из Японии. Она ведь не умещается в одном фрейме. Как выглядит каждый фрейм в нашем случае и сколько их всего будет? И будет ли внутри каждого фрейма что-то меняться в процессе передачи из Японии в Россию?

На каждом этапе перемещения данных по стеку TCP/IP каждый протокол добавляет свой заголовок и передает на следующий уровень абстракции..

И сколько в одном фрейме уместится данных?

Event propagation

Reading time10 min
Views4.3K

Типичное видение модели распространения события, которое мы привыкли видеть в интернете - это модель всплытия события (bubbling) подобно пузырьку, или погружению (capturing) подобно “камню”.

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

Вдохнуть поглубже

Как составить Customer Journey Map и почему не надо игнорировать этот инструмент

Reading time3 min
Views3.9K

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

Читать далее

Когда клиент мучает бесконечными правками

Reading time8 min
Views8.4K

Это глава из «Книги нормального фрилансера», в которой я делюсь опытом проектировщика интерфейсов, работающего на себя.

Самый страшный враг на свете — это правки от клиента,
Видишь правки — защищайся. Ты — эксперт, тебе видней!
Если это не поможет, правь всё молча, с грустным видом,
Чтоб заказчик сразу понял, как он был с тобой неправ. 

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

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

Открывал я его с большим оптимизмом, так как считал, что отлично справился с проектом. Но когда увидел объём обратной связи, расстроился и разозлился одновременно. «Мда, не видать мне оплаты в ближайшее время!» — подумал я, вчитываясь в десятки замечаний.

Читать далее

Однажды у нас будет полностью настраиваемый select

Reading time4 min
Views13K

Сегодня я хочу рассмотреть предложенную функцию HTML, которая может в итоге заменить множество пользовательских компонентов ввода на основе <div>: <selectmenu>.

Читать далее

35 лет DNS, системе доменных имён

Reading time9 min
Views6.7K

В 1987 году произошло много событий, так или иначе повлиявших на развитие информационных технологий: CompuServe разработала GIF-изображения, Стив Возняк покинул Apple, а IBM представила персональный компьютер PS/2 с улучшенной графикой и 3,5-дюймовым дисководом. В это же время незаметно обретала форму ещё одна важная часть интернет-инфраструктуры, которая помогла создать Интернет таким, каким мы знаем его сегодня. В конце 1987 года в качестве интернет-стандартов был установлен набор протоколов системы доменных имен (DNS). Это было событием которое не только открыло Интернет для отдельных лиц и компаний во всем мире, но и предопределило возможности коммуникации, торговли и доступа к информации на поколения вперёд.

Сегодня DNS по-прежнему имеет решающее значение для работы Интернета в целом. Он имеет долгий и весомый послужной список благодаря работе пионеров Интернета и сотрудничеству различных групп по созданию стандартов.
Читать дальше →

Невидимая рука паразитов

Reading time7 min
Views25K

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

Читать далее

Инструменты для GraphQL клиента на Python

Reading time9 min
Views13K

Речь в статье пойдет о специальных инструментах для работы с GraphQL на Python в качестве клиента. Если вы используете GraphQL в своих сервисах на Python, то, скорее всего, сталкивались с необходимостью писать и хранить строки, содержащие GraphQL запросы, а так же писать Python классы для хранения результатов этих запросов. Вероятнее всего, вам было неудобно: не хотелось дублировать схожие запросы, постоянно править классы при частом изменении схемы и т.п. Вот и мне тоже. Поэтому, решая описанные проблемы, появились на свет два пакета: graphql-query и graphql2python.

Читать далее

Экосистема фронтенд-разработчика на JavaScript: полезный инструментарий для начинающих

Reading time9 min
Views18K

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

Читать далее

JavaScript: замена фона видео и реализация интересных эффектов на основе координат лица в реальном времени

Reading time11 min
Views5.1K


Привет, друзья!


Я продолжаю изучать MediaPipe — библиотеку с открытым исходным кодом от Google, предоставляющую "кроссплатформенные и кастомизируемые решения на основе машинного обучения для работы с медиа", и в этой статье хочу рассказать вам о 2 инструментах:


  • Selfie Segmentation, выделяющий людей на сцене, что позволяет осуществлять замену фона на кадрах видео в процессе потоковой передачи соответствующих данных;
  • Face Mesh, предоставляющий сетку лица человека, состоящую из 468 контрольных точек с координатами в трехмерном пространстве, что позволяет реализовать некоторые интересные визуальные эффекты.

Репозиторий с кодом проекта.


Если вам это интересно, прошу под кат.

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

Несколько советов по работе с CORS для начинающих разработчиков

Reading time8 min
Views112K

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

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

Читать далее

Обзор изменений в JupyterLab Desktop за год

Reading time3 min
Views5.3K


JupyterLab Desktop — кросс-платформенный дистрибутив JupyterLab для десктопа. Это самый быстрый и простой способ начать работу, обладающий гибкостью сложных вариантов применения.

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

Редчайший открытый смартфон на Linux: Neo Freerunner. Каким был прадедушка PinePhone?

Reading time8 min
Views9.8K
Слышали ли вы когда-то о PinePhone? Да, это проект открытого смартфона с полностью открытым ПО, который рассчитан не столько на конечного потребителя, сколько на всяческих гиков. Но ведь PinePhone был далеко не первым, а о его предке из далекого 2007 года помнят немногие. Мне удалось раздобыть редчайший Open-Source Linux смартфон, имя которому — Neo Freerunner aka GTA-02! Мы посмотрим, на что был способен этот коммуникатор в своё время, оживим его и подведем итоги: подходило ли такое устройство конечному потребителю. Интересно? Тогда добро пожаловать под кат!

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

Водяная линза и не только

Reading time12 min
Views13K
Картинка Pikisuperstar, Freepik

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

Для этого не нужна ARIA

Reading time5 min
Views3.7K

В веб-разработке написание семантического HTML важно для доступности, а также дает некоторые приятные побочные эффекты, такие как поддержка режима «чтения» в браузере, SEO, graceful degradation и возможность экспорта.

Читать далее

Information

Rating
6,787-th
Registered
Activity