Pull to refresh
2
0
Send message

Python asyncio, блокировка цикла событий

Level of difficultyMedium
Reading time3 min
Views2.6K

Блокировка event loop довольно серьезная проблема в асинхронных приложениях, потому что приводит к замедлению не конкретного запроса пользователя, а сразу всех запросов пользователей. Так давайте разберемся, что же это значит и, насколько это страшно и для разработчика и для клиентов сервиса.

Читать далее

Я сплю на рабочем месте и вам советую

Level of difficultyEasy
Reading time2 min
Views50K

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

Читать далее

Регулярные выражения простыми словами. Часть 3

Level of difficultyEasy
Reading time11 min
Views9K

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

weakref.finalize: «почти IDisposable» для Python-объектов

Level of difficultyEasy
Reading time7 min
Views556

Привет, Хабр!

Я не знаю, как у вас, а у меня перед глазами все еще маячат толстенные исходники WinForms-эра на C#, где любой порядочный объект, умеющий держать ручку к файлу или сокету, строго реализует IDisposable. Закрыл — молодец, забыл — получи warning от IDE и пару нехороших утечек в production.

В Python, увы-ях, аналогичный контракт традиционно строили на del и контекст-менеджерах. Первый: если объект в циклическом мусоре, финализатор может не вызваться вообще; к тому же при выключении интерпретатора порядок разрушения объектов хаотичен. Второй (with ... as) шикарен, но требует явного вызова, а значит — дисциплины.

С выходом PEP 442 и появлением weakref.finalize мы получили «почти IDisposable» — финализатор, которому не страшны циклы, и который честно отработает даже на shutdown, если правильно обращаться.

Читать далее

Как я убедил виртуальную машину, что у неё есть кулер

Level of difficultyEasy
Reading time6 min
Views19K

Зачем вообще этим заморачиваться?

Некоторые образцы malware выполняют различные проверки, чтобы определить, запущены ли они в виртуальной машине. Один из самых частых способов — проверка наличия определённых аппаратных компонентов, обычно не эмулируемых в виртуальных средах. Один из таких компонентов — кулер процессора. Например, malware может проверять наличие кулера процессора, поискав в WMI класс Win32_Fan:

wmic path Win32_Fan get *

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

Зловредное ПО может определять, запущено ли оно в виртуальной машине, множеством разных способов. Есть различные классы WMI, позволяющие обнаружит присутствие виртуальной машины, например, Win32_CacheMemory, Win32_VoltageProbe и множество других.

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

Читать далее

Реляционные базы данных в книге «Двенадцать стульев»: как устроен архив Коробейникова

Level of difficultyMedium
Reading time6 min
Views2K

Меня зовут Екатерина Петрова, я автор медиа «вАЙТИ» и аналитик. Перечитывая свой любимый роман И. Ильфа и Е. Петрова «Двенадцать стульев», а именно сцену с архивариусом Коробейниковым, я вдруг поняла: его бумажный архив ордеров на имущество бывших дворян не что иное, как идеальный пример реляционной базы данных. Алфавитные указатели — это индексы, книги учета — таблицы с первичными ключами, ордера — настоящие транзакции.

Читать далее

Lisuan G100: первый игровой графический чип из Китая. Возможности новинки

Reading time5 min
Views6.2K

Китай анонсировал Lisuan G100 — свой первый графический процессор, созданный по 6-нм техпроцессу. Этот проект — часть стратегии страны по развитию автономности электронной отрасли вне зависимости от американских компаний. Сегодня разберем, что представляет собой G100, как он показывает себя в тестах. Ну и узнаем, почему его сравнивают с Nvidia GTX 660 Ti и AMD Radeon HD 7950 — видеокартами 2012 года. Поехали!

Читать далее

Небольшая библиотека утилит на Rust для Python (FastPy-RS, Alpha)

Reading time2 min
Views2.9K

