DEV: Рубиновые тона – Telegram
DEV: Рубиновые тона
3.19K subscribers
148 photos
2 videos
8 files
992 links
Анонсы новых видео о программировании (Ruby/Rails, Solidity/Ethereum, Python, JS и не только), практические советы, обзор полезных инструментов и новости из мира IT
Download Telegram
Количество вопросов на 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
😁33🔥62😢1
Знаете, иногда в фильмах бывает упоминают "наша песня", "у нас с ней была наша песня". Думаю, у меня ни с одной девушкой не было никогда "нашей песни". Но если бы меня просто попросили назвать что-то, из того запомнилось на всю жизнь, думаю я безусловно назвал бы Wuthering Heights в исполнении Кейт Буш. https://www.youtube.com/watch?v=Fk-4lXLM34g&list=RDFk-4lXLM34g&start_radio=1

Да, странно, учитывая что я зачастую слушаю какой-то неудобоваримый метал, но так уж есть - забавно, что Марко Хиетала, человек в "тяжёлых" кругах очень известный, тоже упоминал Кейт Буш в числе любимых исполнителей. И, кстати, я очень рекомендую почитать соответствующий роман "Грозовой перевал", а может посмотреть совсем короткий сериал в интерпретации Коки Гидройк, где играет ещё довольно молодой Безумный Макс aka Том Харди.

А из других песен, которые реально определили для меня условный "век" - это, пожалуй, "Wind of change" (Scorpions), "Дождь" (ДДТ), "На дороге пятак" (Я. Дягилева"). Но все эти треки, к сожалению, относятся к той эпохе, которая ушла безвозвратно; рассказывают про те времена, которые мы видели *тогда*, но которые давным-давно стали... легендой? сказкой? Не знаю. Так было. И так уже вряд ли будет.
👍10🔥3😢2
Привет! В эту пятницу в моём канале ждём всех на важный разговор о том, как AI может влиять на наше сознание.

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

Именно такие кейсы показывают: будущее за теми, кто умеет конструировать AI, а не просто им пользоваться. Поэтому мои друзья в Guide DAO запустили практический курс, где объединили две мощные темы: разработку AI-агентов под реальные задачи и вайбкодинг, чтобы вы могли поручать нейросетям рутину и фокусироваться на сложных вещах.

До 14 февраля по промокоду KRUK скидка 30%, она суммируется с 14% на сайте.

Ждём всех, чтобы поговорить о тёмной стороне LLM и психологической безопасности.

🗓 Пятница, 06.02, 19:00
12❤‍🔥5👍321😁1
⚠️ Кстати, друзья, хотел рассказать об очередном виде очень неприятного мошенничества - это своего рода социальная инженерия, но немного необычная. На это вряд ли попадётся специалист, но у вас наверняка есть знакомые или родственники, которые, как говорится, не tech-savvy, так что расскажите им.

Соль в следующем. Юзер открывает какой-то сайт (обычно что-нибудь в духе "бесплатно посмотреть сериал). Там вылезает обычная страничка "подтвердите, что вы не робот", например в дизайне Cloudflare.

Юзер думает - а, ну опять это типовое подтверждение. Жмёт "я не робот", но затем ему предлагают не выбрать все автобусы/светофоры/синхрофазотроны, а нечто более интересное.

Если, скажем, юзер на винде, то ему говорят: а нажми-ка сначала комбинацию клавиш Win+R, потом Ctrl+V и Enter, тогда мы тебя на сайт и пустим! А то ты очень подозрительный, надо проверить как следует, это такой наш новый метод защиты.

Ну, юзер нажимает, причём в диалоге "выполнить" (который открывается по нажатию win+r) после вставки видно что-то вроде "i am not a robot", то есть вроде ничего такого. Жмёт Enter... Ну, а потом возможны варианты - например компьютер блокируется вирусом ransomware.

Что произошло? Всё довольно просто. Фейковый сайт просто подсунул в буфер обмена юзеру хитрую команду, которая при выполнении скачивает какой-нибудь мутный файл (причём формально это может быть даже картинка, то есть расширение jpg). После скачивания эта штука выполняется как исполняемый файл. А уж что туда напихали - бог весть. Причём вся строка в буфере обмена выглядит как команда для скачивания вируса | вывод строки i am not a robot, то есть юзер в диалоге после вставки увидит именно последнюю часть строки, если не пролистает всё вручную.

Вот такая история. Будьте бдительны и предупредите других. Вставка неизвестно чего в терминал или диалог "run" - это чрезвычайно опасно.
20👍16
И вновь немного новостей для любителей чего-нибудь поскрейпить. Тут сегодня официально вышла новая очень классная фича Fast Search API, которая позволяет за один запрос к API буквально за секунду вытащить поисковые результаты и всякие связанные новости. Я поигрался с этой штукой пару дней, работает реально надёжно и шустро.

Так что можно глянуть мой пост, там сразу и примеры кода есть, можно легко потестить с бесплатным аккаунтом https://www.scrapingbee.com/blog/fast-search-api/
❤‍🔥7👍2🔥2
Немного апдейтов для тех, кто балуется настройкой всяких прокси и VPN. Попробовал добавить в sing-box поддержку достаточно нового протокола hysteria2 - в общем, полёт нормальный. Требуется домен и сертификат для него, можно как обычно сделать автообновление через certbot. Эта штука ходит по UDP, считается надёжной. Примерно такой конфиг:

{
"type": "hysteria2",
"tag": "hy2-in",
"listen": "::",
"listen_port": 443,
"users": [
{
"name": "name",
"password": "123"
}
],
"tls": {
"enabled": true,
"server_name": "example.com",
"certificate_path": "/etc/letsencrypt/live/example.com/fullchain.pem",
"key_path": "/etc/letsencrypt/live/example.com/privkey.pem"
}
}


Кстати, тут ещё меня попросили помочь с telegram и его прокси - тот же singbox нормально поддерживает socks5, можно сделать

{
"type": "socks",
"tag": "tg-socks",
"listen": "::",
"listen_port": 1081,
"users": [
{
"username": "name",
"password": "123"
}
]
}


и далее просто в настройках клиента добавить custom proxy
148