Pull to refresh
25
0
Масляев Александр @maslyaev

Пользователь

Send message

Вычисляем π на первом процессоре от Intel — 4004

Reading time10 min
Views18K

Как-то мне пришла в голову мысль о том, насколько же быстрее современные процессоры по сравнению с ранними экземплярами. Да, можно размышлять об этом эмпирически - зная тактовую частоту и особенности микроархитектуры (как устроен конвейер, сколько есть ALU, и т.д.), можно прикинуть производительность Intel 4004. Пусть и не в FLOPS'ах, ибо нативная поддержка чисел с плавающей запятой появилась позже. Но это будет весьма грубая прикидка, так как у этого процессора есть несколько интересных черт: разрядность только 4 бита (а не 64, как у большинства современных машин), очень скудный набор инструкций (нет даже AND'a и XOR'a!) и ограничения переферии (в частности памяти не так уж и много).

Поэтому я решил исследовать вопрос на практике. В качестве бенчмарка выбор пал на вычисления числа π. В конце-то концов, даже ENIAC в дремучем 1949 году справился с этой задачей! [2]

Читать далее

Как написать сообщение, чтобы его прочитали и поняли

Reading time8 min
Views14K

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

Читать далее

Мозг тоже болеет: что такое антидепрессанты и нужны ли они вам вообще?

Reading time14 min
Views67K
Депрессия — это не только, когда грустно целый день и нет желания работать. Вы можете вообще про неё не знать и лечиться от другого, не понимая, что речь про гормональный дисбаланс, который можно исправить. А поскольку ходить к неврологу «стыдно», есть все шансы прожить долгую несчастную жизнь с недостатком пары гормонов.


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

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

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

Распределённые транзакции Kafka + PostgreSQL средствами Spring

Reading time9 min
Views32K

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

Особенно интересной эта задача становится, когда для интеграции используется Kafka, так как она имеет свои ограничения, касающиеся реализации транзакционности. Вообще, сейчас Kafka достаточно широко применяется именно  в качестве платформы для асинхронной интеграции, это справедливо и для проектов, которые мы в ЛАНИТ — Би Пи Эм реализуем, например, в Альфа-Банке и ВТБ. Поэтому, надеемся, данная тема будет интересна многим.

В этой статье рассмотрим подход к реализации распределённых транзакций (в рамках одного Java-приложения), которые охватывают Kafka и реляционную СУБД. Для этого воспользуемся средствами управления транзакциями, имеющимися в Spring.

Варианты с организацией eventual consistency с помощью типовых паттернов (Saga, Transactional Outbox и др.) и/или использования дополнительных платформ (Debezium, Kafka Connect и пр.) - тема для отдельной статьи (так что ждите продолжения). В этой статье тему затрагивать не будем. 

Читать далее

Разбираем алгоритмы компьютерной графики. Часть 1 — «Starfield Simulation»

Reading time7 min
Views18K

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

Действовать буду по следующему принципу: беру какой-либо графический эффект (из демо, программы, игры – не важно) и пытаюсь реализовать этот же эффект максимально простым и понятным способом, разъясняя что, как и почему сделано именно так.

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

Читать далее

Как сделать интерактивную карту с маршрутами на Python

Reading time7 min
Views35K

Распространённая задача программистов в работе с геопространственными данными — отобразить маршруты между различными точками. Решением, которое может понадобиться в разработке веб-сайта, делимся к старту курса по Fullstack-разработке на Python.

Читать далее

Queries in PostgreSQL. Statistics

Reading time18 min
Views6.2K

In the last article we reviewed the stages of query execution. Before we move on to plan node operations (data access and join methods), let's discuss the bread and butter of the cost optimizer: statistics.

Dive in to learn what types of statistics PostgreSQL collects when planning queries, and how they improve query cost assessment and execution times.

Read more

Почему всем стоит попробовать шрифты для разработчиков

Reading time3 min
Views33K


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

Разработчики день-деньской смотрят на код. Разве не стоит попытаться усовершенствовать этот опыт, чтобы продуктивность возрастала? Существует большое количество шрифтов, которые служат именно этой цели. К самым популярным относятся Fira Code, Source Code Pro, Jetbrains Mono и Ubuntu Mono, но это только несколько примеров – есть еще множество других.

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

Ну и смотрятся они здорово, а это разве плохо?
Читать дальше →

UX-текст на языке Шекспира: заповеди, грехи и табу

Reading time16 min
Views16K

Изменив одно местоимение, можно на 90% увеличить показатель кликабельности (CTR) кнопки, которая приведет новых пользователей. Дописав одно предложение, можно увеличить количество оплаченных покупок и снизить нагрузку на саппорт. Поставив одну запятую, можно было бы сохранить 5 миллионов долларов. ОК, третий пример про договоры, но все равно показателен.


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


Исследование Nielsen Norman Group показало, что лаконичный, объективный (без маркетологического хвастовства) текст, который легко читается пользователем, увеличивает юзабилити сайта на 124%. Только текст. UX и навигацию не трогали.


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

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

30 лучших Python-проектов на GitHub на начало 2022 года

Reading time9 min
Views63K

Наверняка многим из вас любопытно было бы узнать, какие Python-проекты являются самыми популярными на начало 2022 года. GitHub, безусловно, лучшее место для получения этой статистики. Пусть здесь можно найти не все проекты, но ему нет достойной альтернативы.

