Pull to refresh
0
Karma
0
Rating
  • Posts
  • Comments

Каково разрешение человеческого глаза (или сколько мегапикселей мы видим в каждый отдельный момент времени)

Popular scienceBrain
Sandbox
Очень часто фотографы, а иногда и люди из других специальностей, проявляют интерес к собственному зрению.

Вопрос, казалось бы, простой на первый взгляд… можно погуглить, и всё станет ясно. Но практически все статейки в сети дают либо «космические» числа — вроде 400-600 мегапикселей (Мп), либо это и вовсе какие-то убогие рассуждения.

Поэтому постараюсь кратко, но последовательно, чтобы никто ничего не упустил, раскрыть эту тему.

Начнём с общей структуры зрительной системы


  1. Сетчатка
  2. Зрительный нерв.
  3. Таламус(ЛКТ).
  4. Зрительная кора.



Сетчатка состоит из трёх типов рецепторов: палочки, колбочки, фоторецепторы(ipRGC).
Читать дальше →
Total votes 249: ↑244 and ↓5 +239
Views145.6K
Comments 404

News

Show more

Оптимизация работы с PostgreSQL в Go: от 50 до 5000 RPS

Авито corporate blogHigh performancePostgreSQLProgrammingGo

Привет, меня зовут Иван, и я делаю Авито Доставку. Когда пользователь покупает товар с доставкой, мы показываем ему список отделений служб доставки с ценами. Цена доставки может меняться от отделения к отделению. Мы смотрим на область карты, где покупатель ищет товар и информацию по объявлению, например, координаты продавца, вес и размеры товара. И на выходе показываем человеку список отделений с адресами и ценой доставки в каждое из них.


В ходе разработки калькулятора цены доставки возникла такая задача: есть структура базы данных PostgreSQL и запрос к ней от сервиса на Go. Нужно заставить всё это работать достаточно быстро. В итоге нам удалось поднять пропускную способность сервиса с 50 до 5000 RPS и выявить пару нюансов при общении сервиса с базой. Об этом и пойдёт рассказ.


Читать дальше →
Total votes 52: ↑47 and ↓5 +42
Views15.6K
Comments 44

«Клинит» кисть и стреляет в руку у программистов — почему? Что с этим делать?

ITSOFT corporate blogHealth

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

Как мы изучали вопрос и что делали?
Total votes 36: ↑32 and ↓4 +28
Views11.2K
Comments 23

Декодируем JPEG-изображение с помощью Python

Mail.ru Group corporate blogPythonAlgorithmsImage processingMathematics
Translation

Всем привет, сегодня мы будем разбираться с алгоритмом сжатия JPEG. Многие не знают, что JPEG — это не столько формат, сколько алгоритм. Большинство JPEG-изображений, которые вы видите, представлены в формате JFIF (JPEG File Interchange Format), внутри которого применяется алгоритм сжатия JPEG. К концу статьи вы будете гораздо лучше понимать, как этот алгоритм сжимает данные и как написать код распаковки на Python. Мы не будем рассматривать все нюансы формата JPEG (например, прогрессивное сканирование), а поговорим только о базовых возможностях формата, пока будем писать свой декодер.
Читать дальше →
Total votes 52: ↑52 and ↓0 +52
Views13.6K
Comments 11

Зоопарк нашей кожи: что делать с акне (прыщами)

Гельтек-Медика corporate blogBiotechnologiesHealth
image
Staphylococcus epidermidis. Обычно ведёт себя мирно, но может провоцировать акне, если слишком проголодается

Наша кожа — это зоопарк. Причём открытого типа, с разными «климатическими» зонами и биомами. В программе сафари около 1000 видов различных бактерий и грибов. У здоровых людей вся эта микробиосистема живёт в гармонии и согласии, ест друг друга, остатки того что насекретировала наша кожа, и не пускает особенно злые виды, которые были бы не против съесть нашу кожу. Если экологическое равновесие нарушается, то в первую очередь возникают воспалительные очаги, которые обычно называют прыщами.

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

Обычно на коже выделяют три основных биома: жирный, сухой и влажный. В каждом из них живёт свой набор организмов, который оптимально адаптирован к жизни в этой зоне. Например, пупок — типичная влажная зона. Нет воздействия губительного ультрафиолета, сальные железы отсутствуют, тепло и влажно. Поэтому он часто считается эталонным участком для исследований пупкового пуха микробиома человеческой кожи.
Читать дальше →
Total votes 80: ↑74 and ↓6 +68
Views42.7K
Comments 36

