Pull to refresh
3
0
tunelix2 @tunelix

User

Send message

20 лучших практик по работе с Dockerfile

Reading time13 min
Views41K

Эта статья содержит рекомендации по написанию Dockerfile и принципам безопасности контейнеров и некоторые другие связанные темы, например про оптимизацию образов.

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

К счастью, большинство потенциальных проблем мы можем решить еще на этапе разработки.

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

Читать далее

Пожалуйста, прекратите использовать антипаттерн UPSERT (SQL Server)

Reading time5 min
Views46K

Я думаю, что все уже знают мое мнение о MERGE и почему я держусь от него подальше. Но вот еще один антипаттерн, который я постоянно встречаю, когда требуется выполнить UPSERT (UPdate inSERT — обновить строку, если она существует, и вставить, если ее нет):

Читать далее

Скрипт выборки российских облигаций по параметрам

Reading time6 min
Views33K
Уже несколько лет я пользуюсь облигациями в качестве замены депозита, потому что процент дохода, который можно получить со вклада стабильно падает. В отличии от ситуации с депозитом, в облигациях всегда можно найти большую доходность. И в этой ситуации меня не устраивало только количество времени на механическую работу по поиску подходящих вариантов бумаг.


Работа скрипта по поиску облигаций на Московской бирже

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

Сделал это на Node.js с выводом полученных результатов в локальный html файл с интерактивной таблицей от Google Charts (а в случае, если JavaScript отключен в браузере, что например происходит при открытии этого html файла из мессенджера на iPhone, то отображается статическая версия таблицы, также сгенерированная скриптом).
Поиски замены вклада на Мосбирже

Плюсы интеграции Xiaomi Gateway 3 в Home Assistant

Reading time7 min
Views57K

Первая версия компонента XiaomiGateway3 для Home Assistant вышла 4 месяца назад, и с тех пор много всего изменилось. В прошлой статье я писал про создание компонента. А в этой статье расскажу, почему это решение так заинтересовало сотни пользователей.

Читать далее

Гидропоника. Выращиваем сверхострый чили и заставляем всех его есть

Reading time14 min
Views149K


Полтора килограмма термоядерного Тринидадского Скорпиона я в итоге собрал с одного куста на гидропонике.


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


Небольшая часть урожая


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


Сегодня в меню


  1. Что такое гидропоника и почему она гораздо проще, чем почва с червячками
  2. Никаких дорогих бутылочек. Мешаем компоненты по три рубля за ведро
  3. Питание растения как алгоритм
  4. Как быстро собрать прототип гидропонной установки
  5. Что такое capsicum chinense и как выжить при дегустации
Читать дальше →

Практическое руководство по разработке бэкенд-сервиса на Python

Reading time57 min
Views188K
Привет, меня зовут Александр Васин, я бэкенд-разработчик в Едадиле. Идея этого материала началась с того, что я хотел разобрать вступительное задание (Я.Диск) в Школу бэкенд-разработки Яндекса. Я начал описывать все тонкости выбора тех или иных технологий, методику тестирования… Получался совсем не разбор, а очень подробный гайд по тому, как писать бэкенды на Python. От первоначальной идеи остались только требования к сервису, на примере которых удобно разбирать инструменты и технологии. В итоге я очнулся на сотне тысяч символов. Ровно столько потребовалось, чтобы рассмотреть всё в мельчайших подробностях. Итак, программа на следующие 100 килобайт: как строить бэкенд сервиса, начиная от выбора инструментов и заканчивая деплоем.



TL;DR: Вот репка на GitHub с приложением, а кто любит (настоящие) лонгриды — прошу под кат.
Читать дальше →

Burp и его друзья

Reading time11 min
Views20K

В этой статье мы расскажем о полезных плагинах для Burp Suite Professional — инструмента для анализа веб-приложений. Плагинов много, и, чтобы помочь аудиторам сделать правильный выбор, мы составили список тех, которые сами чаще всего используем в работе.


img

Читать дальше →

Взлом и защита шифрования дисков LUKS

Reading time8 min
Views60K

Шифрование дисков предназначено для защиты данных в компьютере от несанкционированного физического доступа. Бытует распространённое заблуждение, что дисковое шифрование с этой задачей действительно справляется, а сценарии, в которых это не так, представляются уж слишком экзотическими и нереалистичными. В этой статье показано, что извлечение мастер-ключа шифрованного тома LUKS легко осуществимо на практике, и предложен (давно не новый) метод защиты.
Читать дальше →

