Айтигребец
672 subscribers
183 photos
46 videos
1 file
138 links
Айтигребец - канал душного сеньора помидора.

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

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

Связь : @ytrihT
Download Telegram
Расследование взлома 2011-ого года на сид-сервера RSA. Время NDA (10 лет) прошло, ребята рассказали об атаке на 2fa. Вкусно

Дата публикации май 2021. Уже не так свежо, но уф!

Хакеры собирали векторы генерации не на одном, а на трёх скомпрометированных серверах, передавая запросы через ещё одну подключённую машину. Они распределили коллекцию сидов на три части, перенесли их на удалённый сервер Rackspace, а затем объединили в полную базу хранилища RSA. «Я подумал: это офигенно круто, — говорит Литхэм. — Я вроде как восхищался этим. Но в то же время понимал, что мы в полном дерьме».

#security #habr

https://habr.com/ru/company/itsumma/blog/558604/
Media is too big
VIEW IN TELEGRAM
Немного о работе в FAANG от #радиоТ
711 тысяч строк кода, 20 лет, один разработчик: как создавалась Dwarf Fortress #habr

Коротенькая статья-интервью на хабре с разработчиком Dwarf Fortress, игрой, которую он в одиночку делал 20 лет. Мне кажется только из-за скриншота уже можно пойти и почитать =)
This media is not supported in your browser
VIEW IN TELEGRAM
Хранить деньги во float? Неть
#радиоТ короткий ликбезик
This media is not supported in your browser
VIEW IN TELEGRAM
Штош, copilot - мастхэв судя по отзывам? Нужно понадкусывать... (пока по инвайтам раздают) #радиоТ
Как я провалил 5 хобби проектов за 6 лет и заработал 0 долларов.

Статья с #habr'а, где человек делится своим опытом и попытками "запилить красиво и заработать". В первую очередь интересна тем, что это редкая статья об UNSUCCESS STORY, коих в интернетах не сказать что в целом много. На одну такую - СОТНИ историй успеха, из которых можно брать разве что мотивацию, но не "что нужно сделать, чтобы выстрелило". Типичная такая вот ошибка выжившего в масс культуре. А вот как раз на подобных статьях и можно понимать реальное положение дел и собирать по песчинкам "что не нужно делать" в рамках отдельных пет-проектов других людей. Само собой и в комменты загляните, это же хабр ^^
К слову, поэтому и люблю читать хабр с задержкой в пару месяцев - обычно там уже десятки полезнейших комментариев, которые я бы точно не увидел, читая это в режиме "онлайн".

https://habr.com/ru/company/alfa/blog/595057/
Немного бугурта на тему кривого WYSYWIG редактора на хабре. haha, classic (
source : https://habr.com/ru/post/595875/

#habr
NFT - бесполезная технология

Интересная статейка, где автором задаются вопросы к хайпующему NFT, а ответов на горизонте и не видно-то. Всё это и правда напоминает МММ 3.0. Купи за доллар, продай за два человечку, который надеется продать за 3. Красиво, конечно. Но чтобы что ^^

#habr
Ну-ка, шарписты (или шарпинёры?), какая циферка в консоль выведется?

Правильный ответ : 8

Почему 8?
Потому что IEnumerable, а значит "отложенное выполнение".
Первая троечка инкрементится при вызове .First(). Т.е. проходит по массиву до единички. .Last() же заставляет энумератор пройти коллекцию всю, вплоть до последнего элемента, т.е. 5 элементов сверху.

ref : habr #habr #задачка
Карта подводных магистральных интернет-кабелей
ref
Хороших выходных!

А заодно и почитайте про 7 характеристик хороших тестов на хабре 😉

#habr
На собесах иногда задают задачки на логику. Держите парочку забавных :

1. Тортик
Условие: Имеется круглый торт.

Вопрос: Как поделить его на восемь равных кусков, сделав при этом только три разреза?

Ответ : два разреза под 90 градусов чтобы получилось 4 куска. И третьим вдоль торта :) Получаем 8 кусочков.

