Как стать автором
Обновить
78
0
Геннадий @DreamingKitten

Преподаватель

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

Опыты с сертификатами — клиентскими и серверными

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

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

К тому же, в собственной сети не так важен правильный сертификат, когда на всех клиентских устройствах можно предустановить свой доверенный корневой сертификат и подписывать им сертификаты внутренних ресурсов. Но у автора статьи просто был спортивный интерес и на досуге хотелось вникнуть в тему.

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

Простыми словами об InlineKeyboard в Телеграмм ботах на java

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

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

И такая возможность есть, если применить InlineKeyboard — вариант кнопок (за которыми скрыт необходимый функционал), прикрепленных непосредственно к сообщению от бота.

Применить такую клавиатуру я решила при разработке другого бота. Однако столкнулась с тем, что ни в документации Telegram bot Api, ни в статьях / разборах, размещенных в Интернет, нет прозрачного пошагового пояснения всей цепочки процессов. Разобравшись для себя с взаимосвязями вызовов в InlineKeyboard я решила этим поделиться с другими разработчиками.

Читать далее
Всего голосов 7: ↑5 и ↓2+3
Комментарии12

Разработка мобильных приложений на Go

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

Язык программирования Go стал настоящим открытием для разработчиков инструментов для системного администрирования и DevOps благодаря комбинации возможностей низкоуровневой разработки (и в этом он подобен C) и поддержке автоматической сборки мусора, исключению прямой работы с указателями, наличию конкуретной многозадачности (goroutines) и возможности компиляции непосредственно в исполняемый образ. Постепенно Go начал использоваться для других целей: создание веб-приложений, разработка для микроконтроллеров. Почему бы не использовать все его возможности для создания мобильных приложений? В статье мы обсудим некоторые подходы к разработке приложений на Go для мобильных устройств.

Читать далее
Всего голосов 23: ↑19 и ↓4+15
Комментарии11

Муравей Лэнгтона — загадочный клеточный автомат

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

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

Невесёлая жизнь у муравья Лэнгтона, но, как мы увидим, он не готов мириться с такой возмутительной ситуацией и всеми силами старается сбежать.

Читать далее
Всего голосов 60: ↑59 и ↓1+58
Комментарии23

Всемогущий FFmpeg: скриншаринг в WebRTC

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

Когда мы пишем статьи о своем сервере в комментариях очень часто находится читатель, который говорит:

"И зачем такой огород городить? Все это одной FFmpeg командой делается!"

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

Музыка для игр: где брать треки инди-разработчикам

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

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

Сегодня мы расскажем о трех ресурсах, где можно найти royalty free треки для своих игровых экспериментов — IndieGameMusic, Unminus Music и cchound.

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

Что можно положить в тег <head>

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

Рекомендуемый минимум

Ниже приведены основные элементы для любого веб-документа (веб-сайта/приложения):

meta charset — определяет кодировку веб-сайта, стандартом является utf-8.

meta name="viewport" — настройки viewport, связанные с мобильной отзывчивостью

width=device-width — физическая ширина устройства (отлично подходит для мобильных устройств!)

initial-scale=1 — начальный масштаб, 1 означает отсутствие масштабирования

Элементы

Допустимые элементы <head> включают meta, link, title, style, script, noscript и base.

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

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

7 подсказок, как создать и улучшить Battle Pass в вашей игре

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

51% игр в ТОП 100 игр по гроссингу в США внедрили Battle Pass и данная фича продолжает набирать популярность (по данным сервиса GameRefinery). В данной статье я хотела бы рассказать о подсказках, которые вы можете использовать при создании или улучшении Battle Pass с примерами из игр жанра match3.

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

Базовая структура HTML-документа с объяснением каждой строчки

