Pull to refresh
2
0
Send message

Протоколы в Python: утиная типизация по-новому

Reading time8 min
Views50K

В новых версиях Python аннотации типов получают всё большую поддержку, всё чаще и чаще используются в библиотеках, фреймворках, и проектах на Python. Помимо дополнительной документированности кода, аннотации типов позволяют таким инструментам, как mypy, статически произвести дополнительные проверки корректности программы и выявить возможные ошибки в коде. В этой статье пойдет речь об одной, как мне кажется, интересной теме, касающейся статической проверки типов в Python – протоколах, или как сказано в PEP-544, статической утиной типизации.

Читать далее

Трюки CSS, которые сделают из вас ниндзя верстки

Reading time5 min
Views52K

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


Многие свойства, о которых пойдет речь, являются экспериментальными. Большинство из них поддерживаются всеми современными браузерами, однако, если вы решите использовать какое-либо из названных свойств в продакшне, не поленитесь зайти на Can I use и уточнить поддержку (недавно сильно расстроился, обнаружив, что Safari не поддерживает атрибут loading="lazy").


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


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


Итак, вы готовы к нашему небольшому путешествию в удивительный и почти безграничный мир CSS? Тогда вперед.


grid + place-items


Здесь вы найдете полное визуальное руководство по Grid и Flexbox.


Данная техника позволяет выравнивать элементы по горизонтали и вертикали при помощи всего лишь двух строк кода.

НЕ VIM, а круче (xah fly keys) или XAH FLY KEYS. Большой выпуск

Reading time7 min
Views6K

Насколько я знаю многие программисты используют VIM, а некоторые также используют VIM, но они это делают в EVIL (злом) режиме, это значит, что эти люди понимают все прелести VIM (быстрое редактирование текста без использования мыши, наличие нескольких режимов и т.д.). Но также я знаю, что VIM был сделан несколько миллионов лет назад, для программистов того времени, поэтому VIM использует не все возможности которые мог бы, например: Клавиша для входа в командный режим находится фиг знает где, в самой жопе самом углу клавиатуры (и. да я знаю что это можно легко поправить в .vimrc), также если я захочу поменять свой редактируемый файл, то мне нужно:

Мне это интересно!

Алгоритм нахождения 1000 ферзей на шахматной доске

Reading time2 min
Views7.6K

Недавно разбирался в старых своих наработках/скриптах и наткнулся на скрипт где решалась задача о ферзях. Собственно это послужило написанию статьи о том как проходили этапы написания его алгоритма. Возможно пригодится начинающим программистам для решения похожих задач (код в примерах написан на java).

Читать далее

Функция property() в Python

Reading time2 min
Views79K

Функция property() используется для определения свойств в классах.

Метод property() обеспечивает интерфейс для атрибутов экземпляра класса. Он инкапсулирует атрибуты экземпляров и предоставляет свойства, аналогично тому, как это работает в Java и C#.

Метод property() принимает на вход методы get, set и delete, и возвращает объекты класса property.

