Search
Write a publication
Pull to refresh
2
0
Send message

Величайшие программисты XXI века. Марк Руссинович и его 65 системных утилит

Reading time9 min
Views50K
Кто из админов не знает утилиты SysInternals (Winternals) для администрирования и диагностики Windows? Кажется, они известны с незапамятных времён. Но не каждый в курсе, что эти незаменимые инструменты написаны вовсе не компанией Microsoft. Скорее наоборот, они написаны вопреки её желанию.

И здесь мы подходим к личности автора, талантливого и суперпродуктивного программиста Марка Руссиновича. Он показал, что один умный парень способен интеллектуально продавить мегакорпорацию. И той придётся заплатить ему огромные деньги, и даже взять на работу. Потому что повторить его программы она не сумела…
Читать дальше →

Лучший формат данных для хранения pandas.DataFrame

Reading time4 min
Views9.3K

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

Меня зовут Вадим Москаленко и я разработчик инновационных технологий Страхового Дома ВСК. В этой статье, хочу поделится с вами, информацией в области хранения данных.

На сегодняшний день существует огромное количество форматов для хранения данных, и, используя библиотеку Pandas при обработке большого объёма данных, возникает вопрос – а какой формат, с которыми Pandas работает «из коробки», даст наибольшую производительность, при дальнейшем использовании, обработанного DataFrame?

Ремарка: поиск информации по этой теме, привёл меня к репозиторию, за авторством Devforfu (ссылка), но так как информация в нём датируется 2019 годом, а за этот период вышло множество обновлений, я решил написать «свежий» бенчмарк, основываясь на принципах автора – ссылка на обновленный бенчмарк. Отмечу, что из-за слишком большой разницы в полученных результатах, я склоняюсь к тому, что мог совершить ошибку, поэтому далее в статье будет указана информация по оригиналу.

В качестве тестируемых форматов использовались следующие варианты: CSV (как самый популярный текстовый формат), Pickle, Feather, Parquet, Msgpack, HDF. Для сравнения будем использовать следующие метрики: размер сериализованного файла, время загрузки DataFrame из файла, время сохранения DataFrame в файл, потребление оперативной памяти при сохранении и загрузке DataFrame.

Тестовые данные – сгенерированный DataFrame с 1 миллионом строк, 15 столбцами цифр и 15 столбцами строковых значений. Генерация численных данных проводилась с помощью numpy. random.normal, в качестве строчных данных использовались UUID. С появлением в Pandas, категориального типа данных (Categorical data), который использует гораздо меньше памяти и более производительней в обработке (обширный материал для другой статьи), интересно также сравнить насколько изменится производительность форматов, поэтому ещё одним этапом сравнения в тестовых данных стал перевод формата «object» к формату «category».

Читать далее

Если хоть раз мечтал написать crack или keygen

Reading time6 min
Views21K

Дня 3 назад заглянул на сайт crackmes.one попробовать силы во взломе защит. Просто наугад взялся за "hitTman's Kolay One!": просто по оценке Difficulty: 2.0 и Quality: 4.0. Не примитивно, но и не слишком сложно.

Оказалось, форма ввода пароля с подсказкой: текст кнопки "submit password" после нажатия меняется на число. Если попробовать разные символы пароля, заметно, что для одних и тех же символов число не меняется. Очевидно, пароль подается в хеш-функцию, а ее результат попадает на кнопку. Пробуя пары символов, легко узнать что число на кнопке - сумма чисел для символов пароля.

Читать далее

Сортировка слиянием через рекурсию

Level of difficultyEasy
Reading time4 min
Views16K

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

Читать далее

Про нейросети

Reading time3 min
Views14K

Каждый раз читая очередную статью вида "Почему нейросети это тупик" (раз, два, три), испытываю странное чувство... несоответствия что ли. Как будто автор декларирует одно, а доказывает и аргментирует нечто совсем иное. Для мея сам тезис буквально звучит как оксюморон (не путать с рэпером ?), но почему именно - не так очевидно. Для этого надо разобраться, чем же на самом деле являются нейросети... Погнали!