Google делает гостевую сеть IPv6-only

Network technologiesIPv6
На недавно прошедшей онлайн встрече IETF группы IPv6 Ops сетевой инженер Google Женя Линькова рассказала о проекте перевода корпоративной сети Google на IPv6-only.

Одним из этапов стал перевод гостевой сети на IPv6 only. Для доступа к legacy Internet использовался NAT64, а в качестве DNS — DNS64 на публичном Google DNS. Разумеется, DHCP6 не использовался, только SLAAC.

По итогам тестирования, меньше 5% пользователей переходили на fall-back dual stack WiFi. По состоянию на июль 2020, большинство офисов Google имеют IPv6-only гостевую сеть.

Доступны слайды доклада.
Total votes 16: ↑16 and ↓0 +16
Views5.5K
Comments 41

Проект «Горижопа» — разработка изделия «гель Thermo-Intensive»

Гельтек-Медика corporate blogBiotechnologiesHealth
image
Поговорим о стоящей за этим науке

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

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

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

На деле решение очень простое и элегантное с точки зрения биохимии, но довольно сложное в тестировании.
Читать дальше →
Total votes 163: ↑115 and ↓48 +67
Views82.3K
Comments 205

Работаем в IntelliJ IDEA на слабом железе

JavaScriptProgrammingJavaC++Usability

Обнаружил секретный репозиторий на гитхабе JetBrains под названием Projector. Благодаря нему написал кусок кода в IntelliJ IDEA, запущенной на Android-планшете. Рассказываю, как это повторить.


Читать дальше →
Total votes 94: ↑93 and ↓1 +92
Views37.2K
Comments 147

Двоичное‌ ‌кодирование‌ ‌вместо‌ ‌JSON

SkillFactory corporate blogJavaScriptProgrammingStudying in IT
Translation
Кодируйте‌ ‌одни‌ ‌и‌ ‌те‌ ‌же‌ ‌данные‌ ‌гораздо‌ ‌меньшим‌ ‌количеством‌ ‌байт.‌ ‌

image

Почему‌ ‌меня‌ ‌это‌ ‌должно‌ ‌волновать ‌


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

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

Типы‌ ‌форматов‌ ‌кодирования‌


Существует‌ ‌два‌ ‌типа‌ ‌форматов‌ ‌кодирования:‌ ‌

  • Текстовые‌ ‌форматы‌ ‌
  • Двоичные‌ ‌форматы‌
‌ ‌
Читать дальше →
Total votes 27: ↑19 and ↓8 +11
Views11.1K
Comments 41

Опыт применения технологии Рутокен для регистрации и авторизации пользователей в системе (часть 1)

JavaIT Infrastructure
Sandbox
Добрый день! Хочу поделиться своим опытом по данной теме.

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

В данном примере используется Рутокен ЭЦП 2.0.

Для работы с этим Рутокеном необходимо установить драйвер на windows.

Для windows, установка одного лишь драйвера, обеспечивает установку всего, что нужно, чтобы ОС увидела ваш Рутокен и с ним можно было работать.

Читать дальше →
Total votes 5: ↑4 and ↓1 +3
Views2.4K
Comments 8

Приточная вентиляция совмещенная с канальным кондиционером (часть 1 — электрическая)

Smart HouseDIYHealth

схема_малая


Хочу поделиться опытом проектирования, монтажа и эксплуатации своей системы приточной вентиляции совмещенной с канальным кондиционером. Система
собиралась в 2012-2013 годах и с тех пор находится в постоянной эксплуатации.


Статью разделил на две части:


  • в первой части описана классическая схема приточная вентиляции с использованием электрического канального подогревателя
  • во второй части рассказано про неоднозначный опыт переработки системы под водяной калорифер с питанием от общедомовой системы отопления
Читать дальше →
Total votes 60: ↑59 and ↓1 +58
Views35.4K
Comments 229

Ошибки, которые погубят проект любой сложности. Опыт менеджеров Redmadrobot

red_mad_robot corporate blogDevelopment of mobile applicationsMobile applications designProject managementPersonnel Management


Мы, электрические, запускаем проекты с 2008 года, и за 11 лет сформировали сильную команду робоменеджеров. Прокачивать железных помогают боевые задачи и одна из самых сложных — управлять проектом. Ситуации, при которых появляется необходимость взять на себя обязанности PM (project manager), бывают разные: в маркетинге — при создании сайта, в HR — при организации мероприятий. Мы вспомним десятки подобных случаев.

