Pull to refresh
7
0
GEMOzloBIN @GEMOzloBIN

Пользователь

Send message

Не куб, а кубик: kubernetes для не-highload

Level of difficultyEasy
Reading time11 min
Views18K

Может ли kubernetes сделать жизнь админов небольших и средних компаний проще или же это шайтан-машина для кровавого enterprise и оголтелых стартапов?

Хочется кубер, но колется...
Total votes 48: ↑47 and ↓1+46
Comments32

Как создать cloud-init шаблон ОС Astra Linux в Proxmox

Reading time3 min
Views17K

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

Читать далее
Total votes 10: ↑8 and ↓2+6
Comments7

Сколько стоит содержать виртуальную девушку? Создаем подругу, записывающую кружочки в Telegram, с помощью 4 нейросетей

Level of difficultyMedium
Reading time18 min
Views49K

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

Поговорим о технической стороне. Как повторить этот шедевр и можно ли обойтись без сервисов OpenAI, которые сложно оплатить в России? И главное — сколько придется инвестировать в виртуальную подругу.
Читать дальше →
Total votes 121: ↑116 and ↓5+111
Comments65

Chrome Headless против cloudflare JS challenge

Level of difficultyMedium
Reading time41 min
Views21K

Автоматизация сбора информации с различных ресурсов - обычная задача для людей разных сфер деятельности. Жаль, что не всегда бывает достаточно сделать простой GET запрос и разобрать полученный html. Веб-сайты, с которых собираются данные, принимают защитные меры для предотвращения автоматизированных запросов. Одной из таких мер является использование cloudflare. Сегодня мы посмотрим, как cloudflare выявляет ботов через javascript и коснёмся темы деобфускации скриптов.

Читать далее
Total votes 82: ↑82 and ↓0+82
Comments6

Доменные имена с валидным SSL для локальных Docker-контейнеров

Level of difficultyEasy
Reading time6 min
Views10K

image


Ранее (11 февраля 2019) пост уже публиковался мной с таким заголовком, но был отправлен в небытие по причине смерти домена, а как следствие и сервиса с ним связанного. Причин тогда было две — статистика скачивания докер-образа оставляла желать лучшего, и цена за продление домена (что был зарегистрирован в nic) стала для меня неожиданно выше той, которую я был морально готов заплатить за него.


Но есть время не продлять домены разбрасывать камни, а есть время извиниться за сделанную ошибку. Все, кому сервис был полезен, кто им пользовался и однажды заметил что он (localhost.tools) не резолвится — приношу свои извинения, и исправляю ситуацию (лучше поздно чем никогда, верно?).


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

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

Книги, которые повлияли на меня как на разработчика и управленца

Reading time6 min
Views12K

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

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

Читать далее
Total votes 30: ↑27 and ↓3+24
Comments3

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

Reading time23 min
Views228K

Я люблю давать простые задачки студентам на лекции. Во-первых, понятно, скольких мы потеряли, во-вторых, это переключение из режима потребления информации в режим выдачи результатов, в третьих — возможность проявить себя для шустрых. Сплошные плюсы!

Одна из простых задач звучит так: «При переводе картинки из цветового пространства RGB в YUV мы выполняем прореживание, то есть выкидываем каждый четный столбец и каждую четную строку в компонентах U и V (все компоненты пикселя по 1 байту). Вопрос: во сколько раз меньше данных у нас стало?» Эта операция называется chroma subsampling и широко используется при сжатии видео, например.

Забавно, что когда-то давно, когда винчестеры были меньше, а дискеты больше, студенты реально отвечали на этот вопрос быстро. А в последние годы регулярно народ в ступор впадает. Приходится разбирать по частям: «Если выкинуть каждую четную строку и каждый четный столбец, во сколько раз меньше данных будет у компоненты?» Почти хором: «В четыре». Начинаю подкалывать: «Отлично! У нас было 3 яблока, первое осталось как есть, а от второго и третьего осталось по четвертинке. Во сколько раз меньше яблок у нас стало?» Народ ржет, но, наконец-то, дает правильный ответ (заметим, не все). 

Это было бы смешно, если бы от способности быстро в уме прикинуть результат не зависела способность быстрее создавать сложные алгоритмы. 

