BEARlogin – Telegram
BEARlogin
707 subscribers
159 photos
29 videos
6 files
214 links
Примус починяю.

Канал с хокку тут https://news.1rj.ru/str/devs_hokku

Рекламу не беру
Download Telegram
У нас в Huntica появилась интересная вакансия https://bearlogin.notion.site/Trainee-Juniour-Frontend-Developer-bda45f185d8e483d844680df4d875b04 если интересно, пишите :)
Webpack aliases в IDE

Обычно IDE сами автоматически резолвят алиасы, если есть webpack. Но если мы используем другой бандлер, например Vite, то необходимо прописать в корне проекта файл jsconfig.json, где указать paths:
{
"compilerOptions": {
"baseUrl": ".",
"paths": {
"@/*": ["./src/*"],
"~/*": ["./src/*"]
}
}
}
Laravel Test Mock With Constructor

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

Подробней тут https://bearlogin.notion.site/Laravel-Test-Mock-With-Constructor-ff5904277d86458ca8bb1429c1e102fa

#advices #tests #laravel #php
Makewarnotpeace

Только сегодня прилетели новости, что не надо обновлять зависимости. Как минимум может прилететь эта шляпа https://www.npmjs.com/package/peacenotwar, а как максимум шифровальщик или удаление всех ваших файлов. Чекните этот тред https://github.com/vuejs/vue-cli/issues/7054

Upd. Бро прислал ссылку, где собирают список зловредов https://docs.google.com/spreadsheets/d/1H3xPB4PgWeFcHjZ7NOPtrcya_Ua4jUolWm-7z9-jSpQ/htmlview?usp=sharing&pru=AAABf7rCuSo*bIOpMXcSv6-ORZvEudbuAw

#ебанулись #оборзели #thisiswar
Бей своих, чтобы чужие боялись

Американское НКО пострадало от автора node-ipc

https://github.com/RIAEvangelist/node-ipc/issues/308#issuecomment-1070975082
Храните lock файлы в репозитории

Вот просто всегда заливайте lock файлы в git. Я это делал еще до этой всей истории с малварями, и всем советовал. Если у вас вдруг есть репа без лок файла, срочно залейте его туда.
👍2
BEARlogin pinned «Ментор vs самообучение Сейчас все больше людей понимают, что пройдя курсы, которые обещают сделать вас как минимум джуном за 3 месяца, а то и сразу миддлом с нуля, в лучшем случае только начинаешь понимать что то на уровне стажера. С трудоустройством, естественно…»
Хроники первой мировой интернет войны

Обсуждали сейчас в техдирском чате https://news.1rj.ru/str/ctorecordschat как жить в таких условия. Собрал список рекомендаций.

- lock файлы хранить в репозитории
- Изоляция сборки в контейнерах в том числе и для промежуточных сборок на машинах разработчиков, хотя бы до появления lock файла.
- Форки всех библиотек (по возможности) и контейнеров к себе.
- Зеркалирование репозиториев пакетов.
- Включение в CI как минимум поиска по ключевым словам, UTF символам с изображением украинского флага и сравнение списка файлов с вайтлистом.
- Ресерч по инструментам анализа кода.

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

Пишите свои советы в комменты
👍4
Laravel Facades

При работе с Laravel приходится много работать с Facades и многие их не любят, так как непонятно, с каким реальным классом они работают. Но есть способ узнать это. Например так мы узнаем, какой класс используется для URL:

\dd(get_class(\Illuminate\Support\Facades\URL::getFacadeRoot()));

#laravel #facades #advices #backend #php
Как оплатить Hetzner

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

У Hetzner есть возможность оплатить через Bank Transfer.
Тема работает со Сбер, Тинькофф и Альфа.

У Сбера вроде коммисия самая маленькая - 150р. Тинькофф берут 15 евро, Альфа 0.9%

Тут тема https://vc.ru/ask/376006-kak-oplachivat-hosting-hetzner-kuda-perehodit
👍1
Фризы SSH терминала