UPD: добавили ссылки.

Читать далее

Оформляем README-файл профиля на GitHub

Reading time14 min
Views262K

Летом 2020 года GitHub позволила пользователям создавать персональные README-файлы и с их помощью кастомизировать свои профили. Сама платформа при создании подобного файла предлагает уже готовый шаблон, в который можно вписать свои данные. Но о какой кастомизации может идти речь, если у всех будут одинаково оформленные профили? За почти два года сообщество придумало множество различных способов выделиться и особенно оформить свою страницу на GitHub.

Читать далее

Анонимный обмен файлами. BitTorrent over I2P

Reading time13 min
Views44K

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

Читать целиком

TalkPython: лучшие пакеты Python по итогам 2021 года

Reading time14 min
Views23K

На КДПВ в гостях у TalkPython вы видите Гвидо ван Россума — создателя Python, Марка Шеннона, план ускорения Python в 5 раз за 4 года и, конечно, автора подкаста. А мы делимся подборкой пакетов Python, о которых шла речь в выпусках за уходящий год.

Читать далее

NFT — бесполезная технология

Reading time4 min
Views125K
Среднему человеку очень сложно понять, насколько бесполезны NFT. Мы верим в разумность действий. Если вокруг этой технологии поднято уже столько шума – если это вообще можно назвать технологией – наверное, что-то полезное она делает?

На самом деле нет, она не делает вообще ничего.

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

Подобные функции в NFT не зашиты. Они полагаются на внешнюю инфраструктуру, существующую независимо от NFT. Если вам интересно, какую роль при этом играет сама NFT – то никакую. Она отнимает у дурачка его деньги из «Монополии».
Читать дальше →

Физика в Python с использованием Pymunk

Reading time6 min
Views35K

Физика. Кто-то её любит, кто-то нет, но определённо это неотъемлемая часть нашего существования. В этой статье мы рассмотрим как самому создавать физические симуляции используя всего 2 библиотеки Python.
К концу статьи мы сделаем интерактивную симуляцию взаимодействия тел и поймём основы использования библиотеки Pymunk.

В этом туториале вы сможете создать симуляцию тел как на гифке сверху!

Читать далее

Микро-фронтенды для микро-сервисов

Reading time7 min
Views4.6K

М.Видео-Эльдорадо поддерживает более сотни разных систем. Набор необходимых сервисов отличается для сотрудников разных должностей и даже разных функциональных обязанностей. Управлять таким парком, организовывать уровни доступа к разным продуктам – сложная задача. 

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

Читать далее

Мифология и реальные методы прагматичного программирования

Reading time12 min
Views21K

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

Меня зовут Кирилл Мокевнин, и я — сооснователь школы программирования Хекслет. За последние пару лет я провел собеседования с более чем 400 человек, потенциальными наставниками по совершенно разным направлениям в разработке. В результате у меня собралась большая выборка наблюдений, которые мы и разберем в этой статье.

Читать далее

Как написать тысячу автотестов за пару дней

Reading time6 min
Views9.9K

Меня зовут дядя Вова, я ведущий инженер по автоматизации тестирования и, как писал уже несколько раз, неизменный фанат Robot Framework. Даже когда-то контрибьютил в его исходный код и иногда помогаю новичкам в официальном slack-чате этого инструмента.

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

После прошлой статьи многие спрашивали меня, как именно делается параметрическая генерация автотестов. В этой статье отвечу на вопрос.

Читать далее

Руководство разработкой: beginner's survival guide

Reading time14 min
Views23K

Привет! Меня зовут Наташа, я руковожу разработкой бэкенда страницы yandex.ru. Сейчас у нас в команде больше двадцати человек, которые входят в отдельные группы разработки. Три года назад я впервые стала «тимлидом» маленькой группы из четырёх человек, накопив к этому времени десяток лет опыта в разработке и эксплуатации. Я не стесняюсь сказать, что переход от разработчика к тимлиду дался мне тяжело — и это нормально!

Мне нравится помогать людям в их жизненном пути и ко мне часто приходят начинающие руководители для получения опыта. Работа с людьми показала, что все проходят одинаковый путь с одинаковыми проблемами. Эта статья — мой способ наглядно показать начинающим руководителям происходящее с ними и дать очень простые инструменты, облегчающие первый переход от исполнителя к руководителю.
Читать дальше →

Python и чистая архитектура в 2021 году

Reading time11 min
Views26K

Прошло уже почти 3 года с тех пор, как я впервые воспользовался чистой архитектурой на практике. С тех пор я побывал на многочисленных конференциях, где выступал с докладами на эту тему (вот, например, доклад Clean Architecture in Python с конференции PyGotham 2018). Кроме того, я написал статью о чистой архитектуре на Python, которая попала в рассылку RealPython.com … но сейчас заканчивается 2021 год, и мы ушли далеко вперед. Давайте рассмотрим, как развился Python, изучим разные крутые библиотеки, благодаря которым реализовывать чистую архитектуру на Python сегодня стало гораздо проще.

Сначала вспомним о том, зачем она нужна.

Читать далее

Information

Rating
5,105-th
Location
Москва, Москва и Московская обл., Россия
Registered
Activity