И хорошо видно, как эта способность в широких массах студентов заметно плавно падает. Причем не только в нашей стране. Придуман даже специальный термин: «цифровое слабоумие» ("digital dementia") — снижение когнитивных способностей, достаточно серьезное, чтобы повлиять на повседневную деятельность человека. 

Кому интересно как теряют мозг студенты масштабы бедствия и что с этим делать — добро пожаловать под кат!

Читать далее
Total votes 411: ↑395 and ↓16+379
Comments795

Вы уверены? Как писать тексты для экранов подтверждения

Reading time3 min
Views20K

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

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

Читать далее
Total votes 95: ↑95 and ↓0+95
Comments71

Как мы перешли с Elastic на Grafana stack и сократили расходы в несколько раз

Reading time8 min
Views29K

Привет! Хочу поделиться историей миграции сервисов логирования и трейсинга с компонентов Elastic Stack на Grafana Stack и тем, что из этого вышло. До миграции у нас в М2 использовались достаточно классические схемы:

Читать далее
Total votes 31: ↑31 and ↓0+31
Comments22

Самописные компоненты в конвейере обработчиков ASP.NET Core: подключение и доступ к сервисам

Reading time26 min
Views6.3K


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


Обычно для разработки серверной части веб-приложений (по-простому — бэка) с помощью ASP.NET Core имеет смысл использовать базирующиеся на нем фреймворки высокого уровня: MVC Core, Razor Pages и т.д.: они позволяют с минимумом усилий решать типовые задачи. Но встречаются задачи нетиповые, которые требуют для своего решения перейти на более низкий уровень (или, по крайней мере, понимать, что на этом уровне происходит) — на уровень базовых возможностей ASP.NET Core. И в этой статье как раз рассказывается об использовании одной из этих базовых возможностей — компонентов middleware, из которых создается конвейер обработки запросов к веб-серверу. Далее в статье я буду называть их компонентами-обработчиками, потому что официальный перевод из документации от MS — "ПО промежуточного слоя" — он некрасив и не описывает их функции. Конкретно в статье рассматривается, какие средства предоставляет фреймворк ASP.NET Core для создания самописных компонентов-обработчиков. И особое внимание уделено тому, как эти компоненты могут получить доступ к другой базовой возможности ASP.NET Core — сервисам, которые зарегистрированы в контейнере сервисов (он же — "DI-контейнер"), как к стандартным для ASP.NET Core, так и к самописным.

Читать дальше →
Total votes 5: ↑4 and ↓1+3
Comments2

Кастомизируем дашборды в Grafana для инженеров по холодоснабжению ЦОДа

Reading time7 min
Views18K

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

Наша система мониторинга на базе Nagios развивается вместе с сетью дата-центров, и мы уже много рассказывали о ее работе (например, в этом цикле). Но нет предела совершенству, и чем дальше, тем больше хочется улучшить что-то еще: добавить новый “разрез” анализа, взглянуть на оборудование под другим углом.   

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

Читать далее
Total votes 16: ↑16 and ↓0+16
Comments11

Mozilla Sops для управления секретами в гите

Reading time7 min
Views12K

Задача управления секретами одна из самых неприятных в IT. Само существование секретов уже неприятно, потому надо специально прикладывать усилия, чтобы у кого-то не работало (например, чтобы анонимный пользователь не мог прочитать секрет).

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

В индустрии, по мере наработки практик, появилось множество систем управления секретами: с собственными серверами (hashicorp vault), 'as a service' (их ещё называют KMS, key management system), аппаратные (токены и TPM), самописные скрипты на gpg и т.д.

Среди всего этого множества я хочу выделить Mozilla Sops, и, как мне кажется, это один из лучших инструментов. Предупреждая возражения: я говорю про инструмент, а не решение. SOPS не заменяет KMS и не претендует на отмену Hashicorp'ового vault'а.

На Хабре уже был перевод про sops с точки зрения IT-директора, весьма убедительная статья, после которой я и занялся sops всерьёз. Если вы ту статью не читали, очень рекомендую начать с неё, чтобы получить заряд мотивации.