Время на прочтение9 мин
Количество просмотров100K
<!DOCTYPE html>
<html lang="en" class="no-js">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width">

  <title>Unique page title - My Site</title>

  <script type="module">
    document.documentElement.classList.remove('no-js');
    document.documentElement.classList.add('js');
  </script>

  <link rel="stylesheet" href="/assets/css/styles.css">
  <link rel="stylesheet" href="/assets/css/print.css" media="print">

  <meta name="description" content="Page description">
  <meta property="og:title" content="Unique page title - My Site">
  <meta property="og:description" content="Page description">
  <meta property="og:image" content="https://www.mywebsite.com/image.jpg">
  <meta property="og:image:alt" content="Image description">
  <meta property="og:locale" content="en_GB">
  <meta property="og:type" content="website">
  <meta name="twitter:card" content="summary_large_image">
  <meta property="og:url" content="https://www.mywebsite.com/page">
  <link rel="canonical" href="https://www.mywebsite.com/page">

  <link rel="icon" href="/favicon.ico">
  <link rel="icon" href="/favicon.svg" type="image/svg+xml">
  <link rel="apple-touch-icon" href="/apple-touch-icon.png">
  <link rel="manifest" href="/my.webmanifest">
  <meta name="theme-color" content="#FF00FF">
</head>

<body>
  <!-- Content -->
  <script src="/assets/js/xy-polyfill.js" nomodule></script>
  <script src="/assets/js/script.js" type="module"></script>
</body>
</html>


Под катом — разбор каждой строчки
Читать дальше →
Всего голосов 50: ↑42 и ↓8+34
Комментарии9

Полное руководство по CSS Flex + опыт использования

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

Как и CSS Grid, Flex Box довольно сложен, потому что состоит из двух составляющих: контейнера и элементов внутри него.

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

Читать!
Всего голосов 19: ↑16 и ↓3+13
Комментарии13

Мы Опубликовали Качественный, Простой, Доступный и Быстрый Синтез Речи

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

fiona


Вторая частьhttps://habr.com/ru/post/563484/


Вокруг темы синтеза речи сейчас много движения: на рынке есть огромное число тулкитов для синтеза, большое число закрытых коммерческих решений за АПИ (как на современных технологиях, так и на более старых, т.е. "говорилки") от условных GAFA компаний, большое количество американских стартапов, пытающихся сделать очередные аудио дипфейки (voice transfer).


Но мы не видели открытых решений, которые бы удовлетворяли одновременно следующим критериям:


  • Приемлемый уровень естественности речи;
  • Большая библиотека готовых голосов на разных языках;
  • Поддержка синтеза как в 16kHz так и в 8kHz из коробки;
  • Наличие своих собственных голосов у авторов решения, не нарушающих чужие права и лицензии;
  • Высокая скорость работы на "слабом" железе. Достаточная скорость работы на 1 потоке / ядре процессора;
  • Не требует GPU, команды ML инженеров или какой-либо дополнительной тренировки или для использования;
  • Минимализм и отсутствие зависимостей / использование в 1 строчку / не надо ничего собирать или чинить;
  • Позиционируется именно как готовое решение, а не очередной фреймворк / компиляция чужих скриптов / тулкитов для сбора плюсиков;
  • Решение никак не связано и не аффилировано с закрытыми экосистемами и продуктами Гугла / Сбера / Яндекса / вставить нужное;

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

Всего голосов 205: ↑205 и ↓0+205
Комментарии229

Трюк с XOR для собеседований и не только

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


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

Хоть и непривычно ожидать решения с XOR на собеседованиях, довольно забавно разбираться, как они работают. Оказывается, все они основаны на одном фундаментальном трюке, который я постепенно раскрою в этом посте. Далее мы рассмотрим множество способов применения этого трюка с XOR, например, при решении популярной задачи с собеседований:

Дан массив из n — 1 целых чисел, находящихся в интервале от 1 до n. Все числа встречаются только один раз, за исключением одного числа, которого нет. Найдите отсутствующее число.

Разумеется, существует множество прямолинейных способов решения этой задачи, однако есть и довольно неожиданный, в котором применяется XOR.
Читать дальше →
Всего голосов 92: ↑86 и ↓6+80
Комментарии104

OBS Studio Lua Скриптинг. Часть 2

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

Всем привет, в этой части руководства рассмотрим: фильтры, сцены, предметы сцен, Frontend API, создание функциональных фильтров и прочее...


С первой частью можно ознакомиться по этой ссылке.


