Айтигребец – Telegram
Айтигребец
666 subscribers
179 photos
44 videos
131 links
Айтигребец - канал душного сеньора помидора.

Ссылочки, мысли и прочая IT-годнота. Технологии, статьи, интервью etc. Расширяем кругозор и гребём тугеза.

17 лет фуллстека, сейчас мастли бэк. 10 лет .NET, 7 лет Node.js

Связь : @ytrihT
Download Telegram
Вышло очень интересное интервью с Айтибородой (IT-Beard) - Алексеем Картынником.

В выпуске Алексей рассказывает о своём канале, сколько удаётся на этом заработать (интеграции, с просмотров, остальные источники), а это реально редкость сегодня, обычно все ютуберы не любят об этом на публику говорить. А так же историю релокейта в Киев, а потом и во время войны - в Польшу. Холодок по коже обеспечен.

Выпуск не о технических штуках, это в первую очередь личная история человека. Но, поверьте, полтора часа пролетают незаметно.

Интервью без воды, куча фактов и цифр, с хорошей картинкой - в общем, рекомендасьон!

И не забудьте глянуть сам канал - ТОННА качественных интервью с айтишниками. Мой личные фаворит - алгоритмы работы Яндекс Музыки с Данилом Бурлаковским и интервью с Григорием Бобуком (участник подкаста Радио-Т).
👍6👎1
Audio
В последнем выпуске #радиот затронули холиварненькую тему 404-ого статуса REST API.

Вот есть у вас к примеру /api/v1/books/1 - возвращает книгу с ID:1. Всё отлично, отдаём 200-ый код с книгой в body. Что делать с /api/v1/books/100, когда книга не найдена? И вот тут соль вопроса. Один лагерь топит за 404, второй - за 200 с payload : null.

Первый лагерь уповает на то, что REST является самодостаточным и в его природе миксать http коды и коды бизнес-логики.

Второй лагерь же явно против, т.к. вообще-т 404-ый код говорит нам, что resource not found. И в данном примере не понятно - это ресурс not found или book not found? Как реагировать? Потому что во втором случае это by design, а в первом, возможно - критическая ошибка (допустим route криво запилили).

Буквально год-полтора назад мы поднимали эту тему в команде и я был приверженец именно второго лагеря.

В целом, фронту всё равно, там оба варианта - ошибка. Однако, я считаю, что чем детальнее ошибка, тем лучше фронт сможет её обработать. И если в случае resource not found - нужно бить тревогу и показывать плашечку, что что-то КРИТИЧНО пошло не так, то в первом - это может быть вполне себе user-friendly попапчик с сообщением о том, что такой книги нет.

Я всё же против миксать http коды и коды внутренней логики. Но у больших дядь можно встретить оба варианта реализации, однако чаще всего я всё же видел 200-ый ответ вида
{
payload : null
}
т.е. http тут является всё же уровнем транспорта.

Однако я могу понять и первый лагерь. В случае, если ваш клиент не браузер к примеру, 404-ый статус тоже вполне себе подойдёт для обработки ответа. За все 14 лет я ни разу не видел чистой реализации REST API в проектах, везде был mixed подход. А это, имхо, намекает.

Хоть отрывок из подкаста и длится 37 минут - я очень советую вам послушать, комментарии весьма интересные.

А какую http таблетку выбираешь ты? Голосуйте эмоджами 😂

😁 - лагерь 404
🤩 - лагерь 200 +payload
😁25🤩24🤔3👍2🌚1
"Получил доступ к Dalle-2. Вы не поверите, что может нарисовать машина… Дизайнеры больше не нужны" - гласит статья с хабра.

DALL-E 2 это такая нейроночка, которую обучали на огромном (400 000 000) датасете пар фраза=картинка. Гляньте на то, что она умеет, я прикрепил пикч. Эт реально впечатляет ^^ В статье можно найти больше подробностей и примеров, рекомендую.