Всем привет! Я пришёл из экосистемы Rust и недавно начал работать в Python. Я люблю Rust за безопасность и скорость, но влюбился в Python за простоту и быструю разработку. Это вдохновило меня создать что-то полезное для сообщества Python: FastPy-RS — библиотеку часто используемых функций, которую можно вызывать из Python, а реализация внутри написана на Rust. Цель — обеспечить высокую производительность и надёжность. Хотя многие Python-библиотеки используют C для ускорения, такой подход может нести риски безопасности.

Читать далее

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

Level of difficultyMedium
Reading time4 min
Views3.1K

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

Читать далее

Я разобрался с ELK в .NET, чтобы вам не пришлось

Level of difficultyEasy
Reading time6 min
Views5.7K

Вообще, эта статья — по сути краткий обзор современных инструментов логирования, которые часто используются в.NET. Но из‑за того, что настройка ELK — относительно трудоемкий процесс, весь фокус по итогу сместился в сторону использования сего стека. Я просто смирился с этим. Надеюсь, мой опыт сэкономит время и силы читателю, желающему ознакомиться с ELK.

Читать далее

Анджелина Джоли была права насчёт компьютеров

Level of difficultyEasy
Reading time15 min
Views23K

Невероятно, но это сказала Анджелина Джоли. Шёл 1995-й год. Представьте Джоли — ни волос, ни актёрского опыта — в роли подростка-хакерши в фильме «Хакеры». Не так уж много людей смотрели этот фильм. Ещё меньше людей оценили его актуальность. «„Хакеры“ ужасно раздражающие, — писал в то время журнал Entertainment Weekly, — ведь в них воплотился „мистический образ ребёнка за компьютером как элитарного бунтаря, которую сейчас пропагандируют журналы вроде WIRED“». Тридцать лет спустя Entertainment Weekly больше не издаёт журнал, а WIRED издаёт, и «Хакеры» входят в число основополагающих документов цифровой эпохи. Когда я в последний раз видел фильм, его проецировали на стену бара для крутых подростков, расположенного на соседней улице от моего дома.

Но самое невероятное не в этом. Невероятно, опять же, то, что сказала Джоли. Про будущее. В середине фильма «Хакеры» она наблюдает, как её возлюбленный (его играет Джонни Ли Миллер, за которого она позже выйдет замуж в реальной жизни) увлечённо печатает на ноутбуке нового поколения. «У него убийственная частота обновления», — говорит Миллер, учащённо дыша. Джоли отвечает: «Чип P6. Втрое быстрее, чем Pentium». Теперь Миллер действительно на взводе. Тогда Джоли наклоняется вперёд и в том самом крупном плане, который вскоре сделает её всемирно известной, говорит следующее: «Архитектура RISC изменит всё».

Читать далее

Установка Windows через CMD

Level of difficultyMedium
Reading time6 min
Views17K

Приходилось ли вам устанавливать современные версии Windows? Если да, то вам точно знаком установщик, каждый этап которого прогружается несколько секунд, и который яростно навязывает вам использование аккаунта Microsoft, с каждым обновлением делая использование локального аккаунта всё труднее и труднее.

Но существует альтернативный способ установить Windows — более быстрый, не требующий подключения к интернету и не навязывающий никаких сервисов — ручная установка с использованием CMD.

Читать далее

Мой набор для Django

Level of difficultyEasy
Reading time3 min
Views2.8K

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

Читать далее

Telegram Web съел 30% моего 16-ядерного процессора. Расследование странного поведения, или Призрак майнера в браузере

Reading time9 min
Views21K

Всем привет! Сегодня я хочу поделиться историей одного странного и затянувшегося расследования, главным героем которого стал мой компьютер, а антагонистом — веб-версия Telegram. Эта история не только о поиске прожорливого процесса, но и о глубоких аномалиях в поведении современных веб-приложений, которые вызывают серьезные вопросы.

О, нука че там

Темная магия JavaScript: Укрощаем неявное приведение типов

Level of difficultyEasy
Reading time12 min
Views4.3K