Я думаю все замечали, что если на какое то время оставить в терминале SSH подключение, то через некоторое время оно перестает отвечать, и либо отваливается, либо фризит терминал.

Чтобы это фиксануть, нужно в файле /etc/ssh/ssh_config дописать конфиг

Host *
ServerAliveInterval 100

Клиент будет отправлять пустой пакет каждые 100 секунд и не даст умереть соединению

#devops #ssh #advices
👍6
Yarn и проблема с install в CI окружениях

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

Обычно мы получаем такие ошибки:
error An unexpected error occurred: "ENOENT: no such file or directory, open '/usr/local/share/.cache/yarn/v6/npm-esbuild-linux-ppc64le-0.14.38-dceb0a1b186f5df679618882a7990bd422089b47-integrity/node_modules/esbuild-linux-ppc64le/.yarn-metadata.json'".

Эта проблема решается флагом --network-concurrency 1, которая ограничивает конкурентные запросы, правда при этом страдает скорость билда.

А вы как решаете такие проблемы?

#yarn #ci
👍1
Кеширование сборки докера в multistage конфигурациях

В CI билдить приложение можно как в окружении runner, так и в docker in docker.

Если в первом случае мы можем сделать service specific конфигурацию, настроить кеши и т.д. То во втором случае мы будем в меньшей степени зависить от конкретного CI сервиса и не придется для теста билда гонять CI.

Но при билде docker-in-docker возникает вопрос производительности и кеширования.

Универсальный способ - спулить последний образ и использовать его как кеш.

Вот пример из документации Gitlab https://docs.gitlab.com/ee/ci/docker/using_docker_build.html

Но если Dockerfile содержит несколько stage, то данный вариант не будет работать, так как кешироваться будет только последняя стадия.

Подробней тут https://bearlogin.notion.site/multistage-88aab91f9848490ea1b41bf87b23b917

#docker #devops #ci #cache
👍4
Grepper

Недавно наткнулся на такой сервис https://www.codegrepper.com/

Его суть, что любой человек может сохранить code сниппет как ответ на вопрос.

Например, ищу я как в vue3 сделать компонент с v-model:

В 1 клик сохраняю этот сниппет, и теперь любой у кого установлен плагин grepper увидит этот ответ при вводе вопроса в гугл.

Записал небольшое демо https://www.loom.com/share/a632fb66dc214ac3893f0c892c1560f0
👍5
Идемпотентность

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

По этой теме очень советую статью от Яндекса https://habr.com/ru/company/yandex/blog/442762/

#api #backend #arcitecture
👍11
Обратная связь

Буду очень признателен за обратную связь по постам - вам секундное дело жмакнуть 👍👎, а я буду понимать, насколько релеватную инфу выкладываю. Спасибо!
👍6
Сегодня узнал что такое ханипот, как говорится и в мемах есть полезная информация
Forwarded from ДЕВОПСИНА | DevOps | Linux
This media is not supported in your browser
VIEW IN TELEGRAM
Пентестер находит бекдор, но это всего лишь ханипот
👍9
Определение области применения

В предыдущем посте в книге про API описан хороший метод аналитики задач:

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

Какую проблему мы решаем? Можем ли мы чётко описать, в какой ситуации гипотетическим потребителям-разработчикам нужен наш API?

Какую проблему мы решаем? А мы правда уверены, что описанная выше ситуация — проблема? Действительно ли кто-то готов платить (в прямом и переносном смысле) за то, что ситуация будет как-то автоматизирована?

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

Какую проблему мы решаем? Правда ли, что решение, которое мы предлагаем, действительно решает проблему? Не создаём ли мы на её месте другую проблему, более сложную?" https://twirl.github.io/The-API-Book/docs/API.ru.html#chapter-8

Особенно мне нравится пункт 4. Действительно бывают случаи, когда вместо одной проблемы создаем другую, городим костыли и т.д.

#product_management #development
👍4🔥2