*для ленивых - закинул в комментарии к этому посту еще примеры из статьи и комментариев к ней. Есть где позалипать. А еще там есть генерация из фразы "Naked woman with a large bust bathes in the Martian river at sunset"! 😉*

API закрытое, но можно встать в очередь на доступ. Однако, придётся всего-то пару месяцев подождать. Если вас это не смущает - записывайтесь :) https://labs.openai.com/waitlist

Ну и к слову, я уже пару недель как тестирую copilot, скоро поделюсь с вами фидбеком, не переключайтесь 🚣
👍3🤩2❤‍🔥1
Инфографика об экспансии Chrome. Забавно, что совсем недавно firefox занимал половину рынка, а сейчас живёт в рамках пяти процентов. А если учесть, что тот же edge и опера отказались от своих движков в сторону хромиума, умирание огненной лисы выглядит особой грустью и даже опасностью. Монополии всегда были и остаются злом. Однако, та же история из этого же ролика нас учит, что это дело времени, пока кто-то снова не вырвется в сравнимую конкуренцию. Вырвется же, правда?

#живи_firefox !

https://youtu.be/H52DmvfzDWM
👍5
Какой ваш основной браузер? (исключая разработку). Можно выбрать несколько.
Anonymous Poll
67%
Chrome
30%
Firefox
10%
Safari
4%
Edge
7%
Opera
7%
Другое/Показать ответы
Небольшой железный лайфхак для улучшения интернетиков этих ваших.
Встречайте - малыш Xi !

Проблема : при аренде новой съёмной квартиры (да и в своей тоже) весьма часто в комплекте с интернетом идёт какой-нибудь нищенский роутер от провайдера и как результат - раздаёт вайфай он вот прям ПЛОХО.

В моём случае, таймауты раз в 5-8 минут длительностью секунд 5-10. Подключено около 6 девайсов.

Ну так вот. Можно решить вопрос кардинально и купить новый роутер, а можно попробовать вот такого малыша, как на картинке. Это Mi WiFi Range Extender AC1200. Вообще, он нужен для усиления сигнала в отдалённых от роутера участках, что само по себе уже неплохо. Но он ещё и замыкает на себя все соединения. Плюсуем тот факт, что ксяоми умеют в софт и железо - работает всё это прекрасно! Он сглаживает сигнал, разгружает основной роутер, создаёт рядом ещё одну сеть и по сути линкует вас к роутеру через себя.

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

Ещё эта коробочка умеет :

1) из 2.5Ghz создавать 5.0Ghz канал, т.е. да, хоть к нему и идёт по 2.5, но отдаёт он уже в 5.0 (само собой и в 2.5 тоже), т.е. ваши девайсы де-факто стабильнее бегут до Xi.
2) Умеет в раздачу из витой пары от роутера. У меня к сожалению не завелось (виню роутер), но фича крутая.
3) Умеет в смартлинк, т.е. коннектится к двум вайфаям и если один недоступен становится - моментально свитчается на другой.

Что до эксплуатации, то всё просто - втыкается в розетку, настраивается за 5 минут через приложение Mi Home. Стоит около ~30$. Есть ещё его младшая версия - за ~20$, всё то же самое, только 2.4Ghz (пропускная способность 300mb vs 700mb на 5.0Ghz) и минус Ethernet кабель.

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

#железо #Xiaomi
👍5😍2
Красиво)

Ps. Приветственное письмо после регистрации на докерхабе 🙂

Ps2. Whale - кит
🥰4👍3
Если вы ещё не слышали об IFTTT сервисе, то, пожалуй, я исправлю это недоразумение.

IFTTT расшифровывается как If This Then That.

Это целый сервис по автоматизации разных штук! Только с философией NoCode, т.е. код писать не нужно (но можно, апи открыто), на платформе уже тысячи всяких готовых компонентов/интеграций.