КДПВ сделана в OBS 26.0.0

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

Как писать книгу по физике в LaTeX. Cтатья 1

Время на прочтение26 мин
Количество просмотров35K
Это моя первая статья на Хабре.

Глава 1. Введение


1.1 Позвольте представиться и почему я это пишу

Я — научный сотрудник, физик. Недавно выпустил книгу по спектроскопии объемом 880 страниц и весом 1560 грамм. Эту книгу я писал 9 лет, параллельно читая лекции по ее содержимому. Она отняла у меня очень много времени, что естественно. Что не естественно — это то, что громадная часть потраченного времени ушла на оформление, то есть на изучение языка Латех. И это при том, что я на Латехе пишу всю жизнь, лично написал и опубликовал около 50 статей в разных издательствах.

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

После публикации книги (пока, увы, только на русском языке) у меня возникло громадное желание написать ещё книгу "Как написать книгу по физике в Латехе"
Читать дальше →
Всего голосов 128: ↑127 и ↓1+126
Комментарии100

Расшифровка: почему у монетизаторов нет души, а токсичные члены команды — самые эффективные

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

Наверное, это один из самых откровенных прямых эфиров, которые мы проводили, причем с представителем двух самых ненавидимых профессий в геймдеве: монетизатором и менеджером.

7 июля в нашем инстаграм-аккаунте выступил Вячеслав Дреер, гейм-дизайнер и продюсер игр с 12-летним стажем. Слава работал в игровых подразделениях веб-мани, mail.ru, Фотостраны и принимал участие в более, чем 50 других проектов.

Во время эфира он без буллшита и увиливаний рассказал:

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

Делимся с вами расшифровкой.
Всего голосов 90: ↑61 и ↓29+32
Комментарии141

Артикли в английском: безжалостная война правил и исключений

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


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

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

Нет смысла писать ещё одну статью о базовых правилах употребления артиклей в английском. Сегодня я расскажу о правилах и о способах их нарушить.
Читать дальше →
Всего голосов 42: ↑40 и ↓2+38
Комментарии69

GHIDRA vs. IDA Pro

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


Приветствую,


Думаю, пришла пора. Наболело/накипело/есть мнение. С выходом Гидры ситуация с инструментарием для реверс-инженеров достаточно сильно изменилась. Если раньше выбора чем пользоваться особо не было (здесь не будут упоминаться Binary Ninja, Hopper, JEB или Radare2, потому как в известных мне ИБ-компаниях и комьюнити ими пользуется очень малое количество человек, либо же порог вхождения в некоторые (привет, Радар) очень высок, либо же покрытие архитектур ограничено лишь x86/x64/ARM/ARM64/MIPS), то теперь мы имеем очень мощного конкурента Hex-Rays в лице АНБ с их GHIDRA.

Читать дальше →
Всего голосов 31: ↑31 и ↓0+31
Комментарии36

Вынос телефонных линий с помощью VoIP-шлюзов Grandstream

Время на прочтение8 мин
Количество просмотров30K
Клиенты часто обращаются к нам с довольно распространенной проблемой. В общем виде ее можно выразить так: в компании используется аналоговая телефонная станция, к которой необходимо подключить часть пользователей из удаленного местоположения. Это может быть соседний офис, соседний город или даже другая страна – главное, что телефонная сеть туда не дотягивается, зато дотягивается ЛВС или имеется доступ в сеть Интернет. Сегодня мы будем решать данную задачу при помощи VoIP-шлюзов Grandstream серии GXW4xxx.


Читать дальше →
Всего голосов 7: ↑6 и ↓1+5
Комментарии6

Создаём установочный носитель с множеством версий Windows NT 6.0+ без использования стороннего софта

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

КДПВЗдравствуйте. Сегодня я расскажу как можно создать единый установочный носитель с множеством разных версий Windows не прибегая к использованию стороннего ПО. Таким образом вы будете полностью понимать какие манипуляции мы выполняем.


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


Кому интересно — прошу под кат.

А ну-ка, посмотрим
Всего голосов 34: ↑33 и ↓1+32
Комментарии108

Информация

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