Мы подготовили список ошибок, которые допускают новоиспеченные руководители проектов и дополнили их своими рекомендациями. В статье два варианта рекомендаций: простые и для тех, кто хочет заморочиться — с референсами и ссылками на полезные ресурсы. Так что у вас не останется и шанса их повторить при надлежащем внимании. Надеемся, что это позволит сделать ваш проект проще, качественнее и внесет предсказуемость в процесс его создания.
Читать дальше →
Total votes 18: ↑16 and ↓2 +14
Views8.1K
Comments 7

Изучаем VoIP-движок Mediastreamer2. Часть 10

Open source*nixC
Tutorial

Материал статьи взят с моего дзен-канала.



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


Разрабатываем плагин



Плагины в медиастримере, как и во многих других программах, используются для расширения функционала без необходимости перекомпиляции самого медиастримера.


Чтобы использовать плагин в своей программе, вы с помощью include должны подключить заголовочный файл плагина. В теле программы, с помощью функции у ms_filter_register() выполнить регистрацию нового фильтра. Естественно, ваша программа и и исходник плагина должны быть скомпилированы и собраны в одно приложение.


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

Читать дальше →
Total votes 10: ↑9 and ↓1 +8
Views1K
Comments 0

Руководство по FFmpeg libav

Edison corporate blogWorking with videoProgrammingData visualizationStudying in IT
Translation

Долго искал книгу, в которой было бы разжёвано, как использовать FFmpeg-подобную библиотеку, известную как libav (название расшифровывается как library audio video). Обнаружил учебник «Как написать видеоплеер и уложиться в менее чем тысячу строк». К сожалению, информация там устаревшая, так что пришлось создавать мануал своими силами.

Большая часть кода будет на C, однако не волнуйтесь: Вы легко всё поймёте и сможете применить на любимом языке. У FFmpeg libav уйма привязок ко многим языкам (в том числе и к Python и к Go). Но даже если Ваш язык прямой совместимости не имеет, всё равно можно привязаться через ffi (вот пример с Lua).

Начнём с краткого экскурса о том, что такое видео, аудио, кодеки и контейнеры. Затем перейдем к ускоренному курсу, посвященному использованию командной строки FFmpeg, и, наконец, напишем код. Не стесняйтесь переходить сразу в раздел «Тернистый путь изучения FFmpeg libav».

Есть мнение (и не только моё), что потоковое интернет-видео уже приняло эстафету от традиционного телевидения. Как бы то ни было, FFmpeg libav точно достоин изучения.

Оглавление


Читать дальше →
Total votes 65: ↑65 and ↓0 +65
Views27.5K
Comments 9

Как использовать MySQL без пароля (и рисков для безопасности)

Southbridge corporate blogSystem administrationServer AdministrationSoftware
Translation


Говорят, что лучший пароль — тот, который не надо запоминать. В случае с MySQL это реально благодаря плагину auth_socket и его версии для MariaDB — unix_socket.


Оба эти плагина — вовсе не новы, о них много говорилось в этом же блоге, например в статье о том, как изменять пароли в MySQL 5.7, используя плагин auth_socket. Однако, разбирая, что новенького в MariaDB 10.4, я обнаружил, что unix_socket теперь устанавливается по умолчанию и является одним из методов аутентификации ("одним из", потому как в MariaDB 10.4 одному пользователю для аутентификации доступно больше одного плагина, что и объяснятется в документе "Аутентификация" от MariaDB 10.04).

Читать дальше →
Total votes 21: ↑20 and ↓1 +19
Views10.6K
Comments 4

Процесс компиляции программ на C++

ProgrammingC++Compilers
Sandbox

Цель данной статьи:


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

Читать дальше →
Total votes 44: ↑35 and ↓9 +26
Views90.4K
Comments 28

Планирование в Go: Часть I — Планировщик ОС

Go
Sandbox
Привет, Хабр! Представляю вашему вниманию перевод статьи «Scheduling In Go: Part I — OS Scheduler» автора Билла Кеннеди, о том, как работает внутренний планировщик Go.

Это первый пост в серии из трех частей, который даст представление о механике и семантике, лежащей в основе планировщика в Go. Этот пост посвящен планировщику операционной системы. Начнем!