2. БАБУЛЯ И ПИРОЖНЫЕ

Условие: Вы собираетесь в гости к бабуле, которая живет на другом конце леса. У нее юбилей, и в подарок вы несете пирожки собственного приготовления.

По дороге к бабушкиному дому вам нужно пройти по 5 мостам, а под ними, как и положено в нашем сказочном мире, живут тролли. Чтобы перейти на другую сторону, вам нужно отдать троллю половину пирожков. Но тролли у нас добрые, поэтому 1 пирожок они вам вернут.

Вопрос: Какое минимальное количество пирожков вам нужно взять, чтобы донести до бабули хотя бы 2?

Ответ : 2. На каждом мосту отдаёшь половину (1) и один возвращают, поэтому у тебя всегда два на руках.

3. ТАБЛЕТКИ

Условие: Доктор выдал пациенту 4 таблетки двух видов — по 2 таблетки каждого, которые нельзя отличить по внешнему виду. Таблетки надо выпить за два приема: утром по одной таблетке каждого вида и так же вечером.
Если нарушить дозировку или не принять таблетки, то пациент умрет. Так вышло, что таблетки перемешались.

Вопрос: Как пройти курс лечения и выжить?

Решение: Нужно разделить каждую таблетку на 2 части и выпить по половинке каждой таблетки утром и вечером

4. Ну и на закусочку (мне такую задавали лет 5 назад).... ГОРЯЩИЕ ВЕРЕВКИ.

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

Вопрос: Как нам это сделать, если мы знаем, что верёвки будут прогорать неравномерно?

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

Ответ : Применяем креативное мышление: берём за единицу измерения время, за которое сгорает верёвка. Это время равно одному часу, исходя из условий. Однако соотнести это время с длиной мы не можем. Но верёвок у нас есть две. По этой причине время сгорания первой верёвки мы можем соотнести с временем сгорания второй.

И тут мы находим решение. Учитывая то, что верёвка горит один час, мы делаем вывод, что её подожгли с одного из концов. Поэтому, если поджечь оба конца, она прогорит за полчаса, пусть и гореть будет неравномерно.

Далее мы можем сравнить: поджигаем одну из верёвок с двух краёв, а другую – только с одного края, чтобы засечь время. Первая сгорит за полчаса. Как только она сгорела, мы сразу же должны потушить вторую. Так у нас остаётся кусок второй верёвки, который сгорит за полчаса. Если мы подожжём его с двух концов, то получим 15 минут.

Если справились хотя бы с парочкой - молодцы :) Ну а нет - запомните и на собесе сделайте вид, что слышите о ней впервые 😀

ps. Лайкосите, если нравятся. Есть еще парочка на памяти - сделаю еще одну подборочку чуть посложнее 😉
#задачка
👍11
Прекрасная наркомания с оптимизацией fizzBuzz задачи.

- Здравствуйте, давайте начнем с небольшого теста, пока я ваше CV смотрю. Напишите программу, которая выводила бы числа от 1 до, скажем, миллиарда, притом если число кратно трем, то вместо числа выводится Fizz, если кратно пяти, то Buzz, а если и трем, и пяти, то FizzBuzz.

Статье уже год, но так или иначе в мемориз : https://habr.com/ru/post/540136/

#habr
Айтигребец
На собесах иногда задают задачки на логику. Держите парочку забавных : 1. Тортик Условие: Имеется круглый торт. Вопрос: Как поделить его на восемь равных кусков, сделав при этом только три разреза? Ответ : два разреза под 90 градусов чтобы получилось 4…
Преврати любимое дело в работу, и… вы потеряете любимое дело?

Отличная история-иллюстрация-размышление на тему эволюции собственного проекта/бизнеса (в случае его успеха).

Вам нравится что-то делать. Вы увлечены этим делом. И вы подумываете превратить увлечение в профессию?

Это же просто здорово, когда берёшься за работу с юношеским энтузиазмом, когда в процессе работы раз за разом испытываешь детский восторг!

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

