Categories: Компьютеры, Linux, Железо, Игры, ПрограммированиеСниппет для сэмплинга пользователей или A/B тестирования (Java)Допустим, у нас есть стабильный идентификатор пользователя userId. С помощью этой функции мы превращаем строковый идентификатор в псевдослучайное число: int userNumber = stringIdToSamplingMillis(userId); Теперь мы можем использовать это число так: if (userNumber < 50) ... // Пользователь попал в 5% тестовую выборку if (userNumber < 500) ... // Пользователь попал в категорию A else ... // Пользователь попал в категорию B Функция: // Генерирует по строке псевдослучайное число от 0 до 999 включительно. private static int stringIdToSamplingMillis(final String str) { // Используем MD5 в качестве генератора псевдослучайного числа на базе строки final MessageDigest hasher = MessageDigest.getInstance("MD5"); final byte[] data = str.getBytes(); hasher.update(data, 0, data.length); // Получим MD5 в виде длинного целого числа final BigInteger bigInt = (new BigInteger(hasher.digest())).abs(); // Получим хвост длинного целого в виде обычного int-а [0..999] return bigInt.mod(BigInteger.valueOf(1000)).intValue(); } Linux + 4K + Firefox & Chrome - размер шрифтов в меню и на вкладкахПосле покупки нового монитора, в течение первых же пяти минут обнаружил, что пользоваться обоими браузерами стало весьма проблематично, т.к. шрифт вкладок и меню стал очень мелким, при этом ни на какие системные настройки он не реагирует. Поиск работающего лекарства занял целый час, поэтому фиксирую тут. Инструкция основана на настройке Ubuntu 20.04. 1) Вычисляем коэффициент, на который нужно умножить разрешение. У моего нового монитора 162x161 PPI (xdpyinfo | grep dots), а проги считают, что 96 PPI. Делим ((162+161)/2)/96 = 1.6822916(6). То есть примерно 1.68. Можно не округлять, можно округлить до 1.7, по вкусу. Далее я использую 1.68, для вашего монитора число будет немного другим. 2) Google Chrome. Добавляем в ярлык параметр запуска: 3) Firefox, Thunderbird и другие GTK-приложения. Добавляем в ~/.bash_profile или ~/.profile (какой у вас используется, или в оба): P.S. Почему в 2020 году ведущие мировые приложения не умеют читать реальный PPI экрана мне неведомо. P.P.S. Фикс для Zoom: в ~/.config/zoomus.conf - исправляем значение scaleFactor. P.P.P.S. Wine: wine regedit -> HKEY_CURRENT_CONFIG > Software > Fonts, там создаём LogPixels (типа DWORD) с разрешением экрана, например, 162 (decimal) или просто запускаем winecfg и ставим разрешение на вкладке "Графика". Чтобы создать эффект использования увеличенных шрифтов нужно поставить разрешение на 25-30% больше реального. Добавление: отличия для Ubuntu 22.04Теперь через штатную конфигурационную программу можно задать правильный DPI экрана в настройках шрифтов и множитель в настройках для монитора, и многие приложения это подхватывают (нужно указать и то и то, в разных местах работает разное). Шпаргалка по настройке Octoprint / OctoPi + TouchUI
Примечание: есть странный баг - иногда случайным образом блокировка скринсейвера не отрабатывает и экран всё же гаснет. OSS + PulseAudio = запись звука и работающий голос в Steam, Skype под LinuxНемного обычной пингвинской магии для того, чтобы на компьютере с драйверами Open Sound System в Steam заработал ввод звука. # Подключаем DSP-устройство для воспроизведения звука load-module module-oss device="/dev/dsp0" sink_name=output mmap=0 # Подключаем DSP-устройство для записи звука load-module module-oss device="/dev/dsp2" source_name=input mmap=0 # Можно настроить USB-карточки примерно так, но после подключения надо будет делать: # sudo /usr/lib/oss/scripts/oss_usb-create-devices # pulseudio --kill && pulseaudio --start .ifexists /dev/oss/usb046d0a29-2/pcm0 load-module module-oss device="/dev/oss/usb046d0a29-2/pcm0" sink_name=h800 mmap=0 load-module module-oss device="/dev/oss/usb046d0a29-1/pcmin0" source_name=h800_mic mmap=0 .endif set-default-sink output set-default-source input Перезапускаем Pulse: UPD: Проверил Скайп - тоже нормально работает. UPD2: Столкнулся с проблемой, что при длительном простое компьютера звук может заглючить (хотя все режимы энергосбережения у меня отключены). Скрипт для ремонта: #!/bin/bash sudo killall pulseaudio sudo killall -s KILL pulseaudio sudo /etc/init.d/oss restart pulseaudio -D Скрипт для циклической записи видео на веб-камеру для ЛинуксаС помощью обычного линуксового софта можно легко превратить вебкамеру в видеокамеру для записи каких-нибудь блогов или в "видеорегистратор", что я для разминки и сделал. Проверено на Ubuntu 14.04. Archives
|