DEV: Рубиновые тона – Telegram
DEV: Рубиновые тона
3.19K subscribers
148 photos
2 videos
8 files
992 links
Анонсы новых видео о программировании (Ruby/Rails, Solidity/Ethereum, Python, JS и не только), практические советы, обзор полезных инструментов и новости из мира IT
Download Telegram
Перепост из другого диалога, но тут подумалось просто...

Вот если читать всю "Калевалу", потом вообще невозможно говорить иначе. Это ещё мной давно проверено.

Ну, к примеру:

Думал я сварить пельменей
Со сметаною покушать...

Или так:

Накоммитил в бранч немало
Пулл реквест стремлюсь отправить...

Или даже

Переполнен стек, о ужас!
Переменных давит стадо

(или "переменных тьма ведь стала")

И правда - зачем говорить скучно, если можно красиво.
😁202💯1
Скинули тут полезную ссылку на книгу Mastering Ethereum, второе издание. Можно почитать бесплатно на оф сайте https://masteringethereum.xyz/intro.html
18
Кстати, забыл поделиться. Это для тех, кто настраивает себе VPN для личных целей - ну, скажем, чтобы "спрятать" трафик от слишком любопытных личностей, коих в некоторых странах имеется в избытке.

В прошлый раз я рассказывал про схему с проксированием, Singbox, VLESS+Reality. Сегодня уточню, что есть и другой вариант. Тот же Singbox, установленный на обычную Ubuntu, поддерживает и другие решения - одно из них называется Trojan. Это несколько более старая, но надёжная поделка - очевидным минусом является разве что сложность настройки.

Вам потребуется:

- простой советский домен (любой, но у вас должны быть права на изменение записей)
- собственно, сервер

Далее, вариантов несколько, я сделал посложнее (но, возможно, это overkill):

- Ставится nginx, там поднимается какой-нибудь левый статический сайт - скажем, на поддомене api.example.com
- Отдельно есть поддомен admin.example.com (можно как угодно назвать) и там будет торчать vpn
- В редакторе DNS просто заводите эти 2 поддомена через запись A, указываете там IP своего сервера
- Выпускаются сертификаты на эти 2 поддомена через Let's encrypt - можно сделать задачу cron через certbot, который сам их обновляет, это бесплатно (надо только временно открывать порт 80 или же использовать подход с API, но он не у всех хостеров поддерживается кажется)
- В singbox настраивается сам trojan - потребуется задать сложный пароль и указать сертификаты для поддомена admin.example.com. Он будет слушать порт 443 (в моём "более сложном" случае это порт 9443, который не торчит наружу, тк туда идёт проброс с nginx)
- В nginx включается streaming. Он пробрасывает трафик для admin.example.com (на порт 9443 в моём случае) в сам singbox - это и есть трафик vpn
- При этом на том же IP крутится вполне безобидный фейковый сайт, можно для отвода глаз сделать favicon, robots.txt и прочее

Можно схему упростить и не пихать nginx перед singbox, а просто слушать сразу порт 443, подняв фейковый сайт как бы параллельно (без всяких streaming). 🕵️‍♂️

p.s. для добавления комментариев, пожалуйста зайдите в чат https://news.1rj.ru/str/+MxYT6-01eeA1NTYy и нажмите "я не робот"
20
Друзья, небольшой подарок на новый год - наш новый кавер на песню "Воин вереска". Можно послушать, в частности, на SoundCloud https://soundcloud.com/ravens-die-laughing/warrior-of-the-heather-melnitsa-cover или на Youtube https://youtu.be/GYEH1qJBgag

Скоро увидимся 🙌
🔥107
Друзья, это *не ложная тревога* ❗️

Ребята из Guide DAO дают максимальную скидку в году — 50% на все буткемпы, включая их новый курс по AI.

Промокод KRUK даёт 30%, плюс 20% новогодней скидки на сайте. Итог: 50% + рассрочка.

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

▪️RAG-системы — делаем ботов, которые отвечают на вопросы из вашей базы знаний
▪️Многоагентные процессы — настраиваем взаимодействие нескольких AI между собой
▪️Адаптивные агенты с MCP — подключаем сторонние сервисы, чтобы агент работал «из коробки»
▪️Готовые кейсы для портфолио: интеграция в бизнес, кастомные агенты для аналитики и поддержки, демо для работодателей

Подробнее в боте:
@GuideDAO_hallo_bot

Оставляй заявку на сайте
Сейчас лучшее время зайти. Акция действует до конца года.
10🔥53❤‍🔥1👍1🏆1
Спасибо всем за участие в сегодняшнем стриме, было оживлённо и активно 🤟

Meanwhile in scraping... У нас с господином Шахином (основатель ScrapingBee) вышло несколько статей, включая крупную по Java scraping - возможно, для кого-то будет актуально https://www.scrapingbee.com/blog/introduction-to-web-scraping-with-java/

