en
Feedback
Саня Технадзор 🦾

Саня Технадзор 🦾

Open in Telegram

Не пишите законы, пишите код. И обучайте код. www.apavlyut.ru

Show more
264
Subscribers
No data24 hours
-17 days
+2330 days
Posts Archive
Web3 — как это понять? Это конепция-объяснялка для быстрого входа в тему. Не точнейшая модель — деталей там очень много, но с
Web3 — как это понять?
Это конепция-объяснялка для быстрого входа в тему. Не точнейшая модель — деталей там очень много, но судя по отзывам понятная. Этому объяснению идеи крипты уже почит 10 лет, обновляю и делюсь ещё раз:
Кратко — это прямая реализация паттерна Карла Маркса абстрактный труд. При помощи крипты он становится материальным. Сколько табуреток будет стоить гитара? Для расчёта по Марксу нужно выделить абстрактный труд, который необходимо купить на рынке, чтобы произвести как гитару так и табуретки — об этом читайте, изучайте. На деле это токенизация. Представь, что ты работаешь в Яндекс.Такси и накопил там опыт. Не просто заказы и оценки, а ещё стиль вождения и прочие детали. Крипта делает этот опыт извлекаемым и достоверно предъявляемым, то есть — твоим. Если функционирование системы построено на криптопротоколе, то менеджер Яндекса не сможет сам что-то туда вписать или скрыть то, что по протоколу уже зафиксировано. Выводы: 1. Твой накопленный опыт действий (результатов) принадлежит тебе. Всегда. 2. Ты можешь спокойно учесть свой опыт вождения как прямой опыт работы в другой службе такси, которая это принимает. 3. Ты можешь купить продукты в Ашане за свои "накатанные" [токены]. Твои токены "майнятся" в момент выполнения твоей работы. Это очень грубое объяснение. Web3 — это попытка выйти на такую инфраструктуру. Есть решения, есть пути, многие этим заняты. И да, на данный момент мы чаще слышим только про обезьяньи NFT и непонятные "хакерские атаки" на биржи. Сегодняшние биржи — это просто банки, мимикрирующие под новое и одной ногой опирающиеся на текущие финансовые потоки. Разрушение текущего мироустройства, происходящее вокруг, стимулирует приближение необходимости в таких инструментах и инфраструктуре, как Web3.
Сегодняшний кризис финансовых структур — это, в первую очередь, кризис доверия, где все делают что хотят, в меру своих возможностей. Именно проблемы доверия медленно, но верно переводят весь мир на инструменты, где гарантией доверия выступают не люди, а алгоритмы. И глядя на обложку Economist можно констатировать — как-бы не интерпретировались такие обложки, но попадающая на них тема и акценты как минимум лежат на столе.
Всё уже есть, всё отрабатывается, игроки занимают свои места: инфраструктурный уровень готов, есть все формы блокчейнов, DeFi (распределённые финансы), DApps (те самые приложения), NFT — это вовсе не про картинки, DAO — коллегиальные формы управления. А когда выбора не останется — или подключайся к крипте, или жги костёр, чтобы согреться, — вот этот момент и заставит всех оказаться в этой системе. Условной компании-разработчику ПО на заказ было бы неплохо, если бы заказчик оплатил всё, что они потратили в его пользу — результаты работы программистов. И не важно, нравятся они ему или нет, нет опции отказаться и сказать что их не было, или они не нравятся. Есть опция получить совместный результат, включить голову и на следующем шаге сделать так, как понятно и нужно. Или не делать. Но не выкручивать руки разработчикам. А если разработчики ничего не выдали — то и оплачивать им нечего, и не выкручивать и не динамить заказчиков. Это лезвие бритвы, которое будет обоюдо острым и крайне эффективным. Если весь процесс протекает на условной инфраструктуре, которая по общему согласию существует и всех устраивает (консенсус достигнут), тогда мы наблюдаем на практике решение проблемы византийских генералов — когда ты никому не доверяешь, но тебе нужно работать с контрагентами для получения совместных результатов. Какой вывод? Изучать и знать обязательно! Если с ИИ всё предельно понятно — шайтан-машина, электронные мозги, турбо-вычислитель, то вот Web3 — это огромный пласт концепций, которые медленно, но верно накрывают всё вокруг. Это плотный тренд на 5-10 лет.

В чудесные времена живем, товарищи!

Ставь класс у кого есть совпадение
Ставь класс у кого есть совпадение