К примеру, я только что решил через него проблему вида :
В Грузии у меня сейчас два телефона с двумя симками. Один с белорусским номером, второй с грузинским (основной).

На белорусский постоянно приходят смски 3d-secure и я постоянно бегаю смотрю эти коды. Ну а если нужно на улице, то пиши пропало - два телефона с собой таскать такое себе удовольствие.

И IFTTT тут решение. Я легко настроил форвард всех своих смсок в телеграм. Флоу примерно такой : ставите IFTTT апп, там создаёте апплет From : sms, To Telegram, апп просит вас авторизироваться в боте и выдать разрешение на чтение смс. Интеграция готова. Теперь когда приходит смска, я получаю её через бота. Мало этого - можно настроить ключевые слова по которым триггер будет срабатывать. В общем, удобно.

Можно сделать отсылку на email или push'ем на телефон. Куда угодно, в общем.

Бесплатная версия вполне юзабельна и позволяет создать короткие цепочки (в про версии можно длинные создавать).

Еще пару примеров (из тысяч) всевозможных интеграций :
RSS новость -> Telegram
Instagram photo -> Facebook
New Phone photo -> Gmail
File updated on dropbox -> Phone Push
и т.д.

В общем, не всегда оно нужно, но когда нужно - выручает здорово.

Всем добра.

#лайфхак
👍7🔥4👎1
Компания потеряла себя и $660 тысяч в крипте из-за ошибки программиста

Децентрализованная биржа OptiFi приостановила работу после ошибки одного из сотрудников, из-за которой параллельно оказались навсегда заморожены активы клиентов. Компания подробно рассказала о произошедшем в блоге.

Ошибка произошла во время обновления кода. Один из разработчиков случайно использовал команду «solana program close», в результате чего оказался без возможности восстановления заблокирован мейннет OptiFi, а вместе с ним — $661 тысяча в стейблкоине USDC.

Спасти активы невозможно.

Вот это я понимаю скилл, уронили так уронили прод посоны 😂
не делайте так (с) ваш кэп
🌚11👎1
Мой опыт использования Macbook

На днях презентовали очередные "wow" обновления яблочных девайсов. В два раза лучше! В три производительнее! В пять удобнее! Новый датчик! Лучше прежнего! Новые цвета! И материальчик для чехольчика, посмотрите на него! Всего xxx $ и он ваш! Скорее, пока не размели.

Кх кх. Да. Инновации в деле.

Так о чём это я...

Я буквально недавно поимел прекрасную возможность свичнуться на время с windows на богоподобный Mac!
Уууухууу! Какой же он прекрасный и крутой, вы не поверите! Это лучшее, что случалось со мной, рил. Идеальная айос, а какой приятный тач!!! Удивительный юзер экспириенс...

Ах да. Это. Это же слова из презентаций. Чёт попутал.

Так вот, у меня ДВАДЦАТЬ ДНЕЙ ПОДРЯД ГОРЕЛО 🔥 с того, какой мак прекрасный. Точнее "прекрасный".

В статье 19 пунктов того, почему я себе не куплю мак. Мне хватило этих двадцати дней чтобы понять, что то ли я какой-то не такой, то ли слова "эпл" и "премиум" в одной фразе это шутки такие, которых я не понимаю. Почти каждый чёртов день я ловил маленькие фейспалмы. Каждый. Чёртов. День.

*типичный мем про ожидание vs реальность*

Внимание, особо ярым фанатам не заходить. Там сравнение с богомерзким Xiaomi notebook pro. А ксяоми, как известно для ... ээээ... маргиналов.

В общем, если ко мне в очередной раз подойдут в туалете и скажут, что лучше Apple в мире ничего нет - я найду что ответить.

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

https://telegra.ph/Opyt-ispolzovaniya-Macbook-bez-kupyur-ili-EHpl-vy-seryozno-09-09?2
👍7🔥3💩1
Всем привет!