И это работает! Правда, недолго…

https://habr.com/ru/post/646149/

#habr
Serverless 2021

Статья в стиле "ссылочная комната" про мир serverless в 2021-ом. Вкусная находка для тех, кто хочет поглубже вникнуть в Serveless подход построения приложений. А для тех, кто впервые слышит - прочитайте сперва эту вводную коротенькую статью, ну или хотя бы текст ниже.
В общем, сеньоры направо, джуны налево 😃

Что такое Serverless?

Если совсем коротко - эволюция использования ресурсов хостинга для ваших приложений. Это как каршеринг - плати только за время проведённое непосредственно за рулём (pay-as-you-go). Удобно и не нужно покупать свой авто.

Если не в двух словах, а в трёх - давайте на выдуманном примере. Вот есть у вас, допустим какой-то скрипт. Допустим новостной. Допустим, он ходит раз в час на сайт news.com, собирает все ссылочки и скидывает вам в Telegram. Ну и попутно ... в базу кладёт. Прекрасно.

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

Идёте вы на какой-нибудь хостинг, а-ля DigitalOcean, покупаете там самый дешёвый инстанс за 5$. Ну и базу допустим разворачиваете не там же, а на ещё одном инстансе (просто для примера).

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

Serveless подход как раз про это. Вы шагаете, допустим, в AWS => деплоите свой код на Amazon Lambda => делаете пару магических пассов в виде настройки доступов и cloud watch, который будет дёргать вашу лямбду раз в час. А базу ... юзаете тоже амазоновскую - nosql DynamoDB к примеру. Красота!

Но... зачем? А затем, что теперь вы будете платить ... примерно ничего. Ну или около пары центов в месяц за пример выше. А по факту, это вообще будет бесплатно, т.к. у амазона есть free tier т.е. бесплатные лимиты и скорее всего вы в них уложитесь.

Чем сложнее приложение, тем тут больше нюансов - всё нужно "считать" по итогу, но serverless и правда позволяет сильно сократить затраты для пет-проектов (и не только) и не держать развёрнутую инфраструктуру при отсутствии траффика.

Уже года полтора пользую подобным образом и вам советую. Оно есть не только на амазоне, а во всех "приличных домах Парижа облаках".

Так что если до сих пор не в теме - выделите часик-другой и почитайте что за зверь 😉

#habr #авторское
Радио-Т 767
Umputun, Bobuk, Gray, Ksenks, Alek.sys
Айтито́ту скоро автоматизируют VS джуны вопасносте ^^

Переслушиваю ранние подкасты #РадиоТ (этот отрывок из августа 2021), и вот ребята делятся впечатлениями об OpenAI Codex. Вырезка на 15 минут - весьма советую к прослушиванию, это супер завораживает. Ну и пугает немношк, чего уж.

Codex - разработка от MS, ноги которой растут из GPT-3 (3-е поколение нейронки по обработке естественного языка). И вот она уже намекает нам всем, что будущее автоматизации IT как профессии не сильно-то и за горами.

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

Ух! Дуров, верни стену всё как было!
Так ребят, переписываем и передаём дальше, в глубь опенспейса. И смуззи не пролейте!
#humor
Небольшая стори о том как мучают джунов. Расследование!

И о том как у сеньора немного подгорело с джуновского задания xD

История :

Есть у меня подруга, которая подалась в QA (тестирование), проходит сейчас стажировочку в одной конторе и вот дали ей задание, звучащее примерно следующим образом :

Понять как работает http заголовок Last-Modified и If-Modified-Since, а так же продемонстрировать в рамках "картинок с учебного сайта" работу этого хедера.

Задание в целом как задание, если бы не одно но. Пишет мне, что уже пол дня убила и не понимает ничерта. Теорию вычитала. Разобралась как через Fiddler "подменить" этот заголовок на нужный. Но почему-то не работает. Классика, явно просто какую-то мелочь пропустила, подумал я и взялся помочь.

