Pull to refresh
116
0

Python developer

Send message

Delta-Rle-Huffman (DRH) Texture Format

Reading time8 min
Views3.9K

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

Внимание! В статье много картинок.

Кому интересно, добро пожаловать под кат!
Total votes 38: ↑37 and ↓1+53
Comments16

Википедии на искусственных языках

Level of difficultyMedium
Reading time12 min
Views5.4K

Разделы википедии есть на 355 языках (плюс несколько десятков в инкубаторе).

Есть крупные разделы с более чем миллионом статей, их чуть менее 20 (на английском, немецком, русском и так далее; парадоксальным образом на втором месте - википедия на себуанском, одном из языков филиппин, накачанная ботозаливками).

Есть мелкие, но важные (например, на идише, на африканских языках, или на башкирском).

А есть несколько разделов на искусственных языках. Сейчас их 9 (когда-то был еще один, на токипоне; но его закрыли очень давно).

Я попытался разобраться с каждым из них
Total votes 34: ↑33 and ↓1+44
Comments29

Записываем музыку при помощи CSS Grid

Level of difficultyMedium
Reading time8 min
Views7K
Слишком часто я наблюдал за тем, как импровизирующий музыкант трясущимися руками пытается увеличить pdf размером A4 на крошечном экране телефона в самом разгаре исполнения. Мы обязаны создать плавный и отзывчивый рендеринг музыки для веба!

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

Прототип Scribe


SVG, отрендеренный Scribe 0.2

Несколько лет назад я создал прототип рендерера музыки, который назвал Scribe. Он выполняет преобразование JSON в SVG. Изначально я стремился к созданию адаптивного рендерера музыки. Это было хорошее демо, но для дальнейшего развития пришлось бы писать сложный многопроходный движок генерации макетов, а у меня тогда возникли другие дела.

Вскоре после этого я занялся адаптированием Grid под проекты компании, и тут мне почудилось нечто знакомое: я задался вопросом, а не станет ли он решением некоторых проблем, с которыми я столкнулся при разработке Scribe?
Читать дальше →
Total votes 55: ↑55 and ↓0+63
Comments17

Сжатие информации без потерь. Часть первая

Reading time9 min
Views79K
Доброго времени суток.
Сегодня я хочу коснуться темы сжатия данных без потерь. Несмотря на то, что на хабре уже были статьи, посвященные некоторым алгоритмам, мне захотелось рассказать об этом чуть более подробно.
Я постараюсь давать как математическое описание, так и описание в обычном виде, для того, чтобы каждый мог найти для себя что-то интересное.

В этой статье я коснусь фундаментальных моментов сжатия и основных типов алгоритмов.
Читать дальше →
Total votes 40: ↑36 and ↓4+32
Comments18

Информация об информации. Энтропия Шеннона, демон Максвелла и предел Ландауэра

Level of difficultyMedium
Reading time24 min
Views27K

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

Читать далее
Total votes 36: ↑34 and ↓2+43
Comments166

Это один из лучших подходов к изучению английского, что я видел за последние годы — коллокации

Reading time7 min
Views123K

Значение слова – это его использование в языке
Людвиг Витгенштейн (сурс) 

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

А что если я скажу, что они улучшают сразу и вашу способность органично говорить, и канонично писать, и что совсем удивительно воспринимать английский от носителей языка на слух? И главный вопрос, который меня мучает – почему я узнал об этой технике изучения языка только полгода назад? (Рассказ об этой подготовке здесь.) 

Внимательно посмотрите на пример с картинки. Как только собеседник начал(а) произносить “pitch d…” ваш мозг, зная нужные коллокации, подскажет, что там должно быть “dark”. Даже если вы плохо расслышали эту часть. Это один из механизмов, через который коллокации позволяют лучше воспринимать язык на слух.

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

Disclaimer: если у вас филологическое образование, то вам наверное будет смешно, что кто-то открыл для себя коллокации и их использование для изучения иностранного языка в 202N году, а вот если вы, как и я, когда-то читали “randomize” как “рандомизе”, то возможно эта статья будет вам полезной.

Добро пожаловать под кат
Total votes 72: ↑71 and ↓1+95
Comments116

Сжатие целых чисел

Level of difficultyEasy
Reading time5 min
Views14K