Давненько хотелось сделать какого-то классного бота для Telegram и вот родилось наконец-то.

Рад представить вам бота для создания Gif демотиваторов 🔥 : t.me/gifdembot

Что умеет?
Всё просто. Выбираете любую гифку через @gif бота, отсылаете боту, вводите текст и получаете анимированный демотиватор. Так же есть поддержка анимированных стикеров и ваших личных коротких видосов.

🔥Вэлкам ту трай!🔥

Немного истории создания :

У определенной возрастной аудитории может слегка подсвести олдскулы :) Многие помнят эру статических картинок/мемов в чёрном квадрате - демотиваторов. Они сначала заполонили собой западные паблики, а потом и ру сегмент. Были времена, да :)

Идея создать какую-то тулу, которая бы позволила делать "живые" демотиваторы пришла мне еще лет шесть назад. Я даже довёл проект на asp.net до какого-то mvp, однако в проде прожило это всё примерно пару недель и я утратил интерес, хотя активные пользователи уже и появились. Просто переключился на другой пет-проджект. Те, кто когда-либо писал свои проекты и доводили их до приемлемого состояния знают это чувство, когда основная (техническая часть) проекта вроде готова, но остались те самые "скучные" 20% от которых опускаются руки. В итоге всё это ушло в шкаф до лучших времён, а точнее ... на кладбище личных проектов.

Однако, идея где-то сидела внутри и скреблась и в какой-то момент мне захотелось сделать что-то такое небольшое, но по-взрослому. По канонам скейл систем. Весь этот большой тырпрайз, конечно, всегда такой вот, но это всё там, не рядом. Хотелось сделать свой маленький и не кровавый 😃

Как нельзя кстати я начал играться с API телеграм ботов, тыкал палочкой в serverless и вкатывался в архитектуру облаков. И я понял, что пора смахнуть пыль со старого проекта и дать ему жизнь. В итоге, тот старый mvp не имеет с текущим проектом и пары процентов общего кода. Всё переписано фактически с нуля. Хотя казалось бы, что там кодить, но дьявол как всегда в деталях :) Сил и времени вбухано много.

Под капотом :
C# .net core, AWS Lambda, SQS, минимальные кластеры Postgres и Redis на DigitalOcean'е. Для метрик подымал prometheus+Grafana на отдельном инстансе, но в итоге перешёл на newRelic. Логи там же. Их бесплатный план довольно приятный :)

В общем, если будет интересна техническая часть, пинганите в комментах, сделаю отдельный пост. У бота есть собственный мини дев-блог, если кому-то по какой-то странной причине прям очень захочется следить за его развитием (https://news.1rj.ru/str/GifDemBot_DevBlog).

Потыкать бота палочкой можно тут : t.me/gifdembot
Буду рад увидеть ваши гиф-демотиваторы у себя в комментах 😃 Let's Rock!

зы. Может слегка долго отвечать. Лямбды, сэр. Холодный старт и вот это вот всё.
🔥3👍2
Что вы сделаете, когда по пути на работу найдёте на дороге красивую флешку, на которой будет значок биткоина?

Всё шире распространяются атаки так называемых Rubber ducky usb устройств. В двух словах, флешка это не флешка, а эмулятор клавиатуры. Как только вы вставляете её в ваш ноутбук, она определяется системой как виртуальная клавиатура, а что произойдёт дальше уже зависит от фантазии хакера.

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

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

Ну и не одними флешками едины. Это может быть как usb-грелка для кружки, так и, например, usb-вентилятор - всё, что может быть воткнуто в ваш разъём ноута. Притом сам разъём не важен, это может быть и type-c и lightning.

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

Впечатлились? А как вам ... обычный usb кабель, который кроме всего прочего умеет в Wi-Fi и удалённый доступ в реальном времени?

Круто. Но не для безопасников. Им не очень, да 😄

В общем, кип ин майнд, как говорится 😉 А то вставите и сотрёт оно все ваши закладки с порно. Чё вы потом делать-то будете...

Тут - можно про шнур почитать, а вот тут и тут про usb устройства.
👍15
Пара советов по прохождению собеседований и личный опыт

Гамарджоба, гуйс 👋

На прошлой неделе искал себе новую лодочку для гребли и хочу поделиться кое-какими заметками/советами.
Позицию искал синьорскую на nodejs стек, так что ждуны джуны - не обессудьте с топика "чё спрашивали" :)