Первое, чем современные нейросети (ИНС в общепринятом понимании, не путать с ИмНС aka SNN) не являются, это, собственно, нейросетями! ? Да, первый фрмальный нейрон, а за ним и перцептрон Розенблата были вдохновлены биологическими нейронами да и сверточные сети в некоторых аспектах демонстрируют некоторое сходство с обработкой визуального сигнала зрительной корой, но не более. Современный Data Since имеет общего с учением о нейронах примерно столько же, сколько современная аэродинамика с орнитологией: самолеты летают, но крыльями не машут!

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

Так что же такое все-таки ИНС? Жми далее...

Читать далее

Английский, которому меня не учили

Reading time14 min
Views80K

Или максимы Английского языка, которые бы я хотел знать 20 лет назад.

Чем отличается хороший геймер от плохого? Хороший геймер сидит и изучает игру. Он знает каждый закуток. Он может без запинки назвать все характеристики всех юнитов в Star Craft. А самый крутой игрок знает все пропускные способности желтых, красных и синих конвейеров. А плохой игрок использует чит-коды или assistant apps. 

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

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

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

Okay, let's go...

«Почему мне так плохо?» Частая причина депрессии, о которой мало кто подозревает

Reading time5 min
Views90K

Иногда причины депрессии очевидны, а иногда неуловимы. Особенно если все хорошо — работа нравится, личная жизнь тоже, СВО еще не началась, солнышко светит, а на душе тошно. В чем может быть причина? А вот в чем.

Читать далее

Сетевая безопасность Linux: Best practices и баш скрипты

Reading time7 min
Views11K

Linux — это операционная система с открытым исходным кодом, которая широко используется на различных устройствах, включая серверы, ПК  и встроенные системы. Важно обеспечить безопасность систем Linux при подключении к сети для защиты от потенциальных угроз и уязвимостей. Существуют различные best practices, которым можно следовать для повышения безопасности систем Linux при подключении к сети, в том числе использование надежных паролей, включение двухфакторной аутентификации, поддержание систем в актуальном состоянии, настройка и включение брандмауэра, а также регулярный мониторинг. журналы и активность системы.

Читать далее

Часть 1. Управление знаниями в Obsidian. Обработка информации. Рабочий процесс. Источники информации. Работа с заметками

Level of difficultyHard
Reading time40 min
Views343K

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

Начнём долгий путь

Как подсветить временные отрезки на графиках

Reading time5 min
Views5.1K

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

Читать далее

Как написать расширение браузера для замены шрифтов на Quasar и Vue 3

Reading time4 min
Views2.9K

Одни расширения добавляют в браузер новые функции, а другие предоставляют данные о посещаемых веб-страницах:


  • Wappalyzer расскажет о технологиях, которые применялись в разработке сайта.
  • Similar web показывает трафик и ранжировании сайта.
  • Momentum изменяет содержание страниц или заменяет домашнюю страницу.

Я расскажу о разработке расширения для Chrome на Vue 3 и Quasar. Это расширение которое будет изменять размер шрифта на посещаемых веб-страницах. Подробности — к старту нашего курса по Fullstack-разработке на Python.

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

YAML из Ада

Reading time9 min
Views81K

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

Данный пост является нытьём и он более субъективен, чем мои обычные статьи.
Читать дальше →

[Перевод] Всё о файлах cookie и их безопасности

Reading time5 min
Views46K

HTTP является протоколом без статических данных, что означает, что он не может различать два последовательных запроса, исходящих от одного и того же компьютера, сети или пользователя. Это было основной проблемой. Из-за этого пользователь не мог поддерживать свою сессию, и если бы мы продолжили в том же духе, интернет стал бы таким же, каким он был десять лет назад, состоящим только из кучи статичных html-страниц. Никаких учетных записей пользователей, никакой настройки и т.д., а если и есть какие-то учетные записи, то для доступа к каждой странице нужно снова и снова входить в систему.

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

Примером может служить PHPSESSID: xyjaez1081lze23, lang: en.

