Как стать автором
Обновить
5
0
Егор @g84

программист

Отправить сообщение

Нелинейные корреляции. Моя любимая статистическая мера: D Хёфдинга

Уровень сложностиСредний
Время на прочтение25 мин
Количество просмотров6.2K

Предположим, у вас есть две последовательности чисел, которые вы хотите сравнить, чтобы измерить, насколько они связаны или зависимы друг от друга. Это действительно довольно общий сеттинг: две последовательности могут представлять временные ряды, так что у вас есть таблица с тремя столбцами и кучей строк. Первый столбец будет временем (скажем, с часовыми интервалами), а затем по одному столбцу для каждой последовательности; первый, например, может быть средней ценой акции за этот интервал, а второй - объемом торгуемых акций за этот интервал. Или вы могли бы сравнить процентное изменение цены одной акции по сравнению с другой. Конечно, это вовсе не обязательно должны быть временные ряды: у вас также может быть всего два столбца (то есть вообще без столбца времени). Первый может быть ростом американца старше 30 лет в дюймах, а второй — весом того же человека в фунтах. Или, чтобы использовать более актуальный пример, каждый столбец может представлять вектор эмбеддингов некоторых предложений на английском языке от определенной модели LLM. Первый столбец может быть вектором от модели Mixtral 8x7B для строки "I love my 3 sons" (Я люблю моих трех сыновей), а другой — от той же модели для строки "I cherish my 5 daughters" (Я дорожу моими пятью дочерьми).

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

Читать далее
Всего голосов 14: ↑14 и ↓0+14
Комментарии4

Вдыхайте DIY: Создаем собственную умную вентиляцию для дома

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров43K


Зачем всё это?


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

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

На стадии ремонта я понимал, что хочу автоматизировано контролировать качество воздуха в квартире, также знал о вероятных проблемах с запотеванием окон. Понимания по производителю будущей приточной вентиляции не было, поэтому заранее в стене было проделано отверстие диаметром 160 мм с запасом под воздуховод диаметром 150 мм, и проведены провода электропитания в предполагаемое место установки приточной вентиляции.
Читать дальше →
Всего голосов 86: ↑86 и ↓0+86
Комментарии136

Графические оболочки FFmpeg

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров33K


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

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

FFmpeg — изначально консольная утилита. Но её популярность крайне высока. Поэтому появляются всё новые варианты графических оболочек для FFmpeg, чтобы доступ к инструменту получили абсолютно все пользователи.
Читать дальше →
Всего голосов 107: ↑107 и ↓0+107
Комментарии76

Наглядное руководство по SSH-туннелям

Время на прочтение8 мин
Количество просмотров157K

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

Туннели SSH — это зашифрованные TCP-соединения между клиентами и серверами SSH. Трафик входит с одной стороны туннеля и прозрачно выходит с другой. Изначально этот термин относился к туннелям на виртуальных сетевых интерфейсах TUN/TAP, однако сейчас так обычно называют проброс портов SSH.

Читать далее
Всего голосов 75: ↑75 и ↓0+75
Комментарии17

Arduino + Unity. Радио fpv-машинка на геймпаде

Время на прочтение6 мин
Количество просмотров8.5K

Привет. Расскажу про то, как сделал машинку на Arduino-контроллере, а Unity принимал сигналы с геймпада, управлял машиной по радиоканалу, отображал пользовательский интерфейс и изображение fpv-камеры.

Читать далее
Всего голосов 10: ↑8 и ↓2+8
Комментарии9

Удалённый доступ к Linux-десктопу. Лучшие RDP-серверы и клиенты 2022 года

Время на прочтение6 мин
Количество просмотров134K

Что делать, если нужно получить удалённый доступ к серверу или десктопу Linux? Или подключиться к Windows-машине с Linux-десктопа? Какие клиенты RDP и FTP подходят лучше всего под Debian и Red Hat / CentOS? Интересно посмотреть, что нового появилось в последнее время.
Читать дальше →
Всего голосов 32: ↑31 и ↓1+44
Комментарии35

Excel очень крут

Время на прочтение4 мин
Количество просмотров23K
Статья Хилла Уейна, автора почтовой рассылки «Компьютерные штучки», которая посвящена формальным методам и применению математики в программировании, истории и культуре программного обеспечения, философии и теории программирования, а также всяким экзотическим штукам и нишевым темам. В общем, рекомендуем.

В прошлом выпуске рассылки Уейн игрался с языком программирования J, который работает как арифметический калькулятор в консоли, и пошутил по ходу дела:

Я столько времени трачу на интерактивные вычисления, что даже не мог оторваться от этих функций… Может, мне просто хорошенько освоить Excel?

Пошутив про офисную программу, Хилл Уейн решил действительно посмотреть на неё поближе… и был поражён увиденным: «Это как найти сундук с сокровищами у себя на чердаке», — пишет он. И перечисляет некоторые новые функции современного Excel, о которых мало кто знает.
Читать дальше →
Всего голосов 27: ↑26 и ↓1+35
Комментарии36

