Pull to refresh
6
0
Константин @syeysk

Программист Python

Send message

Правильный выбор: практическое исследование когнитивных способностей человекообразных обезьян

Reading time10 min
Views3.6K


Что общего между шваброй, письменным столом, автомобилем и телескопом Хаббл? Все это разные и по сложности реализации, и по цели применения, и по важности вещи. Однако их можно объединить в одну общую категорию — инструменты. Все эти предметы мы, люди, используем как помощь в достижении той или иной цели: чистоты в квартире, удобного написания статьи, сокращения времени на путь от точки А в точку В, удовлетворение безграничного любопытства и жажды знания в виде исследования Космоса.Именно использование инструментов и является одним из характерных признаков развитого интеллекта. Но еще более важным показателем наличия извилин в голове является умение выбирать, в частности выбирать подходящий инструмент, если он нужен. Вы же не будете мыть полы лопатой. И не потому, что это будет выглядеть странно, а потому, что это неудобно. Другими словами, достижение цели в виде чистого пола будет сопряжено с лишними сложностями ввиду выбора неверного инструмента.

Человек способен делать выгодный для себя выбор, а как обстоят дела с этим умением у человекообразных обезьян? Ответ на этот вопрос решили найти ученые, которые провели ряд тестов с участием «лесных людей», то есть орангутанов. Способны ли они выбирать более выгодные условия и более удобные инструменты или нет, мы узнаем из доклада исследовательской группы. Поехали.
Total votes 14: ↑12 and ↓2+10
Comments5

Вырождение человечества: 0 «Вселенная 25» — идеальное общество или смерть?

Level of difficultyEasy
Reading time10 min
Views13K

Дорогой друг. Недавно в этой статье был поднят весьма важный вопрос. У меня были уже идеи и материалы на этот счет. Так как вопрос крайне обширный и затрагивает множество сфер: биология, философия, теория игр, история, экономика, то мой мозг просто закипает и систематизировать все в один цельный, единый материал без противоречий, и с удобным повествованием мне крайне сложно. К этой статье ровно как и к возможным последующим в данном цикле следует относиться как к сборнику материалов и идей. Сложные, комплексные, многосоставные темы похожи на полифоническую музыку, в которой несколько мелодий звучат параллельно. Так и здесь будет «звучать» параллельно линия биологии, этологии, одновременно теории игр, они могут в какой-то переплестись. Потом снова история, биология, философия. Снова переплетение и т. д. Может быть просто интересная ветка, отдельно стоящая и заслуживающая упоминания. К чему это вступление: материал будет сложный, витиеватый. Задача около челленджовая. Но вопрос стоит того. Некий PeterFukuyama натолкнул меня на мысль начать с "Вселенной 25"

Читать далее
Total votes 21: ↑13 and ↓8+9
Comments35

Для размышлений и решения задач мозг не нужен – с этим справляются и простые клетки

Reading time17 min
Views33K

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

Но червь овладел одной задачей, которая до сих пор не удавалась величайшим умам человечества: идеальной регенерацией. Если разорвать его пополам, из головы вырастет новый хвост, а из хвоста — новая голова. Через неделю два здоровых червяка уплывут.

Выращивание новой головы — хитрый трюк. Но биолога Майкла Левина из Университета Тафтса интригует именно хвостовая часть червя. Он изучает, в частности, как организм развивается из отдельных клеток, и его исследования заставляют его подозревать, что разум живых существ, как ни странно, находится за пределами их мозга. Например, в клетках задней части тела червя может находиться довольно развитый «интеллект». «Любой интеллект — это коллективный интеллект, потому что любая когнитивная система состоит из каких-то частей», — говорит Левин. Животное, способное пережить полную потерю головы, стало для Левина идеальным подопытным.

Читать далее
Total votes 70: ↑65 and ↓5+81
Comments46

Протокол ухода из жизни

Reading time8 min
Views153K
image

Об авторе. Питер Хинченс — бельгийский разработчик, писатель и бывший президент Фонда свободной информационной инфраструктуры, ассоциации, которая борется с софтверными патентами в Европе. Автор более 30 протоколов и распределённых систем, основатель свободного проекта ZeroMQ и проекта Edgenet по созданию полностью безопасной, анонимной глобальной P2P-сети, исполнительный директор и ведущий программист компании iMatrix. Автор книг «Культура и империя: цифровая революция», «Код психопата», «Масштабируемый Си» и др.

Пришло время для моей последней статьи. Я мог бы написать ещё, есть время, но потом буду думать о других вещах: как удобнее устроиться в постели, когда принимать болеутоляющие и о людях рядом со мной.

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

