Как стать автором
Обновить
29
0.3
Максим @danilovmy

Программист разработчик

Как PDF изменил мир

Уровень сложности Простой
Время на прочтение 10 мин
Количество просмотров 9.5K

Нам сейчас трудно представить, но было время, когда документы для печати нельзя было создать и подготовить за считанные секунды. И вообще, раньше обмен документами был громоздким процессом, который включал в себя распечатку и физическую передачу из рук в руки. Но всё изменилось в 1993 году, когда Adobe Systems представила миру PDF (Portable Document Format) — революционно новый формат файлов, он упростил обмен документами и их архивирование.

Тридцать лет спустя PDF — популярный формат документов для всего: от налоговых форм до электронных книг и руководств пользователя. PDF изменило то, как пользователи создают, делятся и получают доступ к цифровым документам. Только в прошлом году пользователи открыли более 400 миллиардов PDF-файлов в продуктах Acrobat, а Adobe обработала более 8 миллиардов транзакций с электронными и цифровыми подписями. PDF стал неотъемлемой частью современного мира, оказав фундаментальное влияние на появление онлайн-печати.
Читать дальше →
Всего голосов 48: ↑48 и ↓0 +48
Комментарии 62

Причины высокого time2market

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

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

Что мешает сократить time2market? Поделюсь личным опытом в этой статье.

Читать далее
Всего голосов 14: ↑10 и ↓4 +6
Комментарии 0

Перевезу в iframe. Дешево

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

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

Читать далее
Всего голосов 13: ↑13 и ↓0 +13
Комментарии 7

Полное руководство по модулю asyncio в Python. Часть 1

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

Python-модуль asyncio позволяет заниматься асинхронным программированием с применением конкурентного выполнения кода, основанного на корутинах. Хотя этот модуль имеется в Python уже много лет, он остаётся одним из самых интересных механизмов языка. Но asyncio, при этом, можно назвать ещё и одним из модулей, которые вызывают больше всего недоразумений. Дело в том, что начинающим разработчикам бывает трудно приступить к использованию asyncio.

Перед вами — подробное и всестороннее руководство по использованию модуля asyncio в Python. В частности, здесь будут рассмотрены следующие основные вопросы:

Читать далее
Всего голосов 31: ↑29 и ↓2 +27
Комментарии 8

«Не заставляйте меня думать»

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

Краткое содержание книги "Не заставляйте меня думать" Стива Круга адресована веб-дизайнерам, но ее идеи могут быть использованы и маркетологами. Книга вышла в России уже в далеком 2006 г., но её идеи актуальны и сегодня. При составлении конспекта пропустил всю информацию, относящуюся к дизайну сайтов в нулевые годы, и оставил только "соль".

Читать далее
Всего голосов 8: ↑8 и ↓0 +8
Комментарии 2

Миграция с vue-class-component на vuejs/composition-api

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

В статье хочу поделиться опытом переписывания существующих классовых компонентов vue на новый синтаксис vue-composition-api.

Немного о нашем стеке.

Наше приложение написано на nuxt2 + vue-class-components + typescript. Из-за стека переезд на новый nuxt затруднился тем, что прежде чем сменить версию nuxt со 2 на 3 нам нужно переписать все наши компоненты. Тут нас очень спасла библиотека vuejs/composition-api и nuxtjs-composition-api

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

Стоит сразу отметить, что в composition-api вся магия происходит внутри метода setup , который включает в себя 2 хука жизненного цикла vue компонента: beforeCreate и created
Помимо основных примеров я покажу как будет работать типизация в тех или иных кейсах.

* Все названия переменных вымышлены и не используются на продуктиве)

Поехали!

Читать далее
Всего голосов 7: ↑6 и ↓1 +5
Комментарии 21

Сквозь тернии к core-у или процесс компиляции Vue

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

Нео проснулся от бликов вспыхнувшего экрана компьютера. Экран заполняла зеленая полоска прогресса.

– Матрица – испуганно прошептал Нео.

– Александр, вы уснули на работе – прошептал тимлид.