Трехмерный движок в коде… ДНК

Reading time40 min
Views23K
UPD 29 ноября: Репозиторий с кодом ДНК выложен на GitHub.
github.com/pallada-92/dna-3d-engine

UPD 30 ноября:
В англоязычном твиттере заметили проект
Новость попала в топ-10 на HackerNews!






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

Ответ довольно неожиданный — lingua franca для моделирования сложных процессов в клетках является реакции вида
Эти реакции моделируются при помощи закона действующих масс, который одинаково работает и в химии, и в молекулярной биологии.

— Неужели при помощи этих примитивных реакций можно что-то программировать?
— Да, а то, что написано выше, вычисляет $B = \sqrt{A}$.

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

Потом я расскажу, как полученные реакции скомпилировать в код ДНК, который можно синтезировать в лаборатории и (если очень повезет) получить трехмерный куб из двумерного массива пробирок.

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

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

Как получить 9В/12В от зарядного с Quick Charge (на примере STM32)

Reading time3 min
Views60K

Чем может быть полезна быстрая зарядка


С увеличением ёмкости аккумуляторов телефонов потребовалось увеличить и мощность зарядных устройств, чтобы достичь маленького времени зарядки, для чего и нужно было увеличивать выходную мощность: напряжение, ток. Таким образом зарядные с Quick Charge 3.0 кроме 5 В могут выдавать 9В/12В/20В +возможность регулировки с шагом 0.2 В (до 12 В).


image

Ввиду распространенности ЗУ с этой технологией появляется интерес использовать их для получения повышенного напряжения без дополнительных преобразователей.

Читать дальше →

Игры с Wifi на ESP32

Reading time6 min
Views23K

image


На мысль сделать карманный инструмент для анализа WiFi сетей меня подтолкнула эта статья.


Спасибо им за идею. Мне как раз было нечем заняться.


Вся работа была выполнена в рамках хобби с целью получения удовольствия и расширения своих знаний в области сетевых технологий. Не торопясь, по 1..4 часа в неделю, с начала этого года.
Прикладное использование не планировал. Т.е. это НЕ инструмент для хакера.


На данный момент весь задуманный функционал работает. Все исходники, полностью готовые для сборки, выложены здесь. Там же инструкция по сборке и пр. В данной заметке я не буду дублировать информацию, выложенную на github. Расскажу только то, что считаю нужным описать отдельно.

Читать дальше →

Как я развивал аудирование с помощью интервального повторения. Мой опыт

Reading time6 min
Views15K
Всем привет. Весь прошлый год я развивал навык аудирования, используя интервальные повторения для более эффективного заучивания непонятых фраз. За это время концепция, которой я пользовался, постепенно эволюционировала, обросла методикой, софтом и подходом. Обо всем этом я и хочу рассказать общественности (т.к. всем заинтересованным друзьям я уже рассказал).


Читать дальше →

Как сэкономить на покупке ноутбука: Docker Remote API via TLS

