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

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

Рекламу не беру
Download Telegram
Когда думаешь, что лучше быть не может, со дна стучат...
😁3
Jetbrains Fallback Version

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

И не нужно привыкать к VSCode и его ужасному процессу дебага ...

P.S. от комрада - можно на степике получить лицензию allProduct и обновлять продукт до последней версии, если очень сильно нужна последняя версия (надо начать и проходить курс и код придет на почту в течении суток)

#advices #ide
👍6🔥2😢1
1YALCJ6HI4 - for 2018.2 or later.txt
2.7 KB
Кстати вот мой ключ для PhpStorm 2022.2 для оффлайн использования, можете юзать :)

Если что PhpStorm — это WebStorm + поддержка Php https://www.jetbrains.com/shop/download/PS/2022200

#халява #phpstorm
👏5😢3🔥2
Кароч, вот вам мозги размять и потренировать внимание
👍9
Наши чатики

Напоминаю, у нас есть чатик взаимопомощи по WebDev и всему что с ним связано https://news.1rj.ru/str/junior_happens
Там не бьют даже за глупые вопросы :)

Так же, для более продвинутых есть чатик по архитектуре https://news.1rj.ru/str/software_architecture_chat

Залетайте :)
🔥3👍2👏2
Ой, друзья....
Столько классных мыслей к рассуждению словила за понедельник и вторник.
Очень хочу поделиться. И если будет фидбек в комментариях, буду очень рада🤗

История первая
(еду на работу, смотрю на ютубе интервью на одном из IT каналов про провал разраба в крупной компании)

Контекст: программист переехал из РФ в Америку с женой и детьми. Ему компенсировали переезд, выделили "бонус" на первое время. В оффере есть условие, что если человек увольняется сам в течение первого года работы, или качество работы не устраивает и с ним расстаются, то человек должен вернуть всё.
Спустя 4 месяца менеджер программиста вызывает его к себе и говорит примерно так: "всё друг, тут плохо, тут, и вот тут. Исправишь за 6 недель - молодец. Не исправишь - расходимся и деньги возвращай".
Программист в шоке. Он сохранил все полученные средства, но после оплаты налогов, ему надо вернуть в два раза больше, чем есть на руках.
Герой интервью идет к своему менеджеру и говорит что-то из серии:" ну ты пойми, я ж новенький, онбординга нормального не было, а у меня жена, два ребёнка".

А потом сам герой добавляет, что будь у него менеджер коренной американец, а не мигрант, то ему бы ответили так: "ты оффер читал? Ты сам принял решение переезжать? А детей мы тебя заставляли рожать? Вот и всё. Не грузи нас своими проблемами".
Однако герою "повезло. Его руководитель тоже мигрант, поэтому ответил так : " я все понимаю. Но вот твои задачи на 6 недель".

А как дело обстоит в России, и, возможно в странах СНГ?
" ты ж мой хороший. Ты бедняжка релоцировался, чтобы жить в прекрасном климате, а карта теперь не работает. Ок, работадатель придумает как помочь.
Конечно, конечно, работаешь ночью из-за маленького ребёнка, поэтому ошибки в отчётах. Все понимаем."

Вот такая колоссальная разница в отношении к сотрудникам, у которых проблемы.
К слову, в РФ сотрудника нельзя официально вернуть в режим испытательного срока, чтобы потом уволить, а в USA это нормальная практика.

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

Вот чисто интересно, была бы такая практика полезна у нас?

Ссылка на интервью https://youtu.be/ljzbl_olqSo
👍5
Комрад скинул игру, написанную на Elm https://kaaarot.com/ - залипательно :)
🔥4
IMUTENVRV - Leviathan

Моя группа выпустила новый трек, я на микрофоне :)

https://band.link/imutenvrv - ссылки на стрим сервисы
Ютуб - https://www.youtube.com/watch?v=0Cjce1FbCGo&list=OLAK5uy_msOLG5gkRjgVmCjXSlkJiDFLYq3sH1vDQ

#музыкальнаяпауза
🔥11
Forwarded from ДЕВОПСИНА | DevOps | Linux
This media is not supported in your browser
VIEW IN TELEGRAM
😁8👏3
Хороший туториал по миграции с CRA на Vite https://cathalmacdonnacha.com/migrating-from-create-react-app-cra-to-vite

Собсно кто не в курсе, CRA изначально не планировался для продакшна, но очень много продакшнов его юзают. И сейчас в обсуждении замена рекомендации по дефолту и для новичков на Vite https://github.com/reactjs/reactjs.org/pull/5487

Я кстати давно еще советовал юзать Витю вместо CRA, но на меня там сразу ополчились разные идейные элементы, чой то я тут посмел джунам советовать вражеский инструмент :)

#react #vite
👍8
Задача по JS

Упрощенный пример из реальной жизни:

