Это обзор некоторых полезных фич и чек-лист по мониторингу не самых очевидных моментов, чтобы минимизировать потерю сообщений, проходящих через ELK (Elasticsearch, Logstash, Kibana). В статье мы не коснемся тем, связанных с программами-коллекторами (посредством чего сообщения попадают в Logstash) из-за их великого разнообразия: речь пойдет только о core-компонентах. В конце материала приведен небольшой cheat sheet с популярными запросами к Elasticsearch API.
Веб-программист
Лучшие практики при написании безопасного Dockerfile
В данной статье мы рассмотрим небезопасные варианты написания собственного Dockerfile, а также лучшие практики, включая работу с секретами и встраивание инструментов статического анализа. Тем не менее для написания безопасного Dockerfile наличия документа с лучшими практиками мало. В первую очередь требуется организовать культуру написания кода. К ней, например, относятся формализация и контроль процесса использования сторонних компонентов, организация собственных Software Bill-of-Materials (SBOM), выстраивание принципов при написании собственных базовых образов, согласованное использование безопасных функций, и так далее. В данном случае отправной точкой для организации процессов может служить модель оценки зрелости BSIMM. Однако в этой статьей пойдет речь именно о технических аспектах.
Как мы пробивали Великий Китайский Фаервол (ч.2)
Привет!
С вами снова Никита — системный инженер из компании SЕMrush. И этой статьей я продолжаю историю про то, как мы придумывали решение обхода Китайского Фаервола для нашего сервиса semrush.com.
В предыдущей части я рассказал:
- какие появляются проблемы после того, как принимается решение «Нам нужно сделать так, чтобы наш сервис работал в Китае»
- какие проблемы есть у китайского интернета
- зачем нужна ICP-лицензия
- как и почему мы решили тестировать наши тестовые стенды с помощью Catchpoint
- какой результат дал наш первый вариант решения, базирующийся на Cloudflare China Network
- как мы нашли баг в DNS Cloudflare
Эта часть — самая итересная, на мой взгляд, потому что сосредоточена на конкретных технических реализациях стейджингов. И начнем мы, а точнее продолжим, с Alibaba Cloud.
Sampler. Консольная утилита для визуализации результата любых shell команд
В общем случае с помощью shell команды можно получить любую метрику, без написания кода и интеграций. А значит в консоли должен быть простой и удобный инструмент для визуализации.
Наблюдение за изменением состояния в базе данных, мониторинг размера очередей, телеметрия с удаленных серверов, запуск деплой скриптов и получение нотификации по завершению — конфигурируется за минуту простым YAML файлом.
Код доступен на гитхабе. Инструкции по установке — для Linux, macOS и (экспериментально) Windows.
Как безопасно программировать в bash
Почему bash?
В bash есть массивы и безопасный режим. При правильном использовании bash почти соответствует практикам безопасного кодирования.
В fish сложнее допустить ошибку, но там нет безопасного режима. Поэтому хорошей идеей станет прототипирование в fish, а затем трансляция с fish на bash, если вы умеете правильно это делать.
Предисловие
Данное руководство сопровождает ShellHarden, но автор также рекомендует ShellCheck, чтобы правила ShellHarden не расходились с ShellCheck.
Bash — не тот язык, где самый правильный способ решить проблему одновременно является самым простым. Если принимать экзамен по безопасному программированию в bash, то первое правило BashPitfalls звучало бы так: всегда используй кавычки.
Главное, что нужно знать о программировании в bash
Маниакально ставить кавычки! Незакавыченная переменная должна расцениваться как взведённая бомба: она взрывается при контакте с пробелом. Да, «взрывается» в смысле разделения строки на массив. В частности, расширения переменных вроде
$var
и подстановки команд вроде $(cmd)
подвергаются расщеплению слов, когда внутренняя строка расширяется в массив из-за расщепления в специальной переменной $IFS
с пробелом по умолчанию. Это обычно незаметно, потому что чаще всего результатом становится массив из 1 элемента, неотличимый от ожидаемой строки.Как наконец выпустить свою первую игру
Есть такая вероятность, что в этом году вы наконец-то решили сделать собственную игру. Отличная цель! И она определённо того стоит!
Вы уже наверно много раз слышали один и тот же совет от сотен других людей: делайте игру простой. В своей замечательной статье Эдмунд Макмиллен писал «если вы новичок, то начинайте с малого, а потом сделайте игру ещё меньше». В столь же хорошем посте ему вторит Томми Рефенес: «Просто сделайте свою игру так, как можете, начинайте с малого, а об остальном думайте потом».
На канале Extra credits есть хорошее видео о том, что же значит «маленькая игра».
Но «простой» — это не стандартная единица изменения. Если вы никогда до этого не делали игр, то откуда вам знать, насколько проста или легка игра? Означает ли «простая» MMO ВСЕГО с тремя играбельными классами? Лёгкая игра — это открытый мир всего с двумя типами биомов и тремя деревьями технологий?
Я понимаю вашу растерянность.
В целом я выпустил пять игр и перед началом разработки трёх из них я думал, что они будут «простыми». Во всех трёх случаях я ошибался. На завершение первой готовой игры мне понадобилось больше полутора лет. Это было не «просто».
Самую распространённую проблему провалившихся игровых проектов я вижу в том, что их создателей затягивает в болото бесконечной разработки, они теряют интерес и мотивацию, а затем отказываются от своей мечты стать разработчиком игр.
Оказывается, в разработке игр полно скрытых липучих ловушек, которые на первый взгляд кажутся простыми, но вытягивают у разработчиков месяцы и годы работы, пока те, наконец, не откажутся от проекта.
Хорошая новость заключается в том, что вы можете создать интересную игру, при этом не попадаясь во все эти мешающие разработке ловушки.
Разработка браузерной онлайн игры без фреймворков и движков
Привет, Хабр!
В этом посте будет описан процесс разработки онлайн игры на чистом javascript и WebGL (без фреймворков и движков). Будут рассмотрены некоторые алгоритмы, техники рендеринга, искусственный интеллект ботов и сетевая игра. Проект является полностью опенсорсным, в конце поста будет ссылка на репозиторий.
Архитектура растущего проекта на примере ВКонтакте
Алексей Акулович объясняет жизненный путь высоконагруженного проекта на PHP. Это — расшифровка Highload ++ 2016.
Меня зовут Лёша, я пишу на PHP.
К счастью, доклад не об этом. Доклад будет про ретроспективу развития сети — того, как проект развивался. Какие решения капитанские или весьма специфические для нашей нагрузки мы применяли, что можно использовать в других проектах, которые испытывают нагрузки.
Начнём.
Делать ли мобильную версию? 5 распространенных проблем, которые решает адаптивная верстка. Опыт Яндекса
C 2007 года очень быстро растёт количество используемых в мире смартфонов. В числе прочих причин резкого скачка популярности несколько лет назад покупателей привлекла способность этих устройств отображать сайты так, как они выглядели на экранах компьютеров. Но, купив смартфон и начав им пользоваться, люди отмечали, что для чтения отдельных блоков текста на относительно небольшом экране приходилось постоянно масштабировать страницу. Плюс к тому, многие элементы управления сайтов оказалось неудобно использовать. Это происходило потому, что страницы не были рассчитаны на управление с помощью прикосновений к экрану и зачастую требовали компьютерную мышь или другой манипулятор. Для решения этих проблем начали появляться отдельные версии сайтов, предназначенные исключительно для устройств с маленьким экраном. При этом пользователям оказалось не нужно знать адреса мобильных сайтов. Вместо этого сервер считывает информацию об устройстве из обращённого к нему запроса и определяет, какую версию предпочтительнее отдать посетителю.
Вскоре многим стало понятно, что разработка отдельной мобильной версии — это долго и дорого в поддержке. Кроме того, это противоречит идеологии веба, который подразумевает, что размеченный документ универсален и может быть прочитан практически на любом устройстве вывода. Для решения возникшего противоречия в CSS был добавлен стандарт Media Queries. Появились новые возможности по определению особенностей устройства, в частности появилась возможность применять различное оформление страницы для произвольных размеров окна.
ES6 по-человечески
От переводчика:
Предлагаю вашему вниманию перевод краткого (действительно краткого) руководства по ES6. В нём можно ознакомиться с основными понятиями стандарта.
Оригинальный текст в некоторых случаях был дополнен или заменён на более подходящий источник. Например, часть определения ключевого слова const
является переводом документации с MDN.
Чтобы лучше разобраться в некоторых концепциях (для выполнения качественного перевода) использовалось описание стандарта на сайте MDN, руководство "You Don't Know JS: ES6 & Beyond" и учебник Ильи Кантора.
Перевод выложил на Гитхаб: https://github.com/etnolover/ES6-for-humans-translation. В случае нахождения ошибок пишите, исправлю.
Ссылка на оригинальный текст: https://github.com/metagrover/ES6-for-humans
Update 22.07.2016: добавил опрос про const
Содержание
let
,const
и блочная область видимости- Стрелочные функции
- Параметры по умолчанию
- Spread/Rest оператор
- Расширение возможностей литералов объекта
- Восьмеричный и двоичный литералы
- Деструктуризация массивов и объектов
- Ключевое слово super для объектов
- Строковые шаблоны и разделители
- for...of против for...in
- Map и WeakMap
- Set и WeakSet
- Классы в ES6
- Тип данных Symbol
- Итераторы
- Генераторы
- Опрос: в каком регистре писать
const
?
Делаем свой friGate с анонимностью и без рекламы
Всем хороши плагины для обхода блокировок вроде популярного friGate, но есть у них один минус — любят встраивать свою рекламу и в перспективе следить за всем, что вы делаете в интернете.
VPN имеет свои недостатки: либо весь трафик будет ходить через удаленный сервер, либо нужно будет настраивать сложные правила роутинга.
Ssh-туннель на постоянно засыпающем и просыпающемся ноутбуке приходится каждый раз перезапускать.
Есть решения вроде autossh, но настоящего перфекциониста они не удовлетворят.
Попробуем добиться удобства, аналогичного friGate с использованием сервисов, находящихся полностью под нашим контролем.
Нам понадобятся: выделенный сервер с Linux/FreeBSD (я использовал Ubuntu), домен, letsencrypt, squid и немного магии PAC-файлов.
Домен можно взять бесплатный 3-го уровня от вашего хостера или тут: freedomain.co.nr, registry.cu.cc.
Squid поддерживает шифрованое соединение с браузером — именно то, что нужно для такого случая.
Эта возможность почему-то практически неизвестна широкой публике, поэтому появился этот пост.
Улучшаем свой английский: изобретаем субтитры заново
1. Intro
— Татьяна Леонидовна, а можно, мы посмотрим это кино с субтитрами?
— Нет, малолетние дятлы, мы тренируем ваше слуховое восприятие, поэтому кино вы будете смотреть без них! С субтитрами вы будете только читать текст и не слушать.
— Татьяна Леонидовна, но без субтитров мы больше половины не понимаем!
— А вот это уже ваши проблемы.
Начало 2000-х, диалог с учителем во французской спецшколе, Санкт-Петербург.
Миссия невыполнима: геолокация на Android без сжирания батарейки
Пользователь: это невозможно, GPS съест батарейку
Джуниор: это возможно, используй Geofences
Сеньор: есть варианты и получше
На картинке сначала в одну, а потом в другую сторону одновременно с одним человеком «прогулялись» 6 одинаковых телефонов. Но какой разный результат!
Как продать приложение, которое не приносит прибыль? И сколько оно стоит?
Создание веб-сайта. Курс молодого бойца
Полезные сниппеты для Nginx конфигов
Доброго времени суток, уважаемые хабравчане! В Elasticweb мы негласно ратуем за Nginx и, наверное, мы одни из немногих хостингов, которые не поддерживают Apache и .htaccess соответственно. В связи с этим, большое количество обращений в тех. поддержку связано с оказанием помощи в написании конфигурационного файла для Nginx. Поэтому мы решили собрать коллекцию полезных сниппетов и коллекцию готовых Nging конфигов для наиболее популярных CMS/CMF/Фреймворков на PHP.
Обучаем сотрудников английскому: опыт Edison
«Moving from the one-room schoolhouse to the one-world schoolhouse is now a reality» (Cisco Systems)
«One-room schoolhouse» — это американская сельская школа времен Марка Твена; в такой учился ещё Том Сойер — формат обучения, который до сих пор знаком каждому, кто ходил на какие-либо курсы, включая обучение английскому. Не слишком-то прогрессивно для мира облачных сервисов и глобальных видеоконференций?
Мы учились английскому у этого парня
Бесплатные SSL-сертификаты — теперь на 3 года от WoSign
Вчера обнаружил, что WoSign дает бесплатно сертификат, теперь уже на 3 года.
Про модель, логику, ООП, разработку и остальное
Потому что так написано в книжках или так говорят авторитетные личности? Какие ВАШИ проблемы решает тот или иной подход/паттерн?
Даже то, что на первый взгляд кажется очевидным, порой бывает очень сложно объяснить. А иногда, в попытке объяснения, приходит понимание того, что очевидные мысли были и вовсе ошибочны.
Давайте попробуем взять какой-нибудь пример и изучить на нем эти вопросы со всех сторон.
Information
- Rating
- Does not participate
- Location
- Кемерово, Кемеровская обл., Россия
- Registered
- Activity