В этой статье я расскажу про техническую часть.

Читать далее
Total votes 12: ↑12 and ↓0+12
Comments11

Мониторинг PHP-приложений с помощью OpenTelemetry и SigNoz

Reading time8 min
Views6.5K

PHP является самым популярным языком для серверной разработки, по праву занимая первое место на рынке. Приложения многих всемирно известных организаций, таких как Facebook, написаны на PHP. WordPress, на котором работает 43% всех веб-сайтов, также создан на основе PHP. В этом туториале я научу вас инструментировать PHP-приложение при помощи OpenTelemetry для получения данных телеметрии.

Мониторинг PHP-приложения на предмет проблем с производительностью и ошибок очень важен. Чтобы эффективно мониторить приложение, вам нужны надежные данные телеметрии из него. И с этим нам может помочь OpenTelemetry. OpenTelmetry предоставляет клиентские библиотеки для множества языков программирования, включая PHP, которые можно использовать для инструментирования приложений.

Читать далее
Total votes 12: ↑10 and ↓2+8
Comments6

Полковнику никто не пишет. Отправка писем по SMTP после изменения политики Google. С примером на Python

Reading time2 min
Views20K

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

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

Читать далее
Total votes 22: ↑21 and ↓1+20
Comments14

Ищем и скачиваем непопулярные и старые файлы в интернете

Reading time14 min
Views203K
Преимущественно медиафайлы. На полном серьезе, без шуток.

Введение

Бывает, случается так, что вы хотите скачать альбом 2007 года исполнителя, который кроме вас известен 3.5 людям, какой-нибудь испанский ска-панк или малопопулярный спидкор европейского происхождения. Находите BitTorrent-раздачу, ставите на закачку, быстро скачиваете 14.7%, и… все. Проходит день, неделя, месяц, а процент скачанного не увеличивается. Вы ищете этот альбом в поисковике, натыкаетесь на форумы, показывающие ссылки только после регистрации и 5 написанных сообщений, регистрируетесь, флудите в мертвых темах, вам открываются ссылки на файлообменники вроде rapidshare и megaupload, которые уже сто лет как умерли.

Попытка скачать хотя бы один файл
Увы, частая ситуация в попытке хоть что-то скачать

Такое случается. В последнее время, к сожалению, случается чаще: правообладатели и правоохранительные органы всерьез взялись за файлообмен; в прошлом году закрылись или были закрыты KickassTorrents, BlackCat Games, what.cd, btdigg, torrentz.eu, EX.ua, fs.to, torrents.net.ua, и еще куча других сайтов. И если поиск свежих рипов фильмов, сериалов, музыки, мультиков все еще не представляет большой проблемы, несмотря на многократно участившееся удаления со стороны правообладателей контента из поисковых систем, торрент-трекеров и файлообменников, то поиск и скачивание оригинала (DVD или Blu-Ray) фильмов и сериалов или просто ТВ-рипов 7-летней давности на не-английском и не-русском языке — не такая уж простая задача.
Читать дальше →
Total votes 215: ↑213 and ↓2+211
Comments74

Что читать Golang-разработчику. Семь главных книг: от Донована и Кернигана до МакДауэлл

Reading time7 min
Views24K

Спрос на бэкенд-разработчиков — а Go неотделим от бэкенд-программирования — стабильно растет. У самого же Golang немало плюсов: простой, строгий, статически типизированный, он обладает развитой стандартной библиотекой и славится поддержкой параллельного и асинхронного программирования. При этом в Golang нет классов и нет поддержки наследования, что значительно повышает удобство поддержки кода. Благодаря этим и другим преимуществам Go в последние годы сохраняет статус популярного и перспективного языка.

В МойОфис мы широко используем Go в качестве основного языка для разработки корпоративной почты нового поколения Mailion. При этом разрабатываем на нём не только микросервисы, но и собственное хранилище с поддержкой дедупликации (про устройство Mailion читайте здесь). В связи с этим мы постоянно следим за книжными новинками и актуальными темами современной бэкенд-разработки. Специальной литературы по теме Golang существует немало, однако с помощью наших разработчиков мы выбрали самые важные, профессионально полезные и увлекательно написанные издания.