Я был изолированным и одиноким юношей. Немного аутистичным, наверное. Я думал только о работе, плавании, своих домашних животных, снова о работе. Мысль о том, что людям может нравиться моё общество, была странной. По крайней мере моя работа, казалось, имеет значение. Мы писали генераторы кода на Cobol. Я написал редактор кода, который нравился сотрудникам, потому что элегантно работал на всём. Я самостоятельно выучил Си, ассемблер 8086 и писал программы shareware. Так медленно прошли 90-е.
Читать дальше →
Total votes 59: ↑52 and ↓7+45
Comments147

gRPC в качестве протокола межсервисного взаимодействия. Доклад Яндекса

Reading time16 min
Views219K
gRPC — опенсорсный фреймворк для удаленного вызова процедур. В Яндекс.Маркете gRPC используется как более удобная альтернатива REST. Сергей Федосеенков, который руководит службой разработки инструментов для партнеров Маркета, поделился опытом использования gRPC в качестве протокола для построения интеграций между сервисами на Java и C++. Из доклада вы узнаете, как избежать частых проблем, если вы начинаете использовать gRPC после REST, как возвращать ошибки, реализовать трассировку, отлаживать запросы и тестировать вызовы клиентов. В конце есть неофициальная запись доклада.

— Сначала хотелось бы познакомить вас с некоторыми фактами про Яндекс.Маркет, они будут полезны в рамках доклада. Первый факт: мы пишем сервисы на разных языках. Это накладывает требования по наличию клиентов для сервисов.
Читать дальше →
Total votes 28: ↑24 and ↓4+30
Comments12

Компактная реализация RSA для встраиваемых применений

Reading time15 min
Views60K
RSA является широкоизвестным алгоритмом шифрования с открытым ключом. На его основе, кроме асимметричного шифрования, можно также реализовать электронную подпись (ЭЦП). Эти возможности привлекательны для встраиваемых систем, микроконтроллеров. Сам метод шифрования с виду чрезвычайно прост:
C = (Me) mod n (1)
где C,M,e,n — целые числа, M — открытый текст, числа e и n представляют собой открытый ключ, C — шифротекст. mod — остаток от деления.

Расширование выглядит столь же просто:
M = (Cd) mod n (2)
где C,M,n играют ту же роль, что и при шифровании, d — закрытый ключ.

При этом n=p*q, где p и q — простые числа (секретные), e обычно равно 65537, d вычисляется на основе e, p и q. Криптостойкость основана на том, что для достаточно больших p и q задача разложения n на множители или обращения формулы шифрования без знания p и q не решается за приемлемое время.

Но эта кажущаяся простота обманчива. За ней скрывается огромное количество деталей и сложностей реализации. Особенно если стоит цель получить эффективную по быстродействию и памяти реализацию, пригодную для применения в микроконтроллерах. Я не нашел в интернете подходящих библиотек, а попытки изучения исходников libgcrypt заводят в такие дебри, из которых не выберешься. Поэтому я написал свою компактную библиотеку, которой и делюсь с уважаемыми читателями.
Читать дальше →
Total votes 33: ↑31 and ↓2+29
Comments29

RSA простыми словами и в картинках

Level of difficultyEasy
Reading time5 min
Views98K

Ассиметричный алгоритм криптографии RSA, что же это за алгоритм такой и как он работает? В этой статье мы разложим по полочкам, что такое RSA и ассиметричная криптография в целом, простыми словами и с картинками.

На обложке то как DALL-E представляет себе ассиметричную криптографию.

Читать далее
Total votes 11: ↑9 and ↓2+11
Comments17

Вечный покой .env: как эффективнее удалять закомиченный файл .env из Git-репозитория

Level of difficultyEasy
Reading time3 min
Views23K

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

Я работаю на VS Code, и я, to be honest, так и не понял, с какой стати .gitignore "не игнорирует" .env. Причем спокойно "игнорирует" другие файлы, директории.

Всё же, нужно действовать, исходя из конкретного кейса, но если вы не хотите, чтобы какой-нибудь John Doe воспользовался данными из вашего .env, то вы перешли по верной ссылке. Вы же не отдаете ключи грабителю с фразой "Грабьте мой дом", верно?

Читать далее
Total votes 56: ↑38 and ↓18+26
Comments64

Почему вы не тренируетесь?

Level of difficultyMedium
Reading time29 min
Views70K
Читать далее
Total votes 57: ↑36 and ↓21+25
Comments228

Аэропоника — это сложно

Level of difficultyEasy
Reading time19 min
Views29K

Аэропоника — перспективный и эффективный способ выращивания растений. Такие выводы я сделал, начитавшись статей. Я только что успешно вырастил на балконе клубнику и полон энтузиазма двигаться дальше. Я берусь за аэропонику. Кажется, что это не сложно, надо, всего лишь, вместо размещения растений в земле, разместить их в каких-нибудь ёмкостях и распылять раствор на корни. Это привело меня к эпопее с клубникой в контейнере (1, 2, 3) и ряду экспериментов с аэропоникой, о которых я ещё не писал. За это время у меня накопился некоторый багаж знаний относительно аэропоники, им я и буду делиться в этом посте.

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