Цель статьи осветить state of the art методы сжатия целых чисел, чтобы сэкономить в будущем время исследования алгоритмов и терминологии. При этом описание части алгоритмов может быть упрощено для понимания. Сравнение алгоритмов тоже находится вне рамках этой статьи. Подробнее можно почитать в ссылках.

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

Читать далее
Total votes 32: ↑27 and ↓5+32
Comments22

Прививка от ошибки выбора: что спросить работодателя «на берегу»

Level of difficultyEasy
Reading time13 min
Views24K

Меня зовут Настя, я руководитель службы инструментов репозитория в Yandex Infrastructure. Больше 15 лет я проработала в IT-индустрии: сначала как разработчик, потом тимлид, техлид, менеджер проектов и руководитель службы. За это время несколько сотен человек рассказали мне о своём карьерном пути: кто-то собеседовался со мной как с нанимающим менеджером, кто-то приходил ко мне на менторинг, кто-то расширял свой нетворк, как теперь модно говорить. Из этих разговоров можно выделить причины недовольства работой, которые я вижу у людей чаще остальных. Одна из главных причин — ошибка выбора вакансии.  

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

Читать далее
Total votes 44: ↑41 and ↓3+44
Comments49

Почему обучение — это новая прокрастинация

Reading time3 min
Views76K
Мир богатый онлайн-курсами, блогами, социальными медиа, бесплатными электронными книгами, подкастами и вебинарами, дает поистине грандиозную возможность расширить свои знания в любой сфере, какую только можно себе представить.


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

Кроме того, отчасти вы даже вынуждены это делать, так как современный мир поднял планку выше, чем когда-либо прежде. Он буквально заставляет вас постоянно ускорять темп.
Читать дальше →
Total votes 70: ↑63 and ↓7+56
Comments38

Функциональное программирование в Python: ежедневные рецепты

Level of difficultyMedium
Reading time21 min
Views16K
Как говорится, спроси пять программистов, что такое функциональное программирование, получишь шесть разных ответов. В целом это программирование через функции в их математическом понимании, то есть когда функция принимает что-то на вход и что-то возвращает на выходе, не меняя глобального состояния.

В своей команде — команде разработки инструментов для разработчиков под KasperskyOS — мы создаем разные интересные консольные утилиты, эмулятор, обеспечиваем интеграцию с IDE и так далее. И для этого мы используем разные языки — C++, C, TypeScript; но больше всего пишем на Python.



В этой статье, которая написана по следам моего выступления на конференции PiterPy, я обращаюсь к практикующим разработчикам — расскажу о том, какие функциональные приемы можно использовать в этом языке. Сконцентрируюсь на практике — на тех примерах, которые можно использовать уже буквально сейчас, не переписывая свой проект.
Читать дальше →
Total votes 16: ↑16 and ↓0+16
Comments3

Протоколы семейства TCP/IP. Теория и практика

Level of difficultyMedium
Reading time23 min
Views141K
image

В сети можно найти огромное количество материала о том, как функционируют сети на базе стека протоколов TCP/IP, а также как писать компьютерные программы с сетевыми возможностями. При рассмотрении компьютерных сетей часто углубляются в описание физических основ и структур данных, передаваемых по сети, а при рассмотрении сетевого программирования основное внимание уделяют интернет-сокетам.

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

В ходе работы над статьёй я написал небольшое приложение, которое послужит отправной точкой для понимания компьютерных сетей и семейства протоколов TCP/IP. С приложением можно экспериментировать, получая дополнительные знания.

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

В статье изложены наиболее важные с моей точки зрения понятия, которые должен знать любой программист, хоть как-то сталкивающийся с компьютерными сетями. Так что без теоретических сведений не обошлось.
Читать дальше →
Total votes 82: ↑82 and ↓0+82
Comments5

Anki — настолько круто, что я даже представить не мог

Reading time4 min
Views151K

Если вдруг кто не знает, Anki - это бесплатная opensource программа для запоминания слов (и не только). Есть версии под декстоп и мобилы. Она довольно популярна при этом имеет интуитивно-НЕпонятный интерфейс. Мне понадобилось много лет, чтобы понять, насколько она крута, т.к. базовые статьи и туториалы этого не описывают. А многие люди используют ее даже не понимая ее возможностей.