Я взглянул на экран компьютера еще раз. Компиляция Vue была завершена. Я облегченно вздохнул.

Скомпилировать!
Всего голосов 20: ↑19 и ↓1 +18
Комментарии 2

Taichi и 100-кратное ускорение Python-кода

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

Python стал самым популярным языком во многих быстроразвивающихся областях, таких, как глубокое обучение и различные направления анализа и обработки данных. Но при этом за удобство работы с Python-кодом, за высокий уровень его читабельности, приходится платить производительностью. Конечно, все мы время от времени жалуемся на скорость работы программ, и Python, безусловно, не стоит винить во всех грехах. Несмотря на это, справедливым будет заявление о том, что природа Python, интерпретируемого языка, не способствует высокой производительности кода, особенно когда речь идёт о «тяжёлых» вычислениях (один из признаков таких вычислений — наличие в программе нескольких вложенных циклов).

Если вы когда-либо попадали в одну из следующих ситуация — тогда эта статья, определённо, написана для вас.

Читать далее
Всего голосов 53: ↑53 и ↓0 +53
Комментарии 5

20 лет проблем приема платежей

Время на прочтение 11 мин
Количество просмотров 20K
image
За логотип спасибо yarbabin

Электронные системы расчетов существуют в интернете уже давно, а баги на них встречаются двадцатилетней давности. Мы находили критические уязвимости, позволяющие угнать деньги и накрутить баланс. Сегодня мы разберем типовые реализации приема платежей и связанные с ними проблемы безопасности.
Читать дальше →
Всего голосов 133: ↑132 и ↓1 +131
Комментарии 20

Drag-and-Drop на Python+OpenCV

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

В данной статье расскажу про простой Drag-and-Drop на Python+OpenCV.

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

Читать далее
Всего голосов 11: ↑11 и ↓0 +11
Комментарии 15

Django-sockpuppet, интересная альтернатива React, Vue, Angular или очередная заброшенная джанговская «батарейка»?

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

Всем доброго времени суток!

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

Сейчас хайп вокруг современных javascript SPA фронтенд фреймворков особенно горяч, и во многом эта популярность вполне заслужена, эти технологии позволяют успешно выполнять практически любую задачу. Скорость SPA приложения может быть сравнима с десктоп приложениями, это достигается за счет перенаправления большей части ответственности с сервера на клиента. К сожалению, этот новый подход порождает все более сложные технологии, а работа разработчика, которая когда то была увлекательна и продуктивна стала значительно сложнее и монотоннее. Возможны ли альтернативы современным SPA фреймворкам? Возможно ли создавать полноценные reactive user interfaces быстро, просто и только на джанго? Далее хочу обратить Ваше внимание на интересный проект который может дать ответы на эти вопросы.

Читать далее
Всего голосов 16: ↑15 и ↓1 +14
Комментарии 17

Заходят как-то два браузера в скроллбар…

Время на прочтение 8 мин
Количество просмотров 28K
image Скроллбар (scrollbar, полоса прокрутки) — это простой, но эффективный механизм, который действует как основное средство, с помощью которого можно просматривать большие документы. Но это — далеко не всё, на что способны полосы прокрутки! Эти скромные рабочие лошадки ещё и неплохо подсказывают пользователям о том, каковы размеры документов, с которыми они взаимодействуют. В результате скроллбары несут на себе двойную нагрузку. Они и помогают работать с различными материалами, и информируют пользователя о размерах этих материалов.

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

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

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

Материал, перевод которого мы публикуем сегодня, посвящён некоторым особенностям использования скроллбаров в веб-приложениях.
Читать дальше →
Всего голосов 42: ↑41 и ↓1 +40
Комментарии 19

Информация

В рейтинге
1 481-й
Откуда
Zams, Tirol, Австрия
Дата рождения
Зарегистрирован
Активность

Специализация

Backend Developer, Fullstack Developer
Lead
От 7 000 €
Python
Django
Ajax
OOP
Design patterns
Vue.js
JavaScript
HTML
CSS