Внутренняя архитектура планировщика Go позволяет вашим многопоточным программам быть более эффективными и производительными. Важно иметь общее понимание того, как работают планировщики ОС и Go для правильного проектирования многопоточного программного обеспечения. Я опишу достаточно деталей, чтобы вы могли наглядно представить, как все работает, чтобы на практике принимать лучшие решения.
Читать дальше →
Total votes 30: ↑27 and ↓3 +24
Views11.4K
Comments 6

Недоступная роскошь от Intel: Core i9-9990XE с 14 ядрами на частоте 5,0 ГГц (1 часть)

ua-hosting.company corporate blogIT systems testingIT InfrastructureComputer hardwareCPU
Translation


Intel выпустил свой самый быстрый потребительский процессор для настольных ПК: Core i9-9900KS, у которого все восемь ядер работают на частоте 5,0 ГГц. Вокруг нового процессора много шума, но не всем известно, что у компании уже есть процессор с тактовой частотой 5,0 ГГц, к тому же с 14 ядрами: Core i9-9990XE. Эта крайне редкая вещь не доступна для обычных потребителей: Intel продает ее только избранным партнерам, и только через аукцион, один раз в квартал, и без каких-либо гарантий со своей стороны. Сколько бы вы заплатили за такую роскошь? Ну что ж, нам удалось раздобыть один из этих монстров, чтобы проверить насколько он хорош.
Читать дальше →
Total votes 46: ↑33 and ↓13 +20
Views49.6K
Comments 61

KDE Connect вместо мыши, или подводные камни первого подключения

Wireless technologiesSmartphonesPeripheryDIYLifehacks for geeks
Sandbox
Tutorial


Вышло так, что я находился в поездке, и чтобы скоротать время, взял с собой своего старого верного друга — нетбук ASER Aspire one AOA110 с #!++ на борту.

Так как я им очень давно не пользовался, то напрочь забыл о неисправном шлейфе тачпада.
Мышь с собой я, естественно, не взял, но пользоваться комфортно браузером очень хотелось, и я решил воспользоваться приложением KDE Connect как альтернативой мышке. Казалось бы, что всё просто: установил приложение на оба устройства, законнектился – и пользуйся на здоровье. Но не тут-то было… В общем, обо всём по порядку.

Устанавливаем и запускаем из Play Market на смартфон приложение

KDE Connect (screenshot)


Устанавливаем и запускаем приложение на нетбуке:

sudo apt install kdeconnect
kdeconnect-indicator

Подключаем устройства (ВАЖНО!) к одной локальной сети. Неважно wi-fi это или USB соединение (у меня смартфон был USB-модемом для нетбука).

Запускаем kdeconnect-indicator в консоли, обновляем список доступных устройств на телефоне – и…

Ничего... (screenshot)


Google помогает мне найти ответ: штатный файрвол, заблаговременно включенный мною и забытый. Отключаю его за ненадобностью. Кому нужно оставить включенным файрвол.

sudo ufw disable

Читать дальше →
Total votes 16: ↑13 and ↓3 +10
Views7.5K
Comments 8

Введение в WSGI-серверы: Часть первая

PythonNginx*nixApache
Sandbox
Данная статья является переводом статьи Кевина Голдберга «An Introduction to Python WSGI Servers: Part 1» blog.appdynamics.com/engineering/an-introduction-to-python-wsgi-servers-part-1 с небольшими дополнениями от переводчика

image

Краткая история серверов WSGI Python


WSGI-серверы появились потому, что веб-серверы в то время не умели взаимодействовать с приложениями, написанными на языке Python. WSGI (произносится как «whiz-gee» с твердым «g») был разработан Филиппом Дж. Эби (вместе с Ян Бикинг и др.) В начале 2000-х годов. Модуль Apache, известный как mod_python, разработанный Григорием Трубецким в конце 90-х годов, на тот момент обрабатывал большую часть Python-приложений. Однако mod_python не был официальной спецификацией. Он был просто создан, чтобы разработчики могли запускать код Python на сервере. К сожалению, такой подход был небезопасным и разработчики начали искать новое решение.

WSGI(Web-Server Gateway Interface) является потомком CGI(Common Gateway Interface). Когда веб начал развиваться, CGI разрастался из-за поддержки огромного количества языков и из-за отсутствия других решений. Однако, такое решение было медленным и ограниченным. WSGI был разработан как интерфейс для маршрутизации запросов от веб-серверов(Apache, Nginx и т.д.) на веб-приложения.
Читать дальше →
Total votes 19: ↑18 and ↓1 +17
Views68.8K
Comments 7
1

Information

Rating
5,857-th
Location
Ставрополь, Ставропольский край, Россия
Registered
Activity