Как говорят положняк сегодя такой
+1
Как говорят положняк сегодя такой

Маск тырит шутки.
Маск тырит шутки.

Вибрационное кодирование
Вибрационное кодирование

Будущее ИИ - Ruby on Rails Нашел интересную статью The future of AI is Ruby on Rails Интересно, похоже, что автор прочитал мой пост и комментарии к нему, включая обсуждения в комментариях про Lisp. Там же он дал отсылку к крутости Lisp от Пола Грэма. Lisp с его абстракциями и макросами — это вдохновитель Ruby. Можно интерпретировать это как "тогда был Lisp -> сейчас есть Ruby on Rails". В материале упоминаются и типы — по сути, они помогают обеспечивать правильность и работоспособность уже на уровне чтения и проверки кода (привет онтологам). Также говорится о количестве токенов в языках с хорошим бойлерплейтом — тратят больше. Позволю себе вольный частичный перевод, который замечательно подчеркивает основную идею: > Ruby — идеальный язык для LLM (больших языковых моделей):
Golang проще для людей, чем для LLM, потому что все дополнительные токены Golang можно более или менее безопасно игнорировать. Вы можете пробежаться взглядом по if err != nil или циклам for. LLM не может так же быстро пробежаться взглядом: токен занимает место в его контекстном окне, независимо от того, является ли он шаблоном или нет. Должен ли LLM писать минимизированный код, чтобы занимать как можно меньше места? Я так не думаю — ему всё равно нужны выразительные имена переменных по той же причине, что и человеку. Таким образом, идеальный язык для LLM — это язык, в котором на одну функцию приходится как можно меньше токенов, но при этом он остаётся читаемым. Другими словами, это язык, разработанный с нуля для удобства разработчиков. Это же Ruby! Вся суть языка в том, что вы должны уметь выражать свои мысли как можно более кратко и элегантно, даже если для этого потребуется больше вычислительных ресурсов. У Ruby on Rails есть свои проблемы — мягко говоря, — но он хорошо справляется с тем, чтобы уместить множество функций в небольшой объём кода. Именно это нужно большим языковым моделям.
и
Тем не менее, это интригующая мысль. Ruby — самый «человечный» язык, который я знаю: он написан для людей, в нём есть интересные человеческие слабости, он читается как человеческий язык и так далее. Было бы довольно иронично, если бы он оказался ещё и языком роботов.
В нужном направлении лежим, товарищи!

