Pull to refresh
114
0

Python developer

Send message

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

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

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

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

Level of difficultyMedium
Reading time24 min
Views19K

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

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

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

Reading time7 min
Views117K

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

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

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

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

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

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

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

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

Level of difficultyEasy
Reading time5 min
Views13K

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

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

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

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

Level of difficultyEasy
Reading time13 min
Views23K

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

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

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

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

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


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

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

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

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

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



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

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

Level of difficultyMedium
Reading time23 min
Views98K
image

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

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

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

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

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

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

Reading time4 min
Views128K

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

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

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

Теория типов

Level of difficultyMedium
Reading time43 min
Views29K

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

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

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

Level of difficultyEasy
Reading time6 min
Views43K

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

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

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

Читать далее
Total votes 92: ↑82 and ↓10+72
Comments83

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

Level of difficultyEasy
Reading time3 min
Views18K

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

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

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

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

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

Level of difficultyEasy
Reading time9 min
Views48K

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

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

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

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

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

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

Level of difficultyHard
Reading time13 min
Views38K

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

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

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

Reading time10 min
Views7.7K

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

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

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

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

Level of difficultyEasy
Reading time8 min
Views183K

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

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

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

Читать далее
Total votes 191: ↑184 and ↓7+177
Comments177

Мой «Евротур» по сектам: путешествие в один конец?

Level of difficultyEasy
Reading time28 min
Views100K

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

И течение трех лет я целенаправленно ходил во все места, где меня могли обмануть или сломать, ввести в заблуждение, разрушить мою личность и вовлечь в незаконную деятельность. Я внимательно слушал, записывал и даже иногда срывал занятия. Это мой «Евротур» и моя исповедь диверсанта. А в конце вас ждет бонусная история от февраля 2022 года, которая связана с манипуляцией и давлением, но уже не со стороны сект ;)

Очень долго читать
Total votes 394: ↑381 and ↓13+368
Comments324

5 шагов для устранения «рунглиша» из ИТ-переводов

Level of difficultyEasy
Reading time6 min
Views7.9K

К моим словам прошу относиться со здоровой долей скепсиса, ибо я не нейтив-спикер, а просто ИТшный переводчик-редактор (пусть даже и с 20-летним опытом).

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

Эту памятку или «дорожную карту» я опубликовал в своем телеграм-канале несколько месяцев назад, многократно её обкатал на проектах, и убедился в ее применимости — поэтому вешаю ниже.

Шагов в этой памятке 5:

Читать далее
Total votes 37: ↑36 and ↓1+35
Comments32

Чего ждать от NeoVim: особенности редактора

Reading time9 min
Views40K

Привет! Я Антон Губарев, инженер команды Platform as a Service (PaaS) в Авито. Долгое время я пользовался IDE от JetBrains, затем пересел на VS Code. Последние несколько лет работаю с кодом только в NeoVim — адаптировал его под себя и перестал использовать другие IDE.

Читать далее
Total votes 26: ↑23 and ↓3+20
Comments41
1

Information

Rating
Does not participate
Registered
Activity

Specialization

Backend Developer
Python