У нас есть Room который принимает Singnalling с Transport. Когда мы получаем событие offer через Transport, то должны обработать сообщение, которое пришло конкретному пользователю

Но функционал не работает. Должно быть как на скриншоте.

Попробуйте найти багу :)

https://codesandbox.io/s/dreamy-smoke-fgkh2v?file=/src/index.js
👍5
Псс... есть варик залететь в крутой стартап с крутыми фаундерами на правах ко-фаундера!
Проект выходного дня, фултайм не нужен.
Из особенностей - Elm на фронте https://elm-lang.org/.
Даже если не знаешь его (я бы удивился, если бы знал), но есть желание его изучить, то пиши мне в лс @bearlogin :)

P.S. хороший гайд по Elm https://elmprogramming.com/who-this-book-is-for.html

P.P.S. если знаешь React, тоже пиши, так как есть вариант написать часть проекта на React или вообще все переписать...

P.P.P.S - почему Elm? Потому что так исторически сложилось...

#стартап #elm #react
👍5
Forwarded from melikhov.dev
Сегодня полдня спорили JS синхронный или асинхроннный. Так вот, совершенно не важно, как вы его называете, важно другое — понимание, как работает рантайм, в котором ваш JS запущен. Да, сам язык ECMAScript не обладает встроенными асинхронными апишками (ок, мне тут говорят про Атомики. Поговорим когда они будут везде!). Всё, что вы делаете в нём происходит синхронно. Максимум можно отбросить что-то в очередь микротасок — таким образом мы поменяем порядок обработки, но не освободим Event Loop. Цепочка из коллбеков вручную созданных промисов так и останется крутиться в фазе микротасков. Следующая итерация внешнего event loop не наступит. Из коробки мы не можем сказать «Эй VM, вот тебе корутина, выполни её в соседнем треде и верни результат по готовности». Нет у нас ничего для этого. Мы можем очень сильно упороться и написать свой Event Loop с прерываниями внутри JS — вот это мы можем да.

Таймеры, setImmidiate, функции, возвращающие промисы — всё это прилетает к нам из окружения. Именно платформа, где мы запускаем наш JS предоставляет работу с другими тредами и даёт нам EventLoop. В спецификации самого ECMAScript нет никаких таймеров и фечей — всё это внешние апишки. Есть отдельные ребята, попавшие в спеку — например, динамические импорты. Но их тоже крутит внешний рантайм, не сам движок JS.

Как работает код на node.js?

Мы выполняем небольшой синхронный код на старте и заряжаем задачи во внешние API. Например, задачу слушать какой-то порт. К это задаче мы привязываем коллбек. Дальше где-то во внешнем мире другой код, написанный на другом языке (на плюсах, например), в другом треде слушает порты. Между внешним миром и нашим JS-кодом крутится эвент луп. Он проверяет, не сработал ли триггер и вызывает соответствующий коллбек в JS. Коллбек снова синхронно выполняется (и может поставить новые задачи в планировщик). Коллбек это реакция на то, что во внешнем мире что-то произошло. Что случится, если коллбек выполняется слишком долго? Например, мы запустили очень большой цикл? Event loop будет стоять и ждать выполнения этой синхронной операции. Ничего не будет происходить. Никакие внешние запросы не будут обработаны, никакие таймеры не сработают. В нашем Event Loop возникнет лаг.

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

Да, нам нужно превращать синхронные операции в асинхронные. Встроенных средств в языке для этого нет, но есть во внешней среде: таймеры и setImmidiate, например. Мы можем буквально сказать — выполни этот код в следующем цикле. Или, иначе говоря, «вызови коллбек когда внешний таймер сработает через 0ms (т.е. в следующем цикле)». Маленькие кусочки нашего синхронного кода будут вызываться по чуть-чуть и мы дадим Event loop время размотать накопившиеся очереди и вызвать другие коллбеки.

А как померить лаг? Мы же должны следить за ним. Ну, конечно, мы можем взять встроееный метод perf_hooks.monitorEventLoopDelay . Но давайте подумаем, как это можно сделать на коленке? Очень просто! Берём текущий таймстамп в высоком разрешении, вызываем setTimeout(fn, 0) и в его коллбеке снимаем таймстамп и измеряем разницу. Время, через которое сработает коллбек таймера с ожидаемо нулевой задержкой и есть наш EventLoop-лаг.

Итого, мы действительно пишем асинхронный код каждый день. И эту замечательную асинхронность нам даёт рантайм, котором наш JS запущен. Этот рантайм содержит и интерпретатор языка и EventLoop и работу с I/O. Потому Нода это не просто V8, это V8 + libuv. А Deno это V8 + ядро на Rust + Tokio.
👍11
Искал чем почистить свою убунту, нашел такую утилиту https://www.bleachbit.org/ мб кому пригодится, эффективно вычищает всякие кеши, и прочий мусор, освободил 150гб :)