Прогнозы сбываются ЕЩЕ быстрее чем ожидалось. Сбывается ещё один пункт прогноза: ИИ — это инструмент, которым по-настоящему э
Прогнозы сбываются ЕЩЕ быстрее чем ожидалось. Сбывается ещё один пункт прогноза: ИИ — это инструмент, которым по-настоящему эффективно могут пользоваться только текущие инженеры уровня Senior и выше. В чём это проявляется? Крышка саркофага тайных знаний захлопывается самими программистами:
Я уже сам не понимаю, что пишу, не читаю, просто копипастю ошибки.
Цикл разработки, отладки и создания выпал из производственной цепочки. Но про отладку — это отдельный анекдот. В Твиттере тем временем вирусится пост. Я даже подозреваю, что это хитрая реклама, но оставим это на уровне догадок, потому что, если это реклама, то очень жизненная и качественная.
Некто, не являющийся разработчиком, начал делать проект по созданию (LLM генерированию) сайтов исключительно на основе текстовых описаний — Вайб Кодингом. Всё взлетало прекрасно, но в какой-то момент посыпались ошибки, о которых он ничего не мог сказать. Сам Cursor тоже ничем ему помочь не смог: полезли авторегистрации премиум-аккаунтов и прочие проблемы. В общем, его взломали, используя какие-то детские уязвимости в безопасности, о которых он даже не подозревал, а вайб LLM делал ровно то, что он просил.
Тут сбывается ещё одна часть прогноза: стоимость услуг инженеров высокого уровня взлетит до небес. Этот случай — наглядный пример, как это происходит. Услуга в чем: огромное количество проектов дойдет до релиза, у них будут пользователи, и даже деньги. Они все будут неподдерживаемыми. Разгрести эту кучу мусора сможет только опытный спец, создание которых на данный момент идустриально, в планетарном масштабе прекращено. Астрологи прогнозируют кратный или даже экспоненциальный рост числа таких запусков. Я думал, что на это уйдёт хотя бы год, чтобы всё вокруг заполонить этими великолепными решениями, но оказалось, что процесс уже пошёл. Действительно, мы получили инструмент в виде волшебной палочки или лампы Аладдина, напрямую подключённый к ящику Пандоры — к сегодняшнему интеллекту уважаемых и энергичных творцов нового поколения, не желающих ничего изучать или читать длиннее твита. Это напомнило мне ситуацию с одним давним клиентом. Они принесли модный тогда "кликабельный прототип" (предок фигмы и ко). Такие прототипы всегда создавали кучу проблем с несогласованностью, которые по цепочке, в процессе реализации, нарастали катастрофическим взрывом сложности, причём совершенно не связанной между собой. На одной странице они показывали, как кликается выбор календаря с двумя датами и типами событий, а на другой — открывали отфильтрованные события в форме, где они выведены по каким-то категориям. Это лишь пример, мысленная отсылка.
Кошмара там было гораздо больше, но это понятная иллюстрация: каждую деталь такого шаблона нужно вытащить, понять, что с ней делать, откуда брать данные, куда их складывать и так далее. То, что она (деталь) в данный момент где-то торчит, — это прекрасно, но о её дальнейшей судьбе, откуда она взялась ни слова. Как правило, великий стартапер тоже ничего об этом не знает. Разбор такого прототипа занимает не недели а месяцы, чтобы выявить что там происходит в текстовом доументе, согласовать, убрать проблемы, и в итоге отказаться от 90% "спроектированного" потому что это не связано и просто не будет работать, не решает запрошенных вопросов. Увидеть в моменте это невозможно кликая такой прототип — но это считается "задача поставлена", "сколько и когда, куда кидать предоплату". Работа по такому заданию на моих глазах убила 3 веб студии, и у меня был такой клиент, я пытался реверс инжинирингом восстановить смысл (с регулярной обратной связью разумеется — от у вас так, и тут так, как надо посутпать?) — 6+ месяцев вместо 2х недель на всю разработку такого решения. Сумма конечно была оплачена 75% от 2х недельной оценки, ни цента более, результата все еще нет, а задача поставлена. Я тогда прочуствовал кровавый вкус фибоначчи.
Сейчас я бы назвал вайб-кодинг ренессансом такого прототипирования, только с дикой скоростью (x100) и огромным количеством проблем, запрятанных под ковёр. Очередной чекпойнт прогноза пройден. Едем дальше.

Прогнозы сбываются быстрее чем ожидалось. Дисклеймер: прогноз работает по принципу блондинки — 50 на 50, сбудется или не сбудется. Какие уж тут могут быть вопросы. Но уже явно оформились два тренда, о которых я говорил. Они хорошо закрепились и обрели своё имя. Итак, первый — это MCP, или Model Context Protocol. В чём была моя оценка? Я говорил, что API — это не совсем то, нужно что-то вроде WSDL, чтобы была "дискаверабельность", изучаемость. Можно подключиться и опросить как тобой пользоваться. API — это просто способ "тыка", а вот изучаемость нужна для агентов. Сейчас она нашла своё место в этом MCP. Уже каждая уважающая себя система должна иметь MCP, но предлагают еще делать /llm.txt, готовясь к "мёртвому интернету", который сам себя не построит. Это был даже не прогноз, а очевидность, но теперь это факт, движемся в правильном направлении. Второй и важный тренд, который я подаю не только в прогнозе, заключается в том, что мы все так или иначе руководители. Если убрать множество задач, которыми занимается руководитель по роду деятельности, одна из ключевых — это предъявление требований к результату. Об этом я и говорил в прогнозе: акцент в разработке сместится на осознание полезности резульатов. Заменят или нет? А вот какой-то важный дядя сказал, что к концу года весь код будет написан на 90% ИИ. Глава Microsoft уже говорил: 90% кода — это CRUD’ы.
CRUD — create, read, update, delete (+index, +show). Базовая единица сути софта: принять данные, записать, обновить, удалить, просмотреть список, просмотреть одну запись.
Я регулярно предлагаю оценивать полезность любой разработки по количеству таких созданных инструментов для обмена данными. Это измеряемо. Это и есть полезное. А насколько оно полезно в жизни, показывает объём данных, проходящих через эти "крудики". Но тут наступает вселенский раскол: крудов много не надо для дела. Сделал дело — и что дальше? Нужно чем-то занимать время. Такая оценка будет проблемой и для менеджмента, и для разработки, и поэтому мы имеем индустриальный консенсус в усложнении и затягивании разработки. Каждый заказчик и бизнесмен это чувствует, но не может зацепиться. Разработчики начинают с удовольствием заниматься изобретениями и оттачиванием новых способов писать эти самые CRUD’ы, пример VScode. Сколько там часов похоронено мы не знаем. Ещё раз: это не мои слова, это не я — 90% всего бизнес-софта, а также потребительского, — это CRUD’ы. При этом я хочу указать на иной контекст. В одном из чатов, где эти словечки имеют смысл, возник вопрос: всплыл старый добрый PRD, и интерес к нему только усиливается, что случилось? Прозрение? Люди ищут в Google Trends: "что значит PRD?". А это не что иное, как требования к продукту. Их пишут в документе под названием Product Requirement Document. Причина популярности вот в чем - Claude (ИИ-разработчик) и туториалы о том, как написать продукт, который работает, а не кучу мусора. И ключевым элементом там оказался документ PRD, с которым LLM начинает играть с тобой в напарника. Фиксирую прогнозную точку смещения в полезность: требования надо предъявлять, чтобы не получился мусор на выходе. Эта ответственность сейчас наконец-то проявилась и предъявлена. Мы пришли к этой точке, и тут начинается самое интересное. Эти уроки и гайды заставляют формулировать требования, складывать их в файл, и этот файл постоянно прикладывают к промптам для Claude. Некоторые пошли дальше и стали просить сам инструмент написать требования. Но тут, как говорится, главное при проведении следственных действий не выйти на самих себя. Интересно, как проживается этот момент осознания всеми LLM-творцами, когда они понимают, что проблема кроется в том, что у них в голове и в их понимании и культурном багаже, а не в инструменте или исполнителе.