Давайте разберемся в этом на примере. Предположим, вы пошли в магазин и принесли оттуда посуду. Придя домой, вы обнаруживаете, что один из них сломан. Тогда вы идете к владельцу магазина и рассказываете ему о своей проблеме. Но, к вашему ужасу, он отвечает, что не знает вас. Таково было исходное состояние HTTP без файлов cookie. Веб-сервер не узнает вас при любом раскладе.

Читать далее

Поэтический редактор: Rust + Tauri

Reading time16 min
Views10K

В чём-то сочинение стихов похоже на написание кода — имеет значение только "чистый" текст — и этот текст, как и код, подчиняется определенным правилам. Поэту могли бы пригодиться те самые "автоподсказки" и подсветка кода стихов. Может, даже с какой-то поддержкой рефакторинга, помочь поэту найти слабое место. Но найти что-то подобное (особенно на русском языке) у меня не вышло. Например, на запрос poetry editor в основном выпадают сервисы по найму редакторов-людей. Проекты, конечно, есть, но они либо слабые, либо мёртвые (поправьте меня, если я неправ).

Значит, задумал я на коленках склепать IDE для поэтов…

Читать далее

Бритва Оккама и другие острые бритвы познания — как использовать в IT и в жизни

Reading time5 min
Views29K

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

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

Читать далее

SSU2 — транспортный протокол I2P нового поколения на базе UDP

Reading time8 min
Views8.7K

SSU является первым транспортным протоколом I2P в буквальном смысле, он был создан до NTCP и тем более до NTCP2. С бородатого 2003 года анонимусы гоняют по сети пакеты SSU! С тех пор появился транспорт NTCP и даже его вторая версия, а SSU в течение без малого двадцати лет не получал каких-либо обновлений кроме незначительных исправлений реализации и, как говорят разработчики, костылей вроде поддержки IPv6.

Без этого протокола невозможно полноценное функционирование сети, в особенности на устройствах без выделенного IP-адреса, поэтому, несмотря на оптимизированную работу по TCP (NTCP2), сети I2P был необходим SSU2 — новое поколение транспорта на базе UDP.

Читать далее

Единственный способ полноценного контроля скорости на горных лыжах и сноуборде. Физика

Reading time5 min
Views40K

В арсенале горнолыжника и сноубордиста есть всего два способа контроля скорости - удлинение траектории и проскальзывание.

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

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

Единственный способ полноценного контроля

Человек — биоробот: основы программирования

Reading time6 min
Views5.7K

Человек хорошо сделан. У него есть органы чувств, которые поставляют информацию в мозг. Мозг эту информацию обрабатывает, добавляет что-то свое и подает сигналы на органы движения - мышцы. Проблема в том, что мы не знаем как человек работает. Это черный ящик в который можно передавать информацию и следить за его реакцией. Но в процессе усвоения информации человек обучается, что можно сравнить с программированием. Главное понять то, как можно обучить человека чтобы он выполнял вашу волю. Ведь таким образом проявляется власть. Кто не мечтает о власти?

К сожалению, автор статьи не умеет учить людей, но есть желание обсудить этот вопрос. Хочется привлечь внимание тех, кто набрался опыта и желает поделиться своими знаниями. Поэтому в комментариях скорее всего будет более полезная информация. Здесь же в статье автор попытается описать лишь самые очевидные методы воздействия на человека. Наверняка вы о них знаете и можете рассказать что-то поинтереснее. Добро пожаловать в комментарии. Там можно организовать обсуждение. А чтобы вам проще было сформулировать свою мысль, в этой статье будут лишь намечены направления дискуссии.

Читать далее

Как отправить и скачать файл в FastAPI

Reading time2 min
Views41K

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

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

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

Читать далее

Как стать участником Open Source и зачем

Reading time10 min
Views15K

Если ты хоть раз задавал себе этот вопрос, то ты на верном пути.

Многие приложения, которыми вы пользуетесь сегодня, содержат значительное количество программного обеспечения с открытым исходным кодом (OSS - Open Source Software), и число компаний, использующих открытый исходный код, постоянно растет. Несмотря на это, лишь ограниченное число людей вносят свой вклад в это и поддерживают его.

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

Читать далее

Information

Rating
6,234-th
Registered
Activity