Привет, Хабр! У каждого JS-разработчика есть своя история. История о том, как он впервые встретился с этим. Сидишь, пишешь код, всё логично, всё под контролем. И тут, чтобы проверить одну мелочь, открываешь консоль и из чистого любопытства пишешь:

[] + {} // Получаешь: "[object Object]"
// Хм, ладно, массив привел себя к строке, а объект стал... объектом. Логично.

{} + [] // Получаешь... 0 ???
// ЧТО?!

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

Разобраться с этим!

Как я собрал ноутбук, который можно передать по наследству

Level of difficultyEasy
Reading time15 min
Views46K

Novena Heirloom — это созданная мной ограниченная серия кастомных корпусов для разработанного Эндрю Хуангом и Шоном Кроссом компьютера Novena с открытым исходным кодом. Проект финансировался путем краудфандинга в сотрудничестве с компанией Crowd Supply из Портленда, штат Орегон.

Всего было разработано несколько прототипов. Рассматривался даже вариант конструкции в виде мольберта. После консультации эта идея все-таки была отвергнута в пользу более традиционной «раскладушки». Имелось важное требование: обеспечить доступ пользователя к внутренним компонентам. Так мы пришли к необходимости съемной клавиатуры, что в значительной степени определило конечный результат. Основная идея дизайна вдохновлена винтажными Hi-Fi системами, ярким представителем которых является Дитер Рамс. Надеюсь, наш труд станет данью уважения к его работам. Финальный дизайн в значительной степени остался верен первоначальному концептуальному прототипу.

Все подробности создания — под катом.
Читать дальше →

Visi On — предтеча Windows, о которой забыли

Level of difficultyEasy
Reading time8 min
Views11K

Если спросить любого человека, хоть немного знакомого с компьютерами, как называлась первая операционная система с оконным графическим интерфейсом для IBM PC, он наверняка скажет — Microsoft Windows. И это будет неправильный ответ. Ещё за два года до Windows 1.0 пользователям PC была доступна ОС с полноценным графическим интерфейсом, меню и окнами, управляемая при помощи мыши. Но про эту систему благополучно забыли… Почему? Сейчас разберёмся, а заодно узнаем, почему Билл Гейтс, увидев Visi On на выставке COMDEX в 1982 году, не поверил в её реальность.
Читать дальше →

Редчайший японский ноутбук с MIPS-процессором

Level of difficultyEasy
Reading time7 min
Views16K

Пару лет назад я начал коллекционировать интересные гаджеты, в форм-факторе ноутбука. Особое место в моей коллекции занимают устройства на диковинных процессорных архитектурах — и нет, речь даже не об ARM, а о куда более редких MIPS и SH4. Недавно я исследовал китайский аналог Авито и наткнулся на очень интересный предсерийный прототип ноутбука Fujitsu Intertop CX300 всего за 3.000 рублей — и в сегодняшней ретроспективной статье, мы с вами разберем это чудо японской инженерной мысли и познакомимся с ним поподробнее!

Читать далее

Как хранить* энергию в проволоке: что это и зачем это делать?

Reading time8 min
Views6.5K
image


Когда говорят о накоплении энергии, сразу приходят в голову разнообразные аккумуляторы, конденсаторы, батареи и даже гравитационные (подъём веса на высоту, а потом медленное опускание), и гидравлические (плотина с резервуаром воды как пример) накопители энергии.

При этом, человеку, далёкому от электроники, даже в голову не придёт, что энергию можно запасать… в проволоке! А точнее, — в проволочных катушках.

Ниже мы поговорим более подробно, что это такое, зачем это надо и как полезным образом можно использовать.

Это статья не будет каким-то откровением для тех, кто глубоко в теме, но, тем не менее, для всех остальных, надеюсь, что, будет интересно!
Читать дальше →

Клетка 22. Кровь — уникальная система организма

Level of difficultyMedium
Reading time15 min
Views1.6K

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

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

Читать далее

Information

Rating
6,158-th
Registered
Activity