Читать далее
Total votes 105: ↑104 and ↓1+128
Comments59

Cron — лучшие практики

Reading time9 min
Views70K

Планировщик задач cron(8) существует с 7 версии Unix, а его синтаксис crontab(5) знаком даже тем, кто нечасто сталкивается с системным администрированием Unix. Это стандартизированный, довольно гибкий, простой в настройке и надёжно работающий планировщик, которому пользователи и системные пакеты доверяют управление важными задачами. Материалом о лучших практиках работы с cron делимся к старту курса по Fullstack-разработке на Python.

Читать далее
Total votes 38: ↑35 and ↓3+35
Comments45

Следующий этап развития Веба

Reading time17 min
Views14K


Привет, друзья!


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


Веб состоит из технологий, появившихся более 25 лет назад. HTTP, HTML, CSS и JS были стандартизированы в середине 90-х (когда мне было 8 лет). С тех пор веб эволюционировал в вездесущую платформу приложений. Одновременно с эволюцией веба развивалась и архитектура разработки соответствующих приложений. Сегодня существует большое количество архитектур, которые можно использовать для разработки веб-приложений. В настоящее время самой популярной из них является "Одностраничное приложение" (Single Page App, SPA), но сейчас наблюдается переход к новой улучшенной архитектуре.

Читать дальше →
Total votes 15: ↑14 and ↓1+15
Comments3

JavaScript: замена фона видео и реализация интересных эффектов на основе координат лица в реальном времени

Reading time11 min
Views4.8K


Привет, друзья!


Я продолжаю изучать MediaPipe — библиотеку с открытым исходным кодом от Google, предоставляющую "кроссплатформенные и кастомизируемые решения на основе машинного обучения для работы с медиа", и в этой статье хочу рассказать вам о 2 инструментах:


  • Selfie Segmentation, выделяющий людей на сцене, что позволяет осуществлять замену фона на кадрах видео в процессе потоковой передачи соответствующих данных;
  • Face Mesh, предоставляющий сетку лица человека, состоящую из 468 контрольных точек с координатами в трехмерном пространстве, что позволяет реализовать некоторые интересные визуальные эффекты.

Репозиторий с кодом проекта.


Если вам это интересно, прошу под кат.

Читать дальше →
Total votes 21: ↑21 and ↓0+21
Comments4

Хранение токена доступа в сервис-воркере

Level of difficultyMedium
Reading time14 min
Views6.7K


Привет, друзья!


На днях прочитал эту интересную статью, посвященную различным вариантам хранения токена доступа (access token) на клиенте. Мое внимание привлек вариант с использованием сервис-воркера (service worker) (см. "Подход 4. Использование service worker"), поскольку я даже не задумывался о таком способе применения этого интерфейса.


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


В этой статье я покажу, как реализовать простой сервис аутентификации на основе JSONWebToken и HTTP Cookie с хранением токена доступа в сервис-воркере.


Для тех, кого интересует только код, вот ссылка на соответствующий репозиторий.


Интересно? Тогда прошу под кат.

Читать дальше →
Total votes 13: ↑12 and ↓1+14
Comments2

О JavaScript и WebAssembly

Level of difficultyMedium
Reading time5 min
Views7.9K


Hello world!


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


Хорошо, если вы знаете JS/Node.js и хотя бы слышали о WASM и Rust.

Читать дальше →
Total votes 17: ↑13 and ↓4+12
Comments4

Знакомство с WebTransport API

Level of difficultyMedium
Reading time20 min
Views12K


Hello world!


На днях я прочитал статью о WebTransport API как будущей альтернативе или даже замене WebSockets. Мне стало интересно, что это такое и с чем его едят. Давайте разбираться вместе.

Читать дальше →
Total votes 40: ↑40 and ↓0+40
Comments5

Webpack: руководство для начинающих

Reading time9 min
Views287K


Доброго времени суток, друзья!

Представляю вашему вниманию перевод статьи «Webpack: A gentle introduction» автора Tyler McGinnis.

Перед изучением новой технологии задайте себе два вопроса:

  1. Зачем нужен этот инструмент?
  2. Какие задачи он выполняет?

Если вы не можете ответить на эти вопросы, возможно, вам не нужна изучаемая технология. Давайте попробуем ответить на эти вопросы применительно к Webpack.
Читать дальше →
Total votes 8: ↑8 and ↓0+8
Comments4

Information

Rating
Does not participate
Location
Краснодарский край, Россия
Registered
Activity

Specialization

Backend Developer
Middle
From 120,000 ₽
Python
Django
Linux
Nginx
REST