🚀 Пара советов :

1) У вас же есть аккаунт на прекрасном djinni.co? Если ещё нет - вперёд. Это отличный украинский сервис по анонимному поиску. Даже если у вас уже есть работа - всегда полезно там мониторить предложения. В двух словах - создаёте аккаунт, заполняете свои скиллы, желаемую зп и рекрутёры сами вам кидают релевантные вакансии. Ну а дальше просто decline/share CV - по настроению. РФ и РБ как локации для поиска заблочены, Однако, если вы в релокейте или ищете Full-Remote - смело можно ставить какой-то другой город и искать вакансии в том же Киеве/Львове и тд, к примеру. +там можно посмотреть в целом спрос/предложение по конкретным стекам прям в графиках - оч полезно с точки зрения понимания текущих вилок рынка. В общем, хайли рекомменд!

2) Не ждите, пока вам напишут. Ищите сами. На том же джине прилично вакансий и добавляются каждый день, удобные фильтры и прочее. Проходитесь раз в 2-3 дня и закидывайте "удочки". Сегодня рынок довольно нестабильный даже для сеньоров, не говоря уже о junior/middle. К сожалению, констатирую факт, что и вилки просели и спрос туда же ушёл. До войны в Украине и трава позеленее была и реки пошире разливались. Однако не только в этом дело (об этом чуть ниже). Расширяйте вашу воронку коммуникации любыми доступными средствами, за спрос в нос не бьют

3) Сделайте себе уже наконец нормальный CV. Да-да, не вот этот вот типичный docx с перечислением где вы учились и какие курсы прошли и горсткой технологий из разных областей, а НОРМАЛЬНОЕ ЧЕЛОВЕЧЕСКОЕ CV в PDF формате. Очень рекомендую сервис https://www.canva.com/, просто, бесплатен и удобен.

Пару советов по CV :
- желательно не больше двух страниц
- не кричащий дизайн, пастельные тона - самое оно. Никаких красных бэкграундов, минималистично.
- сделайте нормальное фото. Фотка с тусы не подойдёт. Если нет - попросите кого-нибудь сфоткать вас на фоне белой стены с хорошим освещением и отредактируйте в каком-нибудь бесплатном редакторе, если требуется (советую https://pixlr.com/ - отличная штука для быстрых правок). Фото и дизайн это вообще первое, за что цепляется взгляд HR'ов. Мой CV выглядит как-то так.
- не вываливайте в CV много информации, опишите ваш опыт и технологии за последние пару лет, не больше - всё остальное из вас и так вытрясут на интервью если захотят.

4) Если у вас до сих пор не дошли руки до заполнения LinkedIn'а - сделайте это. +начинайте добавлять по 100 ЛЮБЫХ эйчаров в свои коннекты (искать можно через встроенный поиск по нужной стране. Дело в том, что hr закидывают удочки в основном среди тех, кто у них в так называемом первом круге. Вы там тоже должны быть. Обязательно пометьте аккаунт как "Open to work" и заполните скиллы.

5) Ведите заметки по каждому интервью, которое проходит. Что за компания, ссылка на вакансию и кто контакт +где связь (email/linkedin/telegram и тп). +обновляйте инфу после каждого последующего интервью. Как только в вашем стеке накопится больше трёх компаний - вы начнёте путать примерно всё - проекты, имена, названия самих компаний, впечатления от собеседований и прочие нюансы. Это реально must to do. Просто блокнот по заметочке на каждую вакансию, где вы уже в процессе собеседований.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Часть 2.