Скоро увидимся 🙌
👍6🎄4
Количество вопросов на Stackoverflow продолжает неуклонно снижаться https://devclass.com/2026/01/05/dramatic-drop-in-stack-overflow-questions-as-devs-look-elsewhere-for-help/

Собственно, мы оказались где-то в районе 2010х годов, если представленная статистика верна. И только ли в ИИ дело?.. Честно говоря, не уверен. Ощущение такое, что ресурс изжил себя - во всяком случае, как площадка где можно *задавать* вопросы и вообще делиться опытом. Как площадка для *чтения* (некоторых) ответов - она, пожалуй, всё ещё хороша (хотя я теперь пользуюсь ей довольно редко).

Но вообще: как часто вы, дорогие друзья, писали вопросы на SO и, в особенности, как часто получали там полезные ответы? Я пробовал писать там много лет назад, когда столкнулся с действительно необычной и очень специфичной проблемой, решить которую никак не получалось... и неудивительно, что ответа я так и не получил. Спустя какое-то время ответил сам себе 😄

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

Я сомневаюсь, что SO умрёт в обозримом будущем, но тренд, вероятнее всего, продолжится. Людям проще спросить у вежливого ИИ, чем постить вопрос и мысленно готовиться к боли и унижениям. Ну, а что касается "понимания" кода... Смешной термин "full stackoverflow developer" родился не вчера. Теперь просто SO заменил AI. Что думаете?..
👍188🔥2
Окей, не могу сдержаться. Слушаю посреди ночи музыку, сделал пару бутербродов из того, что было - чёрный хлеб, томаты-черри, шпинат, соевый соус, аджика, какие-то специи.

Ожидание - скучно. Реальность - будто это внёс сам Фредди вместе с Дженис, на фоне играет Manowar, а разработан рецепт в подпольных немецких лабораториях Kraftwerk. Иногда нужно добавить красок. 🤟
👍19😁11🆒3🕊1👻1
Какого-то парня на reddit попросили выложить изображение, которое заставит рыдать любого... 😂 А ведь это печально - во всяком случае, я бы никогда не хотел такой жизни для себя.

Бывало конечно всякое. Когда-то, помнится, приходилось вставать в 5 утра, ехать на вокзал и оттуда в другой город, проводить занятия, потом либо там же ночевать, либо тратить ещё 3+ часа на дорогу обратно, и так неделю. Но были там свои плюсы- в частности, сама работа была интересная, так как люди приезжали заинтересованные.

Но вообще даже думать о каком-то "размеренном ритме" мне бывает жутко. Возможно, сказывается круг общения - все сплошь то актёры, то музыканты, то писатели, то путешественники-геологи. Может, я простой лентяй (во многом, так и есть).

Но всё-таки, как мы говорили на стриме "о жизни" в guide dao (он, кстати, торчит на их канале, там я часа 3 вещал наверное), человек ведь создан для счастья. И да...

This is all you have, but it's still something. Streets and sodium lights. The sky, the world. You're still alive.
😭16🔥95
Мне довольно часто приходится работать со сторонними API, в том числе в мире JS/TS (так уж складывается). Долгое время в качестве go-to решения у меня был Got (который теперь переродился, об этом чуть ниже).

Однако я предпочитаю подход "чем меньше сторонних зависимостей", тем лучше, поэтому последние пару лет очень активно использую встроенный Fetch, который доступен с версии node 18. Решение несложное, без наворотов, но надёжное - плюс, можно легко тестировать (нужно подключить undici, из которого это всё и появилось изначально).

Да, там нет каких-то продвинутых штук, но таймауты настраиваются, ошибки ловятся, все необходимые параметры конфигурируются, прокси добавляются (хотя это чуточку сложнее)... Честно говоря, во многих случаях этого достаточно. А для чего-то несколько более сложного можно попробовать Ky - от создателей Got.

Если нужно изучить это дело с нуля, у меня вышла новая статья https://www.scrapingbee.com/blog/nodejs-fetch-api-http-requests/
8🔥73💯1🤝1
Раз среди нас есть любители scraping, поделюсь ещё одной статьёй, которую закончил буквально вчера. Это про сбор данных с amazon, но с помощью стороннего API (про "scraping амазона голыми руками" у меня тоже есть гайд, но там, конечно, будут боль и унижение).

Удобство API в том, что многие вещи уже делаются за вас, и вы можете сфокусироваться именно на работе с данными. https://www.scrapingbee.com/blog/how-to-scrape-amazon-product-data/
👍8🤝2🐳1
Самые дорогие города для жизни (да, иногда я люблю поглядеть такую статистику) 😄 Найдите себя! https://www.numbeo.com/cost-of-living/rankings.jsp
4🔥2
In my restless dreams I see that code... You promised you'd refactored it but you never did... А иногда прямо хочется вернуться в те славные дни в стиле "гусарский кодинг", когда всё было легко и просто.

    module Searching