Почему крупные проекты будут на Ruby Ruby максимально производителен и эффективен. Теперь ещё и с AI. Для многих это неожидан
Почему крупные проекты будут на Ruby Ruby максимально производителен и эффективен. Теперь ещё и с AI. Для многих это неожиданность, но я не удивлён — это логичное продолжение философии. Раньше народ любил сравнивать Ruby с другими языками по скорости выполнения в синтетических тестах, где Ruby всегда заметно проигрывал. Мац (Юкихиро Мацумото) создавал Ruby для кайфа — чтобы писать было приятно, прикольно, по фану. Комфорт достигается за счёт отсутствия визуального мусора и лишних конструкций. Метапрограммирование подарило нам Rails — инструмент, который остаётся уникальным, несмотря на все попытки скопировать его на других платформах. Всё дело в метакодинге. Кода просто меньше. Даже кратно меньше. Скорость Ruby оказалась не в рантайме, а в производительности труда — в скорости получения результатов для бизнеса. Rails это только усилил. А кто умеет считать деньги и ценит надёжность на века — тот выбирает Ruby. И вот неожиданный поворот: на минимальных задачах генеративный код на Ruby стоит в три раза дешевле, чем такой же фарш на TypeScript. Понимая законы энтропии сложных систем, с ростом проектов разрыв будет увеличиваться не линейно, а по законам Фибоначчи или даже экспоненциально в конце концов. На простом человеческом языке: чем дальше в лес, тем хуже всем. Вот тут хочется пояснить за Ruby и почему он вообще должен остаться в деле, если код за нас пишут роботы. Сделаем отсылку к презентации Tesla Software 3.0 (года три назад или больше), где инженер Tesla объяснял, что исполняемый код для машин они уже не пишут — они его тюнят. А пишут они инструменты, которыми этот код настраивают. Если разобрать рантайм, то это и есть предшественник наших LLM: крутится-вертится какой-то чудо-ум, а в руках у него наши педали, руль и прочее — то, что мы называем "тулинг" или "инструменты". Это простые функции, доступные через API для программного вызова. Эта шайтан-машина с сотней тысяч глаз всё видит в моменте и сама вызывает нужные функции. При этом функции ещё и оцениваются: получилось хорошо или плохо. Систему оценки — приняла машина правильное решение или нет — тоже сделали отдельной функциональностью. Её регулярно проверяют большие асессоры: люди, которым показывают картинку и её описание с просьбой оценить — ок или не ок. Теперь умножаем этот "ок/не ок" на все автомобили. Данные стекаются в общее место, и все машины одновременно обучаются всему сразу. Успешные "веса" (параметры вызова инструментов, которые привели к хорошему поведению) раскатываются как предпочтительные для всех автомобилей. Надеюсь, как-то пояснил за господина Маска. Суть в том, что это вполне понятное положение дел. Просто у Маска сошлись все карты, деньги и стволы, поэтому он молодец. Но весь мир подтягивается моментально — особенно Китай, и не только в авто, но и в ключевых звеньях этих чудо-машин, таких как процессорная мощность. Но даже несмотря на все эти технологические достижения, поймите: код всё равно будет нашим. На наших фреймворках. Ещё очень долго — лет 10 точно, а дальше не знаю, как заглянуть за горизонт. Вайб-кодинг — это всё ещё про кодинг, про все наши фреймворки и прочие человеческие инструменты. Робот просто учится ими владеть. Технологический скачок случится не тогда, когда весь наш софт сможет писать ИИ-машина, а тогда, когда весь наш софт будет написан ИИ-машиной, внедрён в эксплуатацию, и потреблять его будет ИИ-машина, а мы как вид покинем этот мир. Вот тогда весь наш код и будет заменён — если продолжать такие прогнозы про "весь код напишет ИИ". А учитывая, что это просто дешевле, понятней и приятней даже для машины, выбор мастеров как всегда очевиден — Ruby.