P.S. комрады в комментах посоветовали подобное для Мака - omnidisksweeper https://www.omnigroup.com/more
👍10
Helm чарты и удаленное API Kubernetes

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

Error: unable to build kubernetes objects from current release manifest: resource mapping not found for name: "blocks" namespace: "" from "": no matches for kind "Ingress" in version "networking.k8s.io/v1beta1"
ensure CRDs are installed first

В первый раз я руками чистил релизы, удалял все секреты, деплои, сервисы и т.д. Манкей джоб кароч.
Но сегодня, я нашел такую штуку https://github.com/helm/helm-mapkubeapis которая позволяет обновить helm релиз метадату и пофиксить deprecated или removed API!
Спасибо этому комменту https://github.com/helm/helm/issues/11513#issuecomment-1404101041

#helm #kubernetes #api
👍4
Перевожу home на NVME диск, просто офигел сколько файлов хранится в node_modules в проектах. А за 3 года существования моей убунту проектов накопилось под сотню... В общем начал руками удалять node_modules, но быстро забил на это дело, нашел такую утилиту https://github.com/voidcosmos/npkill где можно прям в визуальном режиме удалять node_modules

В общем пакетов было под 20Gb, а у вас сколько? :)

#node #clean
👍5😁1
Стартап

Значит рассказываю про стартап, в который я недавно искал людей.
Спойлер: еще есть шанс залететь и в течении 2 лет стать долларовым миллионером (на полном серьезе).

О проекте:
Это https://facelink.cc/ - NoCode платформа для создания видеоворонок, новый способ создать сайт в современном видео формате, это как Tilda+TikTok.
Это реально востребованный продукт, который уже имеет платящих клиентов и заявки от инвесторов.
Его создали основатели MakeTornado (https://www.maketornado.com/) и CallbackHunter, реально крутые ребята, которые реально шарят в венчуре, финансах и бизнесе, и имеют опыт работы в инвест комитетах.

Текущая версия — это MVP и она имеет определенные недостатки, которые не позволяют дать взрывной рост и работать с клиентами корпоративного уровня и масштабироваться до мира.

По-этому сейчас мы расширяем и укомплектовываем команду и делаем highload версию сервиса.
Мы отказались от Elm и делаем фронт на React!

Про стек расскажу:
Back: микросервисы на nestjs, graphql (сейчас переезжаем на tRPC), kafka, redis
Front: React, Typenoscript
- Все это в монорепе на turbo
- Билдиться в Gitlab
- Инфра в кубере с использованием GitOps техник с FluxCD

Cейчас нам нужен крутой React разраб с амбициями гангстера, который понимает, что на работе он не разбогатеет за всю жизнь. И ему не жалко 15-20 часов своего драгоценного времени. Который может пилить фичи просто основываясь на пользовательских историях без детального описания. Который понял, что уперся в потолок и хочет не просто немного подняться, а пробить его к хуям собачьим.

Вот примеры как это работает в живую:

Виджет на сайте:
1. https://geotermo.com
2. https://profg.fit/
3. https://www.fuseservice.com

Как видео-сайт:
4. https://facelink.cc/sgvs7zsyw/
5. https://facelink.cc/6adgsvj38/
6. https://facelink.cc/k777iasww/
7. https://facelink.cc/w5bpdxxwn/
8. https://facelink.cc/p31bxbxmt/

Как инструмент сбора видео-отзывов:
9. https://facelink.cc/hdysetqwh/
10. https://facelink.cc/wdvcgzdo7/

Этот продукт ждут большие бизнесы и блогеры-миллионики. Такой шанс дается очень редко.

Пиши мне в ЛС @bearlogin

#стартап #врывайся
🔥10😁4👍1
Фраза дня: "Вы слишком узко ширите"

P.S. в Facelink все еще можно ворваться, пишите в лс @bearlogin
😁4
Автоматическое обновление Chrome в Ubuntu

Чот надоело руками обновлять, а не обновлять не получается — чуть что, сразу авторизации везде слетают и прочие оказии...

1. Редактируем файл
sudo nano /etc/apt/sources.list.d/google-chrome.list
2. Добавляем туда эту строку
deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main
3. Скачиваем и добавляем ключ
wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | sudo tee /usr/share/keyrings/google-linux-signing-keyring.gpg >/dev/null
4. Обновляем список пакетов
sudo apt update
5. Устанавливаем Chrome
sudo apt install google-chrome-stable

Теперь хром должен обновляться автоматически, но если нет, то посмотрите в сторону unattended-upgrades

#ubuntu #advices
👍1
Что нового в 20 ноде
Из интересного - нативный тест раннер вышел в стейбл, и можно добавлять разрешения на запуск скриптов
https://www.sitepoint.com/node-js-20-new/

#nodejs
👍1