Впервые про Anki я услышал много лет назад. Может быть 10 или больше, точно сказать сложно. Прочитал здесь на Хабре, что есть такая крутая штука как интервальное повторение, и что Anki как раз такая программа, которая использует этот механизм. Помню что в статье рассказывалось только про версию под декстоп.

Читать далее
Total votes 69: ↑60 and ↓9+66
Comments145

Теория типов

Level of difficultyMedium
Reading time43 min
Views32K

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

Что можно узнать из этой статьи?
Total votes 75: ↑75 and ↓0+75
Comments70

Снятие с воинского учета. Дистанционно. Пакет документов

Level of difficultyEasy
Reading time6 min
Views50K

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

Если вкратце, то рабочий кейс, это когда: (А) имеется основание для снятия: уже живете зарубежом полгода, либо имеется иностранный ВНЖ, (B) грамотно составлено заявление на снятие с учета и подписано вашей подписью, (C) в военкомат идет ваш представитель по доверенности, которая оформлена у российского нотариуса или в зарубежном консульстве РФ.

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

Читать далее
Total votes 71: ↑61 and ↓10+71
Comments83

Эксперимент об автоматическом фильтре кандидатов по годам опыта

Level of difficultyEasy
Reading time3 min
Views19K

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

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

Для проверки этой гипотезы я объявляю набор участников в эксперимент “Волк в овечьей шкуре”. Его цель доказать сильное влияние отсутствие опыта в резюме на уменьшение количества приглашений на собеседования. Участники убирают из своего резюме года опыта работы, но оставляют пет-проекты, образование, опенсорс и откликаются на вакансии. Здесь можно подробно прочитать про правила и ход эксперимента, получившего название "Волк в овечьей шкуре".

Читать далее
Total votes 33: ↑29 and ↓4+33
Comments103

Какими приключениями грозит невключенная двухфакторная аутентификация на Госуслугах

Level of difficultyEasy
Reading time9 min
Views50K

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

Когда появились госуслуги, на них не было автоматического информирования о входах в аккаунт с непривычного IP, не предлагалась двухфакторная авторизация. Я создал пароль достаточно надежный - не использованный нигде ранее, и считал,что все отлично, не меняя его 5 лет. На портал заходил я редко, но авторизовывал через ЕСИА государственные сервисы. Госуслуги присылали рассылки на почту, а я был уверен, что при авторизации с подозрительного IP или попытки брутфорса меня уведомят, а аккаунт заблокируют, ведь телефонный номер Госуслуги и так знают.

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

Утром 11 июля мне потребовалось авторизоваться на сайте Госуслуг, но "пользователь с таким email не зарегистрирован". Я набрал службу поддержки, назвал свой номер СНИЛС, а мне (не спрашивая всяких контрольных вопросов, что в моем случае было как раз хорошо) техподдержка заявила, что с этим номером СНИЛС аккаунт заведен 5 июля, почта и телефон там другие, а тот, в котором была ваша почта и телефон, удалены того же числа.

Читать далее
Total votes 100: ↑98 and ↓2+126
Comments191

В {n} раз быстрее Си

Level of difficultyHard
Reading time13 min
Views39K

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

Эта статья публиковалась на главной странице HackerNews, и к её обсуждению вы можете присоединиться здесь.
Читать дальше →
Total votes 117: ↑113 and ↓4+153
Comments300

Победители Технотекста 2022

Reading time10 min
Views8K

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

А в комментариях быстрый конкурс-вечеринка. Хабр собирает советы для начинающих авторов, за лучшие рекомендации дарим мерч: кофту свитшот и сумку шоппер. Подробности — в первом комментарии.

Читать далее
Total votes 61: ↑57 and ↓4+91
Comments31

Шпаргалка по SQL (postgres), которая выручает меня на собесах

Level of difficultyEasy
Reading time8 min
Views202K

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

Я решил посвятить свою первую статью SQL. Вопросы, рассмотренные ниже мне задавали на собеседованиях на позицию python-разработчика. Естественно отвечать правильно получалось не всегда, а если точнее то чаще не правильно, однако проведя N часов в рефлексии я составил перечень ответов, которыми пользуюсь до сих пор.

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

Читать далее
Total votes 156: ↑149 and ↓7+177
Comments178
1

Information

Rating
Does not participate
Registered
Activity

Specialization

Backend Developer
Python