Архитектура скоринга и само-проверки ваших запусков Пока я всё ещё готовлю интересный запуск — или, точнее, перезапуск, как я бы это назвал, — поделюсь кое-чем любопытным. Вспомнил, что у меня были нужные записи и материалы, которые лежали в Dropbox. Им я не пользовался со времён царя Гороха, ещё задолго до известных событий с отключениями. Удивлён, что он до сих пор жив и работает. Спокойно авторизовался, в настройках увидел email с доменом .com, который не мог продлить по известным причинам. Без проблем поменял его на .ru — ничего не забанено, не удалено, все архивы на месте. А там столько замечательного! Вот и решил поделиться с вами основой, на базе которой я делал вайтпейперы для криптопроектов всем желающим. Смешное оказалось в том, что ни один из клиентов, заказывавших написание вайтпейпера, не смог в итоге пройти нужное количество шагов*. То есть сформулировать своё дело, под которое планировалось собирать средства граждан. * Для составления вайтпейпера не обязательно все предъявлять, но скоринг такого проекта будет соответсвтующий. Один из проектов оказался в ситуации, когда на коллективном созвоне выяснилось, что вообще нет ни проекта, ни замысла. Мне тогда сказали:
«Твоё дело — хлебало завалити и вайтпейпер пилити, да такой, чтобы нам деньги давали, а не вопросы нам задавать. Тут мы задаём вопросы».
Тогда я пересобрал все материалы, нарисовал схемы и картинки, составил чек-листы, записал 5 видеоуроков и продавал такой продукт — «Как сделать правильный вайтпейпер». Брали хорошо, но очень быстро закончилась тема, буквально через две недели после публикации такого продутка по всем возможным СМИ прошли скам рейтинги и общее отношение к крипто ICO тогда прямо упало в ноль, и поток таких дельцов резко сократился. Но все же, вдруг кому-то будет полезно. Эта архитектура применима к любому запуску — если вы что-то придумываете, хотите реализовать, кому-то продать и так далее. Она даёт структуру вопросов и последовательность их задавания самому себе, чтобы получить тот самый скоринг вашего проекта по выживаемости и достижимости. Тут нет блоков про рынки и прочие вещи, потому что это всё эфемерно и меняется по сто раз. Суть одна — в понимании потоков и узлов обмена, но об этом я расскажу позже, stay tuned. Кстати, даже материалы на эту тему были: https://vc.ru/crypto/29434-kak-kriptoinvestoram-ocenivat-whitepaper-kompanii. Сам матириал мы писали в паре с замечетельным крипто-юристом, очень грамотным специалистом в этом вопросе по имени menaskop. На здоровье!
P.S. Смешнее всего, что доступ к Dropbox не потерялся, а вот на vc.ru я даже через поддержку не смог восстановить аккаунт. Хотя контекст одинаковый: и там, и тут был email на домене от GoDaddy, который я просто физически не смог оплатить в определённый час X. Не стал заниматься переносами, ушёл в .ru-зону. Так вот, Dropbox меня не «убил», разрешил залогиниться по старому адресу и поменять его, а ребята из vc.ru сказали: «Заводи новый аккаунт». Та же авторизация через Facebook у них не работает и слетела. Вот так и используй соцсети для авторизации. Почему-то «наши» оказались куда менее «нашими», чем «ненаши».