Современные цифровые интерфейсы в слаботочных системах и их защита с помощью УЗИП

Время на прочтение12 мин
Количество просмотров8.1K

Опыт работы последних лет в области защиты слаботочных систем от импульсных воздействий позволяет сделать вывод, что на практике эта тема вызывает много вопросов, в частности по типам и видам интерфейсов и выбора УЗИП для защиты слаботочного оборудования.

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

Читать далее
Всего голосов 5: ↑4 и ↓1+4
Комментарии8

Админка на Google Sheets — быстрый запуск и минимум ресурсов

Время на прочтение5 мин
Количество просмотров7.5K

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

Если пилить полноценную админку, то нужно писать бэк и фронт, сверху к этому добавлять сортировки, фильтры... Да, на такой случай есть и заготовки, но выходит все равно долго. Почему бы не подцепиться к Google Sheets? Есть и фильтры, и сортировки, права доступа, история изменений — все необходимое. Многие умеют там работать. А еще, это дешевое решение. Попробовали и делимся сценарием простых шагов.

Читать далее
Всего голосов 14: ↑14 и ↓0+14
Комментарии9

Управление структурой базы данных без боли

Время на прочтение8 мин
Количество просмотров12K
image

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

Сам проект написан на Django, в качестве бекенда — PostgreSQL. В самом начале работы было решено, по крайней мере, частично отказаться от использования Django ORM в пользу «сырого» SQL и хранимых процедур. Другими словами, почти вся бизнес-логика вынесена на уровень базы данных. Сразу скажу, что готовить ORM я умею, но в данном случае требовалось производить многоступенчатые вычисления, связанные с множеством выборок, а это лучше делать на сервере БД и не таскать промежуточные данные в приложение.

Столкнувшись с необходимостью поддержания структуры базы данных вручную, без приятностей Django Migrations, я выяснил, что вручную писать инкрементальные SQL патчи возможно, но трудно уследить за зависимостями объектов БД. К примеру, когда функции, которая используется где-то еще, добавляешь еще один аргумент, простого CREATE OR REPLACE недостаточно — ее нужно сначала DROP, а потом CREATE. При этом нужно предварительно удалить зависимые от нее функции, а потом создать заново (а если от этих функций еще кто-то зависит, тогда надо и их пересоздать).

Под катом краткое описание возможностей в виде туториала. Встречайте — Sqlibrist.
Читать дальше →
Всего голосов 14: ↑12 и ↓2+10
Комментарии20

Более чем 80 средств мониторинга системы Linux

Время на прочтение12 мин
Количество просмотров321K
Ниже будет приведен список инструментов мониторинга. Есть как минимум 80 способов, с помощью которых ваша машинка будет под контролем.



1. первый инструмент — top

Консольная команда top- удобный системный монитор, простой в использовании, с помощью которой выводится список работающих в системе процессов, информации о этих процессах. Данная команда в реальном времени сортирует их по нагрузке на процессор, инструмент предустановлен во многих системах UNIX.
читать дальше
Всего голосов 94: ↑82 и ↓12+70
Комментарии68

MySQL шпаргалки

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

Сегодня я решил опубликовать свои шпаргалки, на самые часто встречающиеся ошибки при работе с MySQL.

Читать дальше →
Всего голосов 215: ↑193 и ↓22+171
Комментарии230

Стандарт ECMA-262 (JavaScript) в картинках, часть 3

Время на прочтение2 мин
Количество просмотров13K

В предыдущих частях рассматривались структуры execution context, объекты Function и указатель this. В третьей части речь пойдет о прототипном наследовании.
Читать дальше →
Всего голосов 8: ↑7 и ↓1+6
Комментарии1

Язык Go с точки зрения PHP-разработчика

Время на прочтение4 мин
Количество просмотров17K
Go — это язык, придуманный Робертом Гризмером (Robert Griesemer), Робом Пайком и Кеном Томпсоном, который был анонсирован в ноябре 2009 с версиями под Linux и Mac OS X. Сейчас разработчики работают в Google, но и задолго до этого были очень известными и уважаемыми людьми (к примеру, кодировка UTF-8 была изобретена Томпсоном и Пайком для использования в качестве основной кодировки в Plan 9).

Лично я решил посмотреть, что это за язык после того, как тут опубликовали вот это видео выступления Роба Пайка. Я изучаю Go не очень долго, но даже за те две недели, что я потратил на его изучение, я успел сделать несколько проектов на нём, например backend для библиотеки JsHttpRequest (JsHttpRequest; мой backend на Go). Я до сих пор использую JsHttpRequest из-за её удобства (как со стороны JS, так и со стороны PHP). В статье я хочу рассказать исключительно о моих ощущениях после программирования на PHP и JavaScript, практически без примеров кода.
Читать дальше →
Всего голосов 91: ↑57 и ↓34+23
Комментарии107

Генераторы в ES6 и асинхронный код по-новому