Reading time6 min
Views27K
Совсем недавно я решился на покупку личного ноутбука. Разработка open-source проекта (приложение для Flipper) и смена места работы вынудили меня больше не использовать рабочий ноутбук для личных целей. И тут уже жалко было отдавать стоимость поддержанной Hyndai Solaris за ноутбук (на работе у меня топовая конфигурация 16" MacBook).



Поэтому решено было поумерить свой пыл и взять нищебродский самый дешевый MacBook Air 13" за 80 тысяч рублей. Однако, на mac Docker сжирает непомерное количество ресурсов, поэтому после покупки пришлось думать как же решить эту проблему. Сразу же пришла идея вынести Docker Engine куда-нибудь в онлайн. Сказано — сделано.
Читать дальше →

Распространенные ошибки безопасности в приложениях Laravel

Reading time14 min
Views20K

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

CyberPanda Team

Читать далее

Выбор генератора форм для Vue.js

Reading time6 min
Views14K

Уважаемый хабрачитатель, хочу поделиться с тобой опытом в выборе и использовании генераторов форм для Vue.js.



Введение


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


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


  1. Приложение имеет множество однотипных форм, где декомпозиция компонентов не оказывает должного эффекта, а использование copy & paste только ухудшает поддерживаемость;
  2. Приложение очень динамично развивается и требуется экономить время на реализации каждой новой фичи продукта в ущерб UX (User eXperience);
  3. Приложение находится на стадии прототипирования и большая часть функциональности будет изменена или удалена в ближайшее время.

Далее необходимо определиться со списком требований к библиотеке генератора форм (данный список может отличаться от ваших требований):


  1. Библиотека для Vue.js;
  2. Поддержка Element UI, желательно актуальной версии;
  3. Построение форм из JSON schema, с использованием валидаторов;
  4. Возможность локализации форм, включая ошибки валидации.
Читать дальше →

BERT — state-of-the-art языковая модель для 104 языков. Туториал по запуску BERT локально и на Google Colab

Reading time11 min
Views134K

image


BERT — это нейронная сеть от Google, показавшая с большим отрывом state-of-the-art результаты на целом ряде задач. С помощью BERT можно создавать программы с ИИ для обработки естественного языка: отвечать на вопросы, заданные в произвольной форме, создавать чат-ботов, автоматические переводчики, анализировать текст и так далее.


Google выложила предобученные модели BERT, но как это обычно и бывает в Machine Learning, они страдают от недостатка документации. Поэтому в этом туториале мы научимся запускать нейронную сеть BERT на локальном компьютере, а также на бесплатном серверном GPU на Google Colab.

Читать дальше →

Детекция изменений в сцене и сохранение видеофрагментов в формате h264 на Raspberry Pi без декодирования

Reading time6 min
Views7.6K


Добрый день. В этой статье я расскажу, далеко не в первый раз, как на Raspberry Pi 3 и более слабых платформах одновременно детектировать движение и сохранять/транслировать видео в формате H264. Я поделюсь с такими же новичками в мире Raspberry Pi, как и я, о том, что узнал сам за несколько дней, пока разбирался в способах решения задачи. Говорить буду о работе с камерой Raspberry Pi простым человеческим языком.

Читать дальше →

Измеряем индекс ультрафиолетового излучения UVA UVB

Reading time5 min
Views13K
Все мы любим солнце и конечно же знаем о вреде ультрафиолетового излучения для человеческой кожи. Очевидно, что на пляже нельзя долго загорать. Но вот совсем не очевидно, можно ли гулять под солнцем в футболке, а плавать, ходить по горам? После очередного «обгорания» от солнца в горах на Красной поляне встал вопрос — как бы измерить мгновенный индекс ультрафиолетового излучения и знать, когда пора укрыться в тени. В результате родился этот небольшой прибор — датчик уф излучения с рядом дополнительных функций.

Читать дальше →

SARS нерукотворный? Генеалогия уханьского коронавируса

Reading time73 min
Views293K

Не, ну какая рукотворность? Что за бред? Думал я, когда впервые услышал гипотезу о том, что Ковид-19 вызван то ли лабораторной утечкой, то ли вообще целенаправленной биоатакой. И каждый раз просто отмахивался от этих домыслов, когда они в очередной раз доплывали до меня в бурном потоке коронавирусного инфошума. Ну подумаешь, есть в Ухане институт вирусологии, мало ли.

В какой-то момент отмахиваться уже пришлось аргументированно, потому что сторонники рукотворности начали обосновывать свои тезисы о возможной искусственной природе вируса доводами из молекулярной биологии, и тут уже хотелось в пух и прах разбить их конспирологию холодными научными фактами. Уж если не как авторы статьи в Nature (казалось мне), то хотя бы как уважаемый мной Панчин.

И вот тут, в погоне за доводами против рукотворности вируса, меня и заразил вирус сомнений. В чём, собственно, причина сомнений? В том, что чем глубже погружаешься в деятельность коронавирусологов за последние 15–20 лет, тем лучше понимаешь, что создание ровно таких химер как CoV2 у них было обыденным делом. А CoV2 — это очевидная химера, основанная на летучемышином штамме RaTG13, у которого в шиповидном белке место связывания с рецептором (RBM) заменено с летучемышиного на панголиний, и вдобавок врезан особый участок из 4-х аминокислот, создавший furin cleavage site, который, как ранее выяснили вирусологи, значительно расширяет «репертуар» вируса в плане того, в чьи клетки он может проникать. Скорее всего, именно благодаря этому новому фуриновому сайту, новый мутант и сумел перескочить с исходных носителей на людей.

С учётом тех высот, которых сегодня достигла генная инженерия, синтетически собрать CoV2 по вышеописанной методике не составило бы труда даже начинающему специалисту. Ведь вирусологи, включая руководителя коронавирусного направления в Уханьском институте вирусологии Ши Чжэнли, такими вещами уже неоднократно занимались — как заменой RBM у одного вида вируса на RBM из другого

Information

Rating
7,734-th
Registered
Activity