Непопулярное мнение — более редкий навык ведет к более скорому трудоустройству. Ситуация с ответом на вопрос, какой язык прог
Непопулярное мнение — более редкий навык ведет к более скорому трудоустройству. Ситуация с ответом на вопрос, какой язык программирования учить или какой профиль выбрать, связана с понятным опасением оказаться без работы. Но никто не смотрит на простые факты. Вот популярный язык программирования — ок, сравнивают: сотни тысяч вакансий. А вот непопулярный — всего 10 тысяч. Практически все офисные навыки работы имеют удаленный формат. Те, что не имеют — не проблема приехать и поработать в офисе. Но почему нужно биться именно за 100 тысяч? В чем логика? Все 100 тысяч даже посмотреть не получится. Второй завтрак не съешь. Вам в итоге нужна всего одна вакансия. В менее конкурентной среде проявляется важный момент — нехватка специалистов, и им будут платить больше. Ruby лучше, чем Python. Приоткрою древний секрет: наличие метапрограммирования подразумевает такие мыслительные конструкции, которые удерживает в голове разработчик, чтобы ухватить контекст и двигаться на его основе. Раньше это произносили вслух, и поэтому искали рельсовиков и рубистов — такие специалисты считались более самоорганизованными и дисциплинированными, склонными к порядку и планированию, к удерживанию рабочего пространства вокруг себя в порядке и управляемости. Python — это просто способ заинклюдить mathlib. При росте конкуренции сильно падает стоимость, я надеюсь, это не надо объяснять. Но при этом в высококонкурентной тематике вы даже не попадете на собеседование, потому что из-за мощного потока резюме их фильтруют по старому доброму принципу (детали не важны, суть та же):
- Из этой стопки в 100 резюме берем первые 10. - А как же остальные? - Им не повезло! А с неудачниками мы не работаем!

Вот сидишь ты за кодом, и в хороший день можешь выдать больше сотни строк для сайта или бота. Ну, подумай, если два разработч
Вот сидишь ты за кодом, и в хороший день можешь выдать больше сотни строк для сайта или бота. Ну, подумай, если два разработчика по 10 часов пашут над проектом, то там в итоге… Я тебе говорю, разработка сайтов — это плод интернета! Ты можешь делать мини-приложения для Telegram, ботов, CMS, CRM, ERP, интегрировать API, настраивать AmoCRM, Bitrix24, WordPress, размещать на хостинге, крутить VPS. Знаешь, как дизайн-системы строить, Tailwind подключать, brand-colors подбирать, архитектуру продумывать, скейлинг настраивать, шардирование разворачивать, бэкапы крутить, шифрование ставить, RBAC и ABAC внедрять, под ФСТЭК готовить, госзаказы пилить, бизнесы запускать, доступы раздавать, с 1С дружить, Page Speed оптимизировать, SEO поднимать, скорость работы ускорять, кэш настраивать — HTTP-кэш, Russian Doll Cache, DB Query Cache. Пишешь на CSS3, HTML5, JavaScript, Ruby, Rails, Slim, базы крутишь — Postgres, SQLite, фоновые задачи ставишь, сервис-воркеры прикручиваешь. Это стартапы, корпоративные сайты, интернет-магазины, PLM-системы, CRM-системы, нестандартные решения, каталоги, новостные сайты, тематические биржи, веб-сервисы, API для мобилок, посадочные страницы, ERP-системы, сайты для спортивных клубов — да что угодно! Для бизнесменов, предпринимателей, директоров, руководителей любого уровня. Ну, это, по-моему, всё… Хотя нет, ещё пару идей есть!

🌷🌷🌷🌷🌷 С 8 марта!
🌷🌷🌷🌷🌷 С 8 марта!

Будьте бдительны
Будьте бдительны

Я пока тут делами занят, скоро будет очень жирненький анонс на тему фриланса и удаленной и распределенной работы. Так что это
Я пока тут делами занят, скоро будет очень жирненький анонс на тему фриланса и удаленной и распределенной работы. Так что это вам не канал про шутки-минутки, не теряйтесь. Но чтобы скрасить ожидание — очередная шутка-минутка.

Лайфхак
Лайфхак