# Some black magic indeed...
# Creates a Search child class of a given class that changes the URI where the
# GET request should be sent
def self.included(klass)
klass.const_set(:Search,
Class.new(klass) do |*_args|
def api_path
"#{super}/search"
end
end)

# The actual method to perform searching
# Instantiates a Search class with the given search params
# and send a GET request to the proper URI (defined above)
klass.define_singleton_method :search do |params|
klass.const_get(:Search).new(params)
end
end
end


Захотел - да и объявил константу класса (а то и наследуемый класс) при подключении модуля, а то и метод класса заодно, который на лету что-то читает. А чего - один раз ведь живём!

Сейчас, конечно, тоже не сильно сложно, но не так весело. Метапрограммирование всегда добавляло перчинку в скучную жизнь. Как говорил Джек Воробей - мир остался прежним, стало меньше содержимого (да, я уже помню, что *капитан* Джек Воробей, можно не поправлять 👍) https://github.com/bodrovis/ChgkRating/blob/master/lib/chgk_rating/concerns/searching.rb
🔥65
Так как Telegram делает для борьбы со спамом примерно ничего, то с сего дня бассейн закрыт и комментарии к постам полностью отключены.

Для обсуждения или задания вопросов добро пожаловать в наш чат, только не забудьте пройти проверку "я не робот". К сожалению, у меня просто уже нет сил вычищать всю эту помойку с рекламой скама. Скоро увидимся. https://news.1rj.ru/str/+MxYT6-01eeA1NTYy
9👍5💔2
Кстати, если говорить о скаме в IT. Мы тут в чате последнее время много обсуждали поиск работы и возникающие проблемы с мошенниками. Я просуммирую некоторые важные моменты - да, они могут показаться очевидными опытным разработчикам, но это чрезвычайно важно для тех, кто только начинает свой путь (так что поделитесь с начинающими коллегами!).

- Если вам прилетает какой-то оффер - скажем, в LinkedIn - в первую очередь обязательно разберитесь, кто вообще его прислал и какую роль этот человек занимает в организации. Согласитесь, очень странно, если на должность senior developer вас приглашает менеджер по продажам. Да, даже если это какой-то бывший коллега, которого вы едва помните, или он что-то упоминает про "общих знакомых".

- Поищите, что за компанию представляет этот человек. Есть ли такая вакансия на их сайте, в профиле LinkedIn? Если это крипта, то связана ли компания с криптой хоть каким-то боком? Может, они писали что-то о крипте в своём блоге? Гуглится ли эта организация в принципе и если да, то как давно она появилась (официальные данные можно обычно достать в открытых источниках)? Если есть сайт, то когда и кем зарегистрирован домен?

- Даже если профиль автора сообщения подтверждён (или подтверждено место работы), это, к сожалению, ничего не гарантирует - вам могут писать со взломанного аккаунта. Кстати, если вдруг этот аккаунт что-то постил в ленте - присмотритесь, что именно. Будет странно, если он сначала писал о B2B sales, а потом внезапно последние несколько дней стал массово репостить записи про ethereum.

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

- Плохой английский, странные обороты или текст, который явно генерировал искусственный интеллект, сразу говорит о многом (+обезличенные и тем более неправильные обращения)

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

- Подозрительно, если на дополнительные вопросы вам продолжают лить воду, но зато сразу называют более-менее точную (и обычно относительно высокую зарплату). Вообще, слишком хороший оффер в духе "мы посмотрели ваш GitHub и хотим платить вам 12к баксов" - это из области фантастики, если только вы не супер-востребованный спец в своей области

- Неожиданное переобувание в процессе (сначала они ищут back-end разраба, потом вдруг аналитика) - это либо скам, либо просто полная неразбериха в отделе HR; в любом случае, вы не хотите с этим связываться

- Если требуют как-то очень много личных данных, это повод задуматься. "Да, уважаемый соискатель, не забудьте отправить номер своей карты и CVV" (это, конечно, гротеск, но всё же)

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

- Кроме того, отказ от звонков или общение с выключенной камерой - это также "красный флаг".
👍14🔥2
- Чрезвычайно подозрительно, если без дальнейших прелюдий вам предлагается скачать и запустить какое-то приложение с GitHub/Bitbucket/whatever. Особенно пристально смотрите, когда этот репозитарий был создан, кем и сколько там коммитов. Если это гигантское приложение и оно залито одним коммитом неделю назад - ну, вы поняли.

- Уточняйте, что это за приложение и зачем его запускать. Если ответ неубедительный - сразу до свидания. Особенно если "тестовое задание" имеет весьма опосредованное отношение к предлагаемой должности (вам предлагают должность back-end, а само задание фокусируется на front-end). Впрочем, даже если ответ убедительный - всё равно ничего не запускайте у себя на компьютере, если не понимаете, что это за код. В крайнем случае используйте изолированную среду

- Я не говорю уже о случаях, когда вам предлагается подключить кошелёк на неизвестном сайте и подписать какие-то транзакции

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

Набрасывайте ещё советы 🤓
👍2611