И так. Как работает этот заголовок можно прочитать тут. Есть некий сервер и картинки на нём. В ответе картинки сервер отдаёт Last-Modified в формате "Wed, 11 Sep 2019 09:41:31 GMT". Оке, гуд.

Значит.... если мы в запросе к серверу добавим If-Modified-Since со значением "Wed, 11 Sep 2019 10:41:31 GMT", т.е. просто добавив +1 минуту к Last-Modified, то сервер должен отдать нам 304-ый status code, что можно интерпретировать как "дружок, картинка не менялась, возьми-ка её из кеша своего локального". И наоборот, если отнимем минуту - сервер должен нам вернуть 200-ый статус с самой картинкой.

Проверяем. Делаем запросик прям в браузере, меняем его "on-the-fly" и ..... и правда не работает. Странно. Ок, думаю - может я чего не понимаю. Открываем postman, эмулируем запрос там и ... ситуация та же. То ли лыжи не едут, то ли я пхпшник.

Копаем причину!

Даже могучий stackoverflow мне тут не помогает. Думаем. Открываем бутылочку пива. Снова думаем. Какой-то shit, ну чесн-слово. Где-то тут я уже начинаю сомневаться в своей синьористости. Подруга тоже 😂

Окей. По ответу сервера видим так же, что у нас есть заголовок server, который сообщает нам, что на сервере отдаёт статику "nginx/1.18.0 (Ubuntu)". Ничего необычного. Nginx - это классика отдачи статики. Сысоеву привет ^^ (это создатель nginx'а. Недавно была новость, что он покинул проект :( ).
Смотрим на версию nginx'а. 1.18. Гуглим и оказывается, что релиз этой версии был в .... 2012. Что в целом меня тоже не сильно удивляет, конечно, но ... десять лет назад. Смотрим описание ченджлога, а там как раз в новых версиях что-то написано про импрувмент If-Modified-Since!

Нет, ну не может же это быть таким драматическим совпадением, верно? Идём на сайт вики, где установлена последняя версия, проверяем на картинке с их лого - Нет, ну [censored] - всё работает как и ожидается. По пути нагугливаем сайт https://last-modified.com/ru/if-modified-since.html, единственной задачей которого проверить - работает ли If-Modified-Since на сервере. И что мы видим ...

Результат: провалено

Сайт отдал время последней модификации, но не отреагировал на If-Modified-Since. Запрошенное время: Wed, 11 Sep 2019 09:42:11 GMT.

Нет, ну это прекрасно. Т.е. джуну дали невыполнимое задание, получается. Красиво!


Выводы :

1) Если у вас так себе "курсы" - имейте ввиду, что вам просто в теории могут дать кривое задание. Поэтому очень важно учиться у проверенных ребят, иначе и без того сложные задания могут вообще не поддаться. По идее, это супер-редкость, но как видите... шанс есть :)

2) Не стесняйтесь дёргать ваших кураторов, если что-то не получается. Ну или ваших друзей-синьоров. Ну или - хотя бы ребят в айтишных специализированных чатах.

3) Магии нигде в айти нет, всё можно "раскопать". Ну.. кроме нейронок 😂

ps. Забавным открытием было, что nginx настолько умный, что просто поменять, к примеру, месяц - не меняя день недели - не катит. Он валидирует дату не только по формату, но и на логику самой даты. Никаких ошибок в ответе вы конечно же не увидите. Ну и "11 Sep" заменив на "9 Sep", допустим - тоже не катит. Нужно писать "09". кек

Удачи всем в обучении/познании и да прибудет с вами 🍺

#авторское
Немного про отказы на собеседованиях. Принимайте это легко. Как путь.

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

Грустно, не если вам отказывают, а если принимают "абы как" в "абы куда" писать "абы что" с такими же "абы какими" коллегами на галеру с названием "DPHv". И вы только через полгода узнаете, что DPHv это аббревиатура к "da po [censured] vse".

Так что не бойтесь отказов, это часть процесса 😉

#habr
🔥2👍1