6) Старайтесь откидывать технические собеседования в компании, которые вам действительно важны "подальше" по времени, а "так себе" - поближе.
Подумайте, сколько вы вообще готовы ходить на технические, т.к. каждый собес будет вас выедать морально. Неделя? Две? Вот этим отрезком и оперируйте.
Во-первых, вы сможете "натренироваться" на вакансиях, которые менее интересны и тем самым понять что вообще спрашивают и в целом апнуть свои знания во время этих собесов. Во-вторых, если вам предложат офер в самом начале - особо никто две недели вас ждать не будет - высокий риск того, что ребята найдут кого-то, кто сможет быстрее ответить и позиция закроется. В-третьих, к более желанным собеседованиям у вас уже могут быть оферы на руках, что в целом делает вашу позицию сильнее, а hr'ов заставляет рассматривать вас в ускоренном порядке +предлагать условия получше. Поэтому такая стратегия втройне имеет смысл.

7) Переносить "пре-скрины" с hr эт нормально, не бойтесь это делать, если вы не успеваете или ещё чего. Переносить технические - крайне не рекомендую, т.к. обычно на них уже аплаится 2-3 человека, чьи окна могут быть расписаны и после переноса к вам может сложится в целом так себе отношение, т.к. вы подобными мувами "дёргаете" людей. А дёргаться никто не любит :)

8) Заготовьте заранее список вопросов, которые для вас важны для прескринов. Структура команды, локейшн разработчиков, какой стек используется, какие плюшки есть в компании - обычно что-то да выветривается из головы.

9) Ну и последнее и самое очевидное - приходите на митинг за пять минут до начала. Это просто правило хорошего тона 😉


🚀 Что нынче спрашивают :

Для начала обозначу что искал : backend, nodejs, nest, js/typenoscript.

Поехали.

Много базовых вопросов : Event loop - вызубрить и понимать +что находится под капотом на уровне системы(какие либы и чем асинхронность роляет). +вопросы на nextTick() vs setInterval() vs setImmediate(). +вопросы чем можно забить кью/стек.
Промисы. Тоже от зубов чтобы отскакивало. Задачку почти везде накинули на них.+знать Promise.All/Race.
EventOmitter. Cтримы - зачем, в чем преимущества, какие бывают в nodejs. Spread/rest операторы. this - что такое, подвохи и тд. Стек/Очередь/Дерево/Array vs List.

В целом - много архитектурных вопросов. SOLID (+DRY,KISS,GRASP) - куда ж без них родимых, Парочку паттернов проектирования из GoF (Observer, Adapter, Facade, Синблятон). DDD как подход. FIFO и LIFO в чем отличие. Понимание Dependency injection / Inversion Of Control. Паттерн SAGA. Задачки на "а как бы ты сделал в микросервисах вот то-то и то-то", message brokers и варианты взаимодействия между сервисами. RetryPolicy - что такое, какие бывают, как реализуются. Идемпотентность (как в рамках HTTP Methods, так и в рамках асинхронщины на уровне микросервисов). Мультитрединг. Redis (pub/sub, distributed lock). CQRS что такое и как реализуется. UnitOfWork паттерн. Парочка хитрых вопросов по Prometheus было (что удивило). Виды тестов, метрики coverage'а, mock vs stub.

Довольно много вопросов по базам данных. Принцип выбора sql/nosql. Что такое и как работают индексы (какие минусы есть), задачки на шардирование, профайлинг запросов. Задачка на "выкатку новой схемы" без потери запросов/данных. ORM - плюсы и минусы, как решать. Active record vs Repository паттерн.

На удивление почти не спрашивали о : Typenoscript, Nest, OOP, Docker, алгоритмы.
🔥3👍2