Вместо метода property() лучше использовать декоратор property (https://www.tutorialsteacher.com/python/property-decorator).

Читать далее

Доменное имя в призме закона

Reading time15 min
Views24K

Содержание:

1.    Техническое понятие домена;

2.    Структура доменного имени;

3.    Организации, регулирующие доменные имена;

4.    Процедура регистрации домена;

5.    Правовое регулирование доменных имен в РФ;

6.    Требования к доменам в доменных зонах .RU и .РФ;

7.    Основные концепции правовой природы доменного имени;

8.    Судебная практика

Доменное имя – что это такое, кто им управляет, как на него смотрит Закон, попытки суда переварить это понятие и многое другое. Присаживайтесь, поговорим об этих ваших Интернетах.

1. Техническое понятие домена

Итак, начнём со знакомства с технической частью домена.

IP-адрес – уникальный номер компьютера (сервера) в сети Интернет.

Этот номер отражает физическое расположение интернет-ресурса, по нему, в частности, можно определить местоположение сервера, на котором расположен сайт.

Доменное имя – символьное обозначение, как правило, словесное, которое непосредственно не связано с сервером, но при помощи системы DNS-серверов (Domain name server) может быть ассоциировано с IP-адресом (или другим доменным именем)

Так, доменное имя «94.100.180.200» становится лаконичным и красивым «Mail.ru»

IP-адрес является основным средством адресации в сети Интернет, тогда как доменное имя лишь ассоциируется с ним.

Наглядный пример – дом. Дом стоит на определенной точке Земли, которая имеет свои координаты: неизменные и уникальные – это IP-адрес. Эти координаты крайне сложно запомнить. Дом, который построили на этом месте получил свой адрес, например, улица. Меридианная, дом 1 – это и есть домен, который может меняться, его владельцы могут меняться и т.д.

Читать далее

Почему программисты добавляют новые функции, но не убирают лишние?

Reading time6 min
Views19K

В этой конструкции Lego крыша поддерживается блоком в одном углу здания. Когда сверху кладут кирпич, крыша падает на фигурку человечка. Как решить эту проблему? Источник: научная работа Адамс и др., Nature vol. 592 (2021)

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

Конечно, ожирение сайтов и софта сопровождается повышением производительности компьютеров. И в каком-то смысле стимулирует этот рост производительности. То есть налицо цикл положительной обратной связи, грех жаловаться. Но всё-таки возникает вопрос: что же мешает разработчикам удалять лишние функции? Частичный ответ мы находим в научной работе «Люди систематически упускают субтрактивные изменения», опубликованной 7 апреля 2021 года в журнале Nature. Этот феномен проявляется не только в программировании, но и в решении других задач: при улучшении различных объектов, идей или ситуаций, и в целом в жизни людей.
Читать дальше →

Как Unix-way убивает десктопный Linux

Reading time28 min
Views95K

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

Как выглядит захват рынка конкурентоспособным продуктом, можно видеть на примере, например, Chrome: за 10 лет рост на 70%. Или Android: за 5 лет рост на 75%. А вот у Linux рост пол-процента в год, несмотря на то, что он, например, лучший из существующих вариантов для использования в качестве национальных/государственных ОС.

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

Причины этой ситуации, как ни странно, те же, что сыграли роль в популярности Linux на серверах: unix-way, "Философия Unix": "Пишите программы, которые делают что-то одно, и делают это хорошо, и имеют возможность получать и принимать данные через текстовый интерфейс (потому что он универсален)".

Там огромный лонгрид, я предупредил

Современный Javascript: всё, что вы пропустили за последние 10 лет

Reading time7 min
Views15K
JavaScript прошел долгий путь с тех пор, как я знал его как букву «D» в DHTML. Для всех, кто, как я, не хотел использовать новейший синтаксис, который может потребовать полифиллов или транспилятора, я написал эту шпаргалку, чтобы вы познакомились со всеми достоинствами, которые широко поддерживаются в современных браузерах.

Содержание

  • Array functions
  • const/let
  • Nullish coalescing ?? and Optional chaining?.. operators
  • Async/Await
  • Стрелочные функции ()=>{}
  • for...of
  • for await...of
  • Classes
  • get/set
  • function default parameters
  • function named parameters
  • function rest… parameter
  • Destructuring
  • Shorthand functions aka Methods
  • Promise.all
  • Template literals
  • Proxy
  • Module import/export
  • Читать ещё

(Исправления по качеству перевода, пожалуйста, присылайте в личку)
Читать дальше →

Квантовый эксперимент с двумя щелями даёт надежду на создание телескопа размером с Землю

Reading time6 min
Views18K

В предложенном новом проекте квантовые жёсткие диски будут использоваться для использоваться для объединения световых потоков от нескольких телескопов, позволяя астрономам создавать оптические изображения с невероятно высоким разрешением.

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

Читать далее

Паттерны отложенной инициализации свойств объектов в JavaScript

Reading time6 min
Views13K
Автор статьи, перевод которой мы публикуем сегодня, хочет рассказать о нескольких JavaScript-паттернах, направленных на отложенную инициализацию свойств объектов, для выполнения которой требуется произвести вычисления, создающие серьёзную нагрузку на систему. В основе всех этих паттернов лежит использование дескрипторов доступа — свойств объектов, описываемых парой функций — геттером и сеттером.


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

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

Reading time6 min
Views18K

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

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

Кое-что может быть для вас уже знакомым или даже банальным, а кое-что контринтуитивным.

Однако помните: знать и делать - кардинально разные понятия.

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

Читать далее

Инструменты для аудита CSS

Reading time6 min
Views9.3K


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

Существуют некоторые инструменты, облегчающие выполнение указанных задач. Но давайте начнем с того, что понимается под «аудитом» CSS.

Аудит CSS — задача не из легких


Как правило, оценка качества кода включает в себя его анализ в поиске багов и других проблем, например, проблем с производительностью. Для большинства языков программирования концепция аудита кода проста: она работает или не работает. Но CSS — это особенный язык, большая часть ошибок которого игнорируется браузером. Один и тот же стиль можно применять совершенно по-разному. Это обуславливает сложность аудита CSS. И «сложность» — это еще мягко сказано.
Читать дальше →

Преобразуем проект на Python в исполняемый файл .EXE

Reading time3 min
Views445K

С помощью Auto PY to EXE можно с лёгкостью преобразовывать файлы .py в файлы .exe. Благодаря этому ваш проект на Python будет работать как десктопное приложение и вы сможете запускать приложение на других машинах без необходимости установки Python.

В этой статье я расскажу, как преобразовать проект на Python в исполняемый файл. Решение будет работать вне зависимости от количества файлов .py в приложении. Стоит учесть, что Auto PY to EXE работает только с Python 3.5 или выше.
Читать дальше →

С помощью Python создаём математические анимации, как на канале 3Blue1Brown

Reading time6 min
Views37K

Вы наверняка когда-то испытывали трудности в понимании математических концепций алгоритмов машинного обучения и для лучшего понимания темы пользовались обучающим ресурсом 3Blue1Brown. 3Blue1Brown — известный математический YouTube-канал, который ведёт Грант Сандерсон. Многим нравится 3Blue1Brown за прекрасные объяснения Гранта и великолепные анимации.

21 мая стартует новый поток курса о математике для Data Science. Специально к его запуску мы делимся переводом, в котором автор решил рассказать, как делать анимации, подобные анимациям на канале 3Blue1Brown, чтобы вы могли иллюстрировать свои идеи и рассуждения о математике и не только.

Читать далее

Приветствуем CSS Container Queries

Reading time7 min
Views23K

*Container Queries — Выражения от контейнера 

За последние шесть лет моей работы в качестве front-end разработчика я не был так рад появлению CSS фитчи, как сейчас. Прототип container queries теперь доступен в Chrome Canary. Благодаря усилиям таких умных людей, как Miriam Suzanne и других.

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

Если вы взволнованы так же, как и я, то давайте начнем. Вы готовы?

Читать далее

ReeePlayer – интервальное повторение фрагментов видео для изучения иностранных языков

Reading time7 min
Views6.3K

Начать смотреть видео на иностранном языке не просто. Этим объясняется большое количество статей с самыми разными советами:

• Смотреть с русскими субтитрами и не париться.

• Смотреть с иностранными субтитрами и переводить на паузе, если не понятно.

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

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

Читать далее

Узелковое мышление. Об информационной уникальности кипу

Reading time8 min
Views7.5K

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

Начну этот рассказ с краткого отступления – истории, изложенной в книге «Код» Чарльза Петцольда.

Луи Брайль (1809 - 1852), знаменитый автор шрифта для слепых, от рождения слеп не был. Отец Брайля работал шорником, и девятилетний ребенок случайно попал себе в глаз острым инструментом, играя в отцовской мастерской. На один глаз он ослеп сразу, но затем инфекция быстро перекинулась и на второй глаз, в результате чего Луи полностью утратил зрение и оказался в парижском приюте Валентина Гаюи (1745 - 1822), который в 1784 году основал в Париже «Мастерскую трудящихся слепых», а в 1806-1818 годах занимался аналогичной работой в Санкт-Петербурге.

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

Читать далее

Этический антидизайн. Разработка продуктов, которые не вызывают привыкания

Reading time6 min
Views12K

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

Главный ресурс современной экономики — внимание. Именно за него бессовестно конкурируют коммерческие фирмы. Больше внимания — больше денег. Стартапу уже необязательно продавать платную подписку, главное — привлечь внимание. Это окупится. Сверхзадача — вообще не отдать никому ни минуты внимания своих пользователей.

Но здесь возникает риск, что человек «подсядет» на совершенно бесполезный продукт. Конечно, это мечта бизнеса. Поэтому некоторые дизайнеры сознательно или бессознательно манипулируют людьми, эксплуатируя их слабости.
Читать дальше →

Это ваш мозг под наркозом

Reading time4 min
Views21K
Ученым впервые удалось изучить, как ведут себя нейроны мозга в бессознательном состоянии


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

Мониторинг процесса наркоза может сделать хирургию более безопасной, но большинство анестезиологов не используют ЭЭГ. Эмери Браун — профессор нейробиологии в Массачусетском технологическом институте, а также процессор анестезии в Гарвардской медицинской школе. Он же — практикующий анестезиолог, и его беспокоит отсутствие контроля за работой мозга во время наркоза. «Большинство анестезиологов не думают об этом с точки зрения нейробиологии», — говорит он. Браун в течение десяти лет изучает, что происходит с мозгом, когда его «хозяин» находится без сознания. Зачем? Для получения данных о том, как работают разные анестетики, а также о том, что происходит с нейронами. Желание профессора — получить столько информации, чтобы можно было сказать о мозге под наркозом: «Вот, что здесь происходит. Это не черный ящик».
Читать дальше →

Information

Rating
6,139-th
Registered
Activity