Делимся рекомендациями книг под катом!

Открыть подборку книг
Total votes 28: ↑22 and ↓6+16
Comments7

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

Reading time8 min
Views18K
Мне 39 лет и с 19 работаю разработчиком и руководителем проектов, женат, есть ребенок. Всё норм, единственный нюанс – тело досталось с начальными параметрами гораздо хуже средних.
Когда ребенок рождается, его состояние оценивается по шкале Апгар 0-10. 7-10 – это норма, 0-2 балла — сильные отклонения в состоянии здоровья. У меня было – 2 балла. Мне повезло, и я выжил, но получил детский церебральный паралич, вторую группу инвалидности и справку о нетрудоспособности. Руки и ноги дергаются, говорю непонятно (но привыкнуть можно),  правая рука умеет только здороваться и зажимать ctrl, хожу как зомби.

Здоровье было всю жизнь не айс, однако тело реально посыпалось около 30, плюсом к ДЦП: гастрит, колит, простатит, аритмия, множественные экструзии межпозвоночных дисков, остеопороз, постоянный мышечный спазм всего тела, нарушение зрения, бессоница и др.  Когда я спросил у кардиолога, почему у меня в таком раннем возрасте развилась аритмия, она объяснила очень просто: ДЦП постоянно фигачит все мышцы, сердце – это мышца, просто до этой мышцы добрались не сразу.

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

Моя система состоит из трех компонентов:

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


Далее подробнее расскажу о системе.
Читать дальше →
Total votes 57: ↑56 and ↓1+55
Comments6

Хитрая и мстительная прокрастинация: кому мстим и зачем?

Reading time5 min
Views9.1K

Привет!
Я Даша, психолог, немедицинский терапевт и People Care Manager в Prequel. По долгу службы и по причине собственного интереса изучаю то, с какими переживаниями и трудностями сталкивается современный человек в окружающей нас реальности.

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

Не так давно в психологических статьях и публикациях начал использоваться термин, описывающий такие ситуации. Это новый тип всем нам знакомой прокрастинации, авторски названный «мстительной» или «из мести». На мой взгляд, таким названием подчеркнут ее разрушительный характер. Хочется «урвать» у кого-то или чего-то неопределенного кусочек свободного времени на развлечения, мнимый отдых — но жертвовать в итоге приходится собственным сном и бодростью на следующий день.

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

Читать далее
Total votes 10: ↑8 and ↓2+6
Comments8

Обновление процесса CI/CD: octopus deploy

Reading time9 min
Views4.6K
image Третья часть статьи об обновлении CI/CD процессов. 

На данном этапе у нас есть (по крайней мере должно быть) понимание того как будет работать CI, что мы имеем на входе, как из этого получить результат, и что нужно сделать чтобы выход билда стал полноценным модулем проекта и запустился в работу. А также установленный octopus (желательно LTS). В прошлой части рассматривался процесс настройки teamcity: всё что происходит с момента когда код попадает в репозиторий и до момента получения готового архива который можно распаковать, и в теории, он должен заработать.

Напоминаю оглавление:

Часть 1: что есть, почему оно не нравится, планирование, немного bash. Я бы назвал эту часть околотехнической.
Часть 2: teamcity.
Часть 3: octopus deploy.
Часть 4: за кадром. Неприятные моменты, планы на будущее, возможно FAQ. Скорее всего, тоже можно назвать околотехнической.
Читать дальше →
Total votes 3: ↑3 and ↓0+3
Comments0

Как вырастить тупого ребёнка (научно обоснованные вредные советы)

Reading time7 min
Views266K

Brain of someone described as an «idiot»

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

Попробуем разобрать эти верования с точки зрения доказательной медицины и пойдём от обратного.

Что мы подразумеваем под умственным развитием


Интеллект (ум) – это способность учиться, делать выводы и решать проблемы. Эти способности закладываются генетически, но развиваются благодаря внешним факторам с момента зачатия до конца жизни.

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

Итак, начнём растить не очень умного ребёнка, пользуясь достижениями современной науки.
Читать дальше →
Total votes 201: ↑178 and ↓23+155
Comments480

Information

Rating
Does not participate
Registered
Activity