Search
Write a publication
Pull to refresh
2
0
Send message

Популяризация JSON-RPC (часть 2)

Reading time7 min
Views8.6K

Продолжим строить подобие JSON-RPC сервера, начатого в части 1 и анализировать его плюсы и минусы. В прошлой статье был описан механизм отделения бизнес логики бэкенда от транспортного протокола (HTTP) через шаблон проектирования "Front Controller", роль которого исполняет в нашем случае JsonRpcController.

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

Читать далее

Парагвай. Как живут в одной из беднейших стран Южной Америки?

Reading time20 min
Views93K

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

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

Читать далее

Исследование сна от MIT: как высыпаться и повысить свою продуктивность

Reading time6 min
Views24K

Субъективно кажется, что спать подольше — отличное решение. Чем дольше — тем лучше!

Но иногда ты спишь десять часов, просыпаешься — и сразу же чувствуешь себя разбитым.

В чём тут дело? Проснулся не в той фазе, в глубокой, а не быстрой? Перепил кофе на ночь? Нужно считать свои биоритмы сна по приложению? Или включать машину с белым шумом, чтобы через неё не пробились сторонние звуки? Сколько часов нужно вообще, и как чувствовать себя здоровее?

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

Статья «Экономические последствия увеличения сна среди городской бедноты» опубликована в журнале The Quarterly Journal of Economics. Также можно почитать вырезку на сайте самого MIT.

Читать далее

Эволюция HTTP. Часть 2. Краткая история развития самого популярного протокола Всемирной паутины

Reading time7 min
Views4.9K

Привет! Меня зовут Глеб Гончаров, я руководитель группы разработки клиентского продукта в СберМаркете. Это вторая часть в серии статей об истории развития самого популярного протокола Всемирной паутины — протокола HTTP.

В первой части я рассказал про старую группу протокола HTTP  (HTTP/0.9, HTTP/1.0, HTTP-NG, HTTP/1.1): причины их появления, видах запросов и недостатках. Сегодня же поговорим о новой группе, которая включает в себя протоколы SPDY, HTTP/2, gQUIC и HTTP/3.

Читать далее

Величайшие программисты 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
Views344K

Этот текст открывает цикл статей по рассмотрению проблемы управления знаниями в 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.

Читать далее

Information

Rating
6,399-th
Registered
Activity