Время на прочтение4 мин
Количество просмотров31K
Когда мы начинаем разбираться с ES6, генераторы находятся чуть ли не в конце списка нововведений, на которые мы обращаем внимание. Зачастую мы просто воспринимаем генераторы как простой способ создания кастомных итераторов, но на самом деле они могут предоставить нам намного более интересные возможности и скорее всего являются одним из самых интересных нововведений в ES6.
Читать дальше →
Всего голосов 25: ↑19 и ↓6+13
Комментарии7

Linux в кармане — на службе у фотографа

Время на прочтение6 мин
Количество просмотров50K
Так получилось, что фотография, это мой основной профессиональный вид деятельности, а программирование — хобби, которое иногда позволяет размять мозг. Кроме непосредственно разминки для мозга, программирование помогает и в работе. Например, писал полезные штуки, такие как это или это, или это.

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

Это рассказ, о том, как мне удалось сделать для себя инструмент, который с минимальным моим участием и минимальным дополнительным весом в рюкзаке, помогает сделать красивые слайдшоу. И конечно же рассказ о python, ffmpeg и linux на android.
Читать дальше →
Всего голосов 72: ↑69 и ↓3+66
Комментарии75

Десктопные приложения на JavaScript. Часть 1

Время на прочтение6 мин
Количество просмотров158K
Ни для кого не секрет, что в наше время JavaScript стал одним из самых популярных языков программирования. В далекие 90е годы, в момент зарождения языка, когда он был создан с единственной целью добавить интерактивность веб страницам и улучшить процесс взаимодействия с пользователем, кто бы мог подумать, что он достигнет столь небывалых высот. Ведь сейчас на нем можно делать практически все что угодно. Хотите написать сайт: и бэкэнд и фронтэнд на JavaScript? пожалуйста! Хотите написать мобильное приложение на JavaScript? нет проблем. Программируете микроконтроллер – и тут вам на помощь придет JavaScript.

Есть конечно небольшие минусы в подходе использования JavaScript везде, но если поразмыслить, то сколько времени и сил можно сэкономить, изучив всего лишь одни язык, особенно, если то же самое приложение должно работать на разных платформах. Разных платформах говорите? Хм… Точно – разных платформах – теперь JS может позволить себе десктопные приложения для Windows, Linux, Mac, как спросите вы? Ответ прост: встречайте – NW.js.

По первым буквам можно прочитать – Node.js + Webkit, если данные понятия вам пока не знакомы, то скоро вы поймете о чем идет речь.

Node.js – программная платформа, основанная на движке V8, который транслирует наш скрипт в машинный код. Данная платформа была создана в 2009 году преимущественно для работы с бэкэндом сайтов.

WebKit — свободный движок, разработанный компанией Apple. Впервые был анонсирован в составе Safari в 2003 году
Итак, коду, написанному на JS для данной технологии, будут доступны как Node.js модули, так и стандартный браузерный API (соответственно WebKit)
Читать дальше →
Всего голосов 31: ↑24 и ↓7+17
Комментарии25

Шорткаты в JavaScript

Время на прочтение4 мин
Количество просмотров25K


Изучая любой язык программирования, полезно знать о его особенностях и уметь эффективно использовать языковые конструкции. Хочу поделиться с вами шорткатами для JS. Эти сокращения в некоторых случаях могут облегчить чтение кода, а также существенно уменьшить его количество. Однако следует помнить, что они могут сыграть с вами злую шутку и, если использовать их повсеместно, ваш код перестанет быть читаемым и поддерживаемым.
Читать дальше →
Всего голосов 57: ↑31 и ↓26+5
Комментарии48

Понимание ООП в JavaScript [Часть 1]

Время на прочтение16 мин
Количество просмотров338K
— Прототипное наследование — это прекрасно
JavaScript — это объектно-ориентированный (ОО) язык, уходящий корнями в язык Self, несмотря на то, что внешне он выглядит как Java. Это обстоятельство делает язык действительно мощным благодаря некоторым приятным особенностям.

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

К счастью, в ECMAScript 5 появилось множество вещей, которые позволили поставить язык на правильный путь (некоторые из них раскрыты в этой статье). Также будет рассказано о недостатках дизайна JavaScript и будет произведено небольшое сравнение с классической моделью прототипного ОО (включая его достоинства и недостатки).
Читать дальше →
Всего голосов 129: ↑119 и ↓10+109
Комментарии71

Полезные сниппеты для Nginx конфигов

Время на прочтение5 мин
Количество просмотров122K


Доброго времени суток, уважаемые хабравчане! В Elasticweb мы негласно ратуем за Nginx и, наверное, мы одни из немногих хостингов, которые не поддерживают Apache и .htaccess соответственно. В связи с этим, большое количество обращений в тех. поддержку связано с оказанием помощи в написании конфигурационного файла для Nginx. Поэтому мы решили собрать коллекцию полезных сниппетов и коллекцию готовых Nging конфигов для наиболее популярных CMS/CMF/Фреймворков на PHP.

Читать дальше →
Всего голосов 94: ↑91 и ↓3+88
Комментарии44

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Работает в
Дата рождения
Зарегистрирован
Активность