Полюбас у каждого разработчика есть нелюбимый тип тасков. У меня, как у бэкенд трудяги, в топе этого списка всегда находится интеграция с third-party api. Потому что
* это всегда куча неопределенности, которую невозможно оценить
* в 90 процентах случаев дока говно
* это всегда жопа с тестированием
Однако даже среди таких задач, оказывается, существует подвид задач, которые абсолютно прокляты. Я сейчас говорю про интеграцию с платежным api google и apple. Я бы даже расширил это до "интеграции с appstore и google play api".
Третьего дня свалилась задачка, что пора бы обновить интеграцию на сервере с apple app store api, потому что текущий способ устарел. Вот такое конечно особенно ценишь, когда все работает, но блять устарело. В итоге ценности для бизнеса ноль, для разработчика удвольствия ноль, а пердолинга по самые помидоры. Штош.
Карочи, почитал доку, и флоу в целом то понятен. Но проблема в том, чтоя php разработчик у меня нет айфона. И выясняется, что ты ну никак вот не можешь протестировать платежку без физического девайса. И даже, если ты сидишь на маке, и собрал приложение, запустил его на эмуляторе — все равно ты не сможешь ничо сделать.
Тоже самое с гуглом. Если хочешь тестировать платежки в google play, нужен девайс с андроидом🤷
Почему так? ну потому что якобы только на девайсах есть интеграция с эпп сторами. Но я считаю, что это просто высосано из пальца Тима Кака😡
Есть консоль разработчика, есть сэндбокс аккаунты. Какие проблемы встроить прогон тестовых сценариев прямо в консоли разработчика для сэндбокс аккаунтов? Вот мне, как бэкендщику, нахера вот это все связанное с девайсами? мне надо просто, чтоб данные появились на сервере у них. Неужели я так много прошу😢
еще и sdk под пхп не завезли 😔
* это всегда куча неопределенности, которую невозможно оценить
* в 90 процентах случаев дока говно
* это всегда жопа с тестированием
Однако даже среди таких задач, оказывается, существует подвид задач, которые абсолютно прокляты. Я сейчас говорю про интеграцию с платежным api google и apple. Я бы даже расширил это до "интеграции с appstore и google play api".
Третьего дня свалилась задачка, что пора бы обновить интеграцию на сервере с apple app store api, потому что текущий способ устарел. Вот такое конечно особенно ценишь, когда все работает, но блять устарело. В итоге ценности для бизнеса ноль, для разработчика удвольствия ноль, а пердолинга по самые помидоры. Штош.
Карочи, почитал доку, и флоу в целом то понятен. Но проблема в том, что
Тоже самое с гуглом. Если хочешь тестировать платежки в google play, нужен девайс с андроидом🤷
Почему так? ну потому что якобы только на девайсах есть интеграция с эпп сторами. Но я считаю, что это просто высосано из пальца Тима Кака😡
Есть консоль разработчика, есть сэндбокс аккаунты. Какие проблемы встроить прогон тестовых сценариев прямо в консоли разработчика для сэндбокс аккаунтов? Вот мне, как бэкендщику, нахера вот это все связанное с девайсами? мне надо просто, чтоб данные появились на сервере у них. Неужели я так много прошу😢
еще и sdk под пхп не завезли 😔
👍3💯3❤1🤝1
Вчера Валентин Удальцов с канала @phpyh разобрал код hell2shape на стриме, за что ему огромное человеческое спасибо. По итогу даже отправил pr с небольшим фиксом😍В конце выяснилось, что код hell2shape был написан с использованием llm 😀
Я же, пользуясь инфоповодом, решил в очередной раз высказаться про вайбкодинг. Ибо прошло уже полгода с моего предыдущего поста про это дело.
Знаете, что общего между мной и Меркурием?Мы оба бываем очень ретроградными
Короче говоря, в своей работе я все ещене вайбкожу использую ллм только в чатике. Но надо как-то развиваться, чтоб не деграднуть совсем. Проект hell2shape я начал исходно с прицелом на попробовать вайбкодинг.
Сама по себе задача очень простая и прямолинейная. Есть понятные ввод и вывод. Есть понятные стадии обработки: лексер, парсер, генератор. Мне показалось, что это будет идеально для проверки возможностей ллм. В качестве агента решил использовать Cline + claude sonnet 4.5 (ебать это дорого оказалось)
По итогу llm бустанул меня так, шо я охерел. Учитывая, что писал я это вечерами после работы, будучи уже очень усталым, польза от ллм становится х2. Более конкретно, ллм помогла в следующем:
* создание каркаса приложения (генерация файлов с классами, структура папок и накидывание сигнатур методов)
* написание тестов
* написание документации (это вообще просто бомба)
* создание UI (ненавижу фронтенд)
НО!
Как только начиналась конкретная реализация, там в 80% случаев просто херня какая-то. Причем на всех уровнях. И если на макро уровне ты сразу видишь, что ллм неправильно использует паттерн visitor, то на микро уровне нейробред заметить гораздо тяжелее. Он часто выглядит ничошно так, уверенно. Но по факту, например, больше половины регулярок лексера были абсолютно неправильными.
Или вот решил я возвращать phpdoc вместо типов, о чем писал до этого. Понятное изменение. Сказал клоду, шоб делал. В итоге клод просто взял результат, разделил строку по \n, добавил префиксы пхпдоков и собрал обратно. Вроде валидно, но по факту ведь говно. Если бы у меня был заказчик, который торопил меня, я бы даже принял такое и поставил тудуху на фикс)
Поэтому я ему сказал "братиш, давай-ка ты все же генератор переделаешь". Клод кивнул, и ушел в бесконечный безуспешный цикл говна и палок. В итоге, все равно пришлось руками писать🤷
Мне кажется, что до сих пор не существует какой-то выверенной стратегии правильной работы с ллм. Тут все еще развивается и постоянно че то новое появляется. И то, как человек использует ллм зависит от
* персоналий
* проекта
Первый пункт очень важен. Вот мне очень тяжело ревьюить код, я это ненавижу просто. Это с одной стороны. А с другой стороны, я тот еще контрол фрик. Тяжело отпустить вожжи и просто принять говнокод в каком нить маловажном месте. Поэтому моя работа с ллм — это итеративные маленькие изменения, с мануальным апрувом каждого из них. И это гораздо медленнее "классического" вайбкодинга.
В этом смысле меня хорошо понимает зарубежный блогер ThePrimeagen. Он недавно зарелизил тулзу 99. В своей демке он показывал, как он пишет код с ней. И это просто моя мечта. Он пишет "заготовку" для метода с типами, выделяет ее, а затем просит ллм написать код внутри этой заготовки, который выполняет конкретную задачу. И это то, что мне откликается.
Много где слышал мнение, что нельзя отдавать тесты на откуп ллм. Но в моем случае специфика проекта такова, что тесты ллм как раз таки доверять можно и нужно. Потому что я имею дело с чистыми функциями, а готовить тестовые вардампы — это прям максимально неприятно. ллм это изи сделает.
Также специфика проекта это еще и об изолированности области, в которой вы вайбкодите. UI hell2shape — отличный пример. Я туда смотреть вообще не собираюсь. Мне этот html и css абсолютно не интересен. Более того, я еще и на компромиссы готов тут пойти, как единственный стейкхолдер. Поэтому здесь ускорение даже не в дестяки раз, а в сотни.
Кароче, тема пока что неясная для меня. Чувствую себя динозавром😢 Но польза от этого всего колоссальная.
Если не лень, пишите в комментах про ваши стратегии вайбкодинга🙏
Я же, пользуясь инфоповодом, решил в очередной раз высказаться про вайбкодинг. Ибо прошло уже полгода с моего предыдущего поста про это дело.
Знаете, что общего между мной и Меркурием?
Короче говоря, в своей работе я все еще
Сама по себе задача очень простая и прямолинейная. Есть понятные ввод и вывод. Есть понятные стадии обработки: лексер, парсер, генератор. Мне показалось, что это будет идеально для проверки возможностей ллм. В качестве агента решил использовать Cline + claude sonnet 4.5 (ебать это дорого оказалось)
По итогу llm бустанул меня так, шо я охерел. Учитывая, что писал я это вечерами после работы, будучи уже очень усталым, польза от ллм становится х2. Более конкретно, ллм помогла в следующем:
* создание каркаса приложения (генерация файлов с классами, структура папок и накидывание сигнатур методов)
* написание тестов
* написание документации (это вообще просто бомба)
* создание UI (ненавижу фронтенд)
НО!
Как только начиналась конкретная реализация, там в 80% случаев просто херня какая-то. Причем на всех уровнях. И если на макро уровне ты сразу видишь, что ллм неправильно использует паттерн visitor, то на микро уровне нейробред заметить гораздо тяжелее. Он часто выглядит ничошно так, уверенно. Но по факту, например, больше половины регулярок лексера были абсолютно неправильными.
Или вот решил я возвращать phpdoc вместо типов, о чем писал до этого. Понятное изменение. Сказал клоду, шоб делал. В итоге клод просто взял результат, разделил строку по \n, добавил префиксы пхпдоков и собрал обратно. Вроде валидно, но по факту ведь говно. Если бы у меня был заказчик, который торопил меня, я бы даже принял такое и поставил тудуху на фикс)
Поэтому я ему сказал "братиш, давай-ка ты все же генератор переделаешь". Клод кивнул, и ушел в бесконечный безуспешный цикл говна и палок. В итоге, все равно пришлось руками писать🤷
Мне кажется, что до сих пор не существует какой-то выверенной стратегии правильной работы с ллм. Тут все еще развивается и постоянно че то новое появляется. И то, как человек использует ллм зависит от
* персоналий
* проекта
Первый пункт очень важен. Вот мне очень тяжело ревьюить код, я это ненавижу просто. Это с одной стороны. А с другой стороны, я тот еще контрол фрик. Тяжело отпустить вожжи и просто принять говнокод в каком нить маловажном месте. Поэтому моя работа с ллм — это итеративные маленькие изменения, с мануальным апрувом каждого из них. И это гораздо медленнее "классического" вайбкодинга.
В этом смысле меня хорошо понимает зарубежный блогер ThePrimeagen. Он недавно зарелизил тулзу 99. В своей демке он показывал, как он пишет код с ней. И это просто моя мечта. Он пишет "заготовку" для метода с типами, выделяет ее, а затем просит ллм написать код внутри этой заготовки, который выполняет конкретную задачу. И это то, что мне откликается.
Много где слышал мнение, что нельзя отдавать тесты на откуп ллм. Но в моем случае специфика проекта такова, что тесты ллм как раз таки доверять можно и нужно. Потому что я имею дело с чистыми функциями, а готовить тестовые вардампы — это прям максимально неприятно. ллм это изи сделает.
Также специфика проекта это еще и об изолированности области, в которой вы вайбкодите. UI hell2shape — отличный пример. Я туда смотреть вообще не собираюсь. Мне этот html и css абсолютно не интересен. Более того, я еще и на компромиссы готов тут пойти, как единственный стейкхолдер. Поэтому здесь ускорение даже не в дестяки раз, а в сотни.
Кароче, тема пока что неясная для меня. Чувствую себя динозавром😢 Но польза от этого всего колоссальная.
Если не лень, пишите в комментах про ваши стратегии вайбкодинга🙏
YouTube
PHP-линч #30: phpyh/scaffolder, vjik/scaffolder, Feolius/hell2shape
Как устроен PHP-линч:
1. Во время стрима вы скидываете в чат трансляции ссылки на репозитории и в трёх словах описываете, что там. Это может быть ваш пет-проект или библиотека, а может быть компонент (не)известного фреймворка.
2. Я выбираю проект.
3. Ставлю…
1. Во время стрима вы скидываете в чат трансляции ссылки на репозитории и в трёх словах описываете, что там. Это может быть ваш пет-проект или библиотека, а может быть компонент (не)известного фреймворка.
2. Я выбираю проект.
3. Ставлю…
❤5🔥4👍3
Давненько не было лонгридов. Решил это исправить.
Сегодня у меня жесткий наброс на mypy с точки зрения пхп разработчика. Возможно у кого-то из питонистов сгорит срака. Но у меня она, знаете ли, тоже горит, когда я на питон переключаюсь😡
Mypy vs Phpstan: битва стат анализаторов
Ну и как всегда, feel free to написать коммент, и сказать, где я обосрался и неправ😚
Сегодня у меня жесткий наброс на mypy с точки зрения пхп разработчика. Возможно у кого-то из питонистов сгорит срака. Но у меня она, знаете ли, тоже горит, когда я на питон переключаюсь😡
Mypy vs Phpstan: битва стат анализаторов
Ну и как всегда, feel free to написать коммент, и сказать, где я обосрался и неправ😚
❤8🔥2👍1
Ну что! На улице rain, на душе pain, за окном cold, за компом old. А значит время поныть!
Есть впечатление, что качество айти продуктов будто бы в целом снижается. Думаю, те кто интересуется, давно уже в курсе про великолепство 11й винды и последней макоси. Собственно, поэтому я все еще сижу на предпоследних версиях. Лан, насчет винды — это не мое решение. Прост у меня старый комп, а микрослоп —компания пидорасов не смогли замотивировать меня на апгрейд 😢
Однако сегодня речь про компанию поменьше под названием jetbrains.
Не так давно они зарелизили ide под версиями 2025.3. Будучи парнем ссыкливым по жизни, я не бросился тут же обновляться. Тем более, что апдейт серьезный, и они там переработали графоний. И поскольку ui импрувед, вероятность баг резиста крайне мала👨🦳
Поэтому я дождался первого патча, а также поспрашивал в разных комьюнитях, че там и как. Меня заверили, что все на удивление ок. И тогда уже я решился. Как вы понимаете, этого поста бы не было, если бы все было в порядке.
Дело в том, что, когда мне надо открыть несколько проектов в одной ide, я предпочитаю интерфейс в одном окне с табами. Каждая таба — это отдельный проект. Так вот после обновления при открытии нового проекта ide стала нахер зависать с серым пустым экраном😡 и я не один такой. Вот тикет у них в трэкере. И это во всех продуктах, какими я пользуюсь (phpstorm, pycharm, goland).
Ну и вы можете сказать "че ты разнылся? ну бага и бага. это рабочий момент. они пофиксят"
Но это только часть истории! Дело в том, что предыдущие две недели я провел в грузии. И там я не смог этот баг ни разу повторить! Просто проблема испарилась! Хотя до этого, у меня была проблема не повторить этот баг, а открыть новый проект. Вернулся в рф. Первое же открытие проекта — сразу серый экран🫠
Ну и тут конечно умные люди могут предположить, что может быть дело в геолокации. Хотя какого хера это должно влиять на открытие проекта. Так вот, впн не помогает. Отключение вай фай тоже не помогает. И на конфигурацию мониторов тяжело спихнуть, потому что проблема существует в рф и не сущестует в грузии с одним и тем же монитором — монитором макбука.
Кароче, грустно это все. Ощущение такое, что литералли каждый апдейт ПО — это супер рисковое предприятие. Оно и раньше то было так. А теперь просто пиздятина какая-то. Компаниям похеру, че там выкатывается на рынок. Сырое, не сырое — надо релизить. А пользователь схавает. Ведь заставить пользователя свичнуться на конкурента — это надо порядком пользователя заебать. А порой конкурена и вовсе нет.
Так и живем🚬 Спасибо за внимание!
Есть впечатление, что качество айти продуктов будто бы в целом снижается. Думаю, те кто интересуется, давно уже в курсе про великолепство 11й винды и последней макоси. Собственно, поэтому я все еще сижу на предпоследних версиях. Лан, насчет винды — это не мое решение. Прост у меня старый комп, а микрослоп —
Однако сегодня речь про компанию поменьше под названием jetbrains.
Не так давно они зарелизили ide под версиями 2025.3. Будучи парнем ссыкливым по жизни, я не бросился тут же обновляться. Тем более, что апдейт серьезный, и они там переработали графоний. И поскольку ui импрувед, вероятность баг резиста крайне мала👨🦳
Поэтому я дождался первого патча, а также поспрашивал в разных комьюнитях, че там и как. Меня заверили, что все на удивление ок. И тогда уже я решился. Как вы понимаете, этого поста бы не было, если бы все было в порядке.
Дело в том, что, когда мне надо открыть несколько проектов в одной ide, я предпочитаю интерфейс в одном окне с табами. Каждая таба — это отдельный проект. Так вот после обновления при открытии нового проекта ide стала нахер зависать с серым пустым экраном😡 и я не один такой. Вот тикет у них в трэкере. И это во всех продуктах, какими я пользуюсь (phpstorm, pycharm, goland).
Ну и вы можете сказать "че ты разнылся? ну бага и бага. это рабочий момент. они пофиксят"
Но это только часть истории! Дело в том, что предыдущие две недели я провел в грузии. И там я не смог этот баг ни разу повторить! Просто проблема испарилась! Хотя до этого, у меня была проблема не повторить этот баг, а открыть новый проект. Вернулся в рф. Первое же открытие проекта — сразу серый экран🫠
Ну и тут конечно умные люди могут предположить, что может быть дело в геолокации. Хотя какого хера это должно влиять на открытие проекта. Так вот, впн не помогает. Отключение вай фай тоже не помогает. И на конфигурацию мониторов тяжело спихнуть, потому что проблема существует в рф и не сущестует в грузии с одним и тем же монитором — монитором макбука.
Кароче, грустно это все. Ощущение такое, что литералли каждый апдейт ПО — это супер рисковое предприятие. Оно и раньше то было так. А теперь просто пиздятина какая-то. Компаниям похеру, че там выкатывается на рынок. Сырое, не сырое — надо релизить. А пользователь схавает. Ведь заставить пользователя свичнуться на конкурента — это надо порядком пользователя заебать. А порой конкурена и вовсе нет.
Так и живем
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍3😭3💯2✍1😁1
Мне, как и многим, наверное, было интересно, как OpenAI, компания которая состоит из надутых денег чуть менее, чем полностью, собирается стать прибыльной. Ведь там же полный писос.
Nvidia вкладывает деньги в openAI, чтоб те закупали у них оборудование. То же самое делает и amazon, чтоб те у них хостились. А OpenAI в свою очередь подстегивает капитализацию nvidia и amazon. И они все там крутятся в циклическом анале, не производя при этом нихера и без особой прибыли.
А мы ощущаем повышение цен на железо из-за ихнего голландского штурвала😡
Но вот вчера талантливый бизнесмен Сэм Альтман наконец-то разьяснил, как они собираются генерировать прибыль. Слава богу, теперь я могу спать спокойно☺️
Nvidia вкладывает деньги в openAI, чтоб те закупали у них оборудование. То же самое делает и amazon, чтоб те у них хостились. А OpenAI в свою очередь подстегивает капитализацию nvidia и amazon. И они все там крутятся в циклическом анале, не производя при этом нихера и без особой прибыли.
А мы ощущаем повышение цен на железо из-за ихнего голландского штурвала😡
Но вот вчера талантливый бизнесмен Сэм Альтман наконец-то разьяснил, как они собираются генерировать прибыль. Слава богу, теперь я могу спать спокойно☺️
🙈8❤1
Уже больше года активно не пишу на "лучшем языке для написания бизнес логики" по версии биг техов. Я сейчас конечно же про golang. Так уж получилось, что наши пути разошлись🤷 Обстоятельства оказались сильнее😢
Но тут, как с бывшей, вроде уже все давно прошло, но ты иной раз чисто из любопытства возьмешь да зайдешь на ее страничку винсте вк. Одним глазком глянуть, че там и как😉
Вот так и я решил посмотреть, че там в голэнг релизах последних. И я с удивлением обнаружил, что они там переделали реализацию map под капотом. Это было год назад. И вы скажете "ну переделали и переделали, тебе то чо". А то, что буквально за полгода до этого я был на собесе, где меня доебали вопросом про реализацию мапы в голэнг. И я прям помню, что я тогда наизусть знал, как она устроена. Понимаете, без этих знаний бесполезно было суваться на собесы по голэнг.
Это конечно вообще так бесило. Стопроц надо было знать, как реализованы каналы и слайсы, как устроен планировщик, и конечно же про хэшмапы. Знания, которые тебе в 99 процентах случаях никогда не пригодятся. Вопросы, которые на мой субьективный взгляд, такую тень бросают на голэнг, как на инструмент. Будто ты не можешь нормально ничо на нем писать, без знаний внутрянки. Будто бы на столько там херовые и протекающие абстракции, что ты и войти туда не можешь без этого всего.
И вот тут разработчики берут и переделывают реализацию хэш мапы, хех. Теперь там, так называемые Swiss Tables. И получается, все ответы, которые кандидаты заучивали годами, становятсяневерными устаревшими. И важно выдать другой ответ на собесе. Со старым ответом ты уже не сможешь json перекладывать🤡
Я хочу тут все таки оговориться. В самом знании, как оно устроено под капотом, нет ничего плохого. Тем более, если у тебя еще задача попалась, которая заставила покопаться в этом, то тут я вообще могу только позавидывать. Проблема лишь в использовании этих вопросов для определения квалификации человека. Для каких задач набирают людей с такими вопросами? Как часто кому-то требуется ковырять хэш мапу в golang?
Кто-то может сказать, что если ты пользуешься каким-то инструментом довольно долго, и ты не распездал, а реально крутой чувак, ты так или иначе все равно будешь знать, че там под капотом. И собеседующие ТИПА проверяют именно это. Ну так ведь по факту такая проверка не работает, поскольку все просто посмотрели ролики Николая Тузова перед собесом, и вот теперь они сеньоры.
Я сколько открытых собесов по голэнг не смотрел, не видел ни разу, что спрашивали "расскажи, а какие подходы ты знаешь для проектировани хэш мап"? Этот открытый вопрос гораздо больше проверил бы "сеньорность" кандидата. И он не привязан к заученным мантрам. Но его очень легко приземлить на голэнг. Ведь если кандидат отвечает "ну я знаю open-addressing и chaining", то наверное он в своей голове давно уже связал реализацию через бакеты и сразу поймет, куда воткнуть swiss tables. Но даже в такой формулировке хз, на сколько это важно для реальных задач.
Короче, вот пишу на пыхе 15 лет. Вроде приличный срок. В данный момент (момент написания поста) вообще не ебу, как там реализованны массивы. Читал про реализацию, охеревал от того, на сколько умные люди там все писали, закрывал, забывал. Повторял раз 5.
И если бы я кого-то собесил на php, и мне кто-то наизусть рассказал устройство массива, я бы очень удивился и поинтересовался, а какая нахрен такая задача заставила в это погрузиться. Потому что иначе, он прочитал об этом буквально вчера и пытается меня впечатлить.
Но на голэнг собесах, похоже, все любят друг друга впечатлять, а не искать кандидатов под задачи🦶 Но может я неправ, и с такой ситуацией на рынке "впечатлять" приходится всех и везде🫠
Но тут, как с бывшей, вроде уже все давно прошло, но ты иной раз чисто из любопытства возьмешь да зайдешь на ее страничку в
Вот так и я решил посмотреть, че там в голэнг релизах последних. И я с удивлением обнаружил, что они там переделали реализацию map под капотом. Это было год назад. И вы скажете "ну переделали и переделали, тебе то чо". А то, что буквально за полгода до этого я был на собесе, где меня доебали вопросом про реализацию мапы в голэнг. И я прям помню, что я тогда наизусть знал, как она устроена. Понимаете, без этих знаний бесполезно было суваться на собесы по голэнг.
Это конечно вообще так бесило. Стопроц надо было знать, как реализованы каналы и слайсы, как устроен планировщик, и конечно же про хэшмапы. Знания, которые тебе в 99 процентах случаях никогда не пригодятся. Вопросы, которые на мой субьективный взгляд, такую тень бросают на голэнг, как на инструмент. Будто ты не можешь нормально ничо на нем писать, без знаний внутрянки. Будто бы на столько там херовые и протекающие абстракции, что ты и войти туда не можешь без этого всего.
И вот тут разработчики берут и переделывают реализацию хэш мапы, хех. Теперь там, так называемые Swiss Tables. И получается, все ответы, которые кандидаты заучивали годами, становятся
Я хочу тут все таки оговориться. В самом знании, как оно устроено под капотом, нет ничего плохого. Тем более, если у тебя еще задача попалась, которая заставила покопаться в этом, то тут я вообще могу только позавидывать. Проблема лишь в использовании этих вопросов для определения квалификации человека. Для каких задач набирают людей с такими вопросами? Как часто кому-то требуется ковырять хэш мапу в golang?
Кто-то может сказать, что если ты пользуешься каким-то инструментом довольно долго, и ты не распездал, а реально крутой чувак, ты так или иначе все равно будешь знать, че там под капотом. И собеседующие ТИПА проверяют именно это. Ну так ведь по факту такая проверка не работает, поскольку все просто посмотрели ролики Николая Тузова перед собесом, и вот теперь они сеньоры.
Я сколько открытых собесов по голэнг не смотрел, не видел ни разу, что спрашивали "расскажи, а какие подходы ты знаешь для проектировани хэш мап"? Этот открытый вопрос гораздо больше проверил бы "сеньорность" кандидата. И он не привязан к заученным мантрам. Но его очень легко приземлить на голэнг. Ведь если кандидат отвечает "ну я знаю open-addressing и chaining", то наверное он в своей голове давно уже связал реализацию через бакеты и сразу поймет, куда воткнуть swiss tables. Но даже в такой формулировке хз, на сколько это важно для реальных задач.
Короче, вот пишу на пыхе 15 лет. Вроде приличный срок. В данный момент (момент написания поста) вообще не ебу, как там реализованны массивы. Читал про реализацию, охеревал от того, на сколько умные люди там все писали, закрывал, забывал. Повторял раз 5.
И если бы я кого-то собесил на php, и мне кто-то наизусть рассказал устройство массива, я бы очень удивился и поинтересовался, а какая нахрен такая задача заставила в это погрузиться. Потому что иначе, он прочитал об этом буквально вчера и пытается меня впечатлить.
Но на голэнг собесах, похоже, все любят друг друга впечатлять, а не искать кандидатов под задачи
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6👏5😁4❤3💯1
Пока я гадаю, какой же следующий пет проект мне сделать через год, когда появится свободное время, настоящие гигачады пишут компилятор rust на php. И нет, это не
Это прям генератор бинарников для линукса на пыхе.
Но самое прикольное то, что у этого есть реальный use case. Угадаете какой? Если что, ответ в этой самой первой issue, которая называется Why?😀
Без всяких смехуечков, захотелось выразить дикий респект автору. Он красавчик!🤝
<?php exec(“cargo build”); ?>
Это прям генератор бинарников для линукса на пыхе.
Но самое прикольное то, что у этого есть реальный use case. Угадаете какой? Если что, ответ в этой самой первой issue, которая называется Why?😀
Без всяких смехуечков, захотелось выразить дикий респект автору. Он красавчик!🤝
GitHub
GitHub - mrconter1/rustc-php: A Rust compiler with ownership checking, written in PHP
A Rust compiler with ownership checking, written in PHP - mrconter1/rustc-php
😁6❤3
Все тут пишут, на сколько полезны стали ИИ как инструмент для разработчиков. Но другую сторону разработки - обучению этой же самой разработке в век ИИ - как-то обходят стороной. Однако, в одном из рабочих чатов, недавно обсуждали, как же круто учиться с помощью ИИ, потому что его можно заебывать тупыми вопросами до бесконечности. И это имеет место. Но, на мой взгляд, заебывать ИИ вопросами != обучение. Хоть это и может быть его частью.
Обучение - это сложный процесс. Как минимум надо учитывать, что подходы для обучения детей и взрослых (педагогика и андрагогика) очень отличаются. И в каждой области свои специалисты. Но есть у них и общее, кмк, а именно цель. Цель обучения - это овладение навыком.
И я считаю, что навыком можно овладеть только через практику. Поэтому все эти ваши книги по программированию хороши только, если у вас есть практика, на которую можно это все приземлить. Если ее нету, то оно как войдет, так и выйдет, словно огурец в кабинете у хирурга😂 Но можно будет выебнуться при друзьях, что вот томик Кнута осилил пролистал.
Поэтому я думаю, что обучение на книжках - это иллюзия. Ну только если эта книжка не учебник с упражнениями.
У меня особенно эта иллюзия проявляется, когда я пытаюсь пользоваться новым фреймворком или либой, и начинаю доку активно читать. Сидишь такой, вроде все понятно. Сел писать код - ноль целых, хуй десятых. Ничо не можешь написать. Ну это раньше было. Щас то я уже не учу новые фреймворки. Смысла ноль, работу все равно не поменять
Поэтому, только практика. Только руками поработать, если вы понимаете, о чем я😉
И причем здесь ИИ? а при том, что ИИ очень-очень усложняет вот это "руками поработать". Слишком велик соблазн просто попросить решить задачу ИИ. А затем, ты попросишь эту ИИ полностью объяснить тебе решение. И он объяснит. А самое страшное, что после этого у тебя возникнет ощущение, что ты все понял и чему-то научился. А ты нихера не научился на самом деле.
Эта иллюзия сравнима с тем, что ты воспользовался решебником в школе. Я не знаю, есть ли щас решебники у школьников, но в моем дестве они были. И если раньше найти решебник - это та еще задачка, то теперь этот решебник просто у тебя в кармане. Для практически любой задачи.
И на мой взгляд, это если не в корне, то очень сильно меняет индустрию обучения и процесс самообразования. Потому что я не вижу никаких способов оградить себя от ИИ, как от решебника, за исключением собственного волевого компонента. И у взрослых сформированных людей тут гораздо больше шансов обернуть ИИ себе во благо в процессе обучения. Как быть с детьми - тут вообще я даже не представляю. Ну это пусть специалисты разбираются.
ИИ в образовании - это хороший пример диалектического принципа единства и борьбы противоположностей. С одной стороны, мы действительно получаем серьезный буст в узнавании информации, а с другой стороны, у нас появляется дополнительная преграда на пути к отработке навыка. И, похоже, что современное обучение - это борьба между этими сторонами, в которой наибольшую пользу для себя сможет получить тот, кто способен на самоограничения👆
В итоге, выходит, что даже в обучении ИИ - это отнюдь не серебряная пуля😔
Единственный свет в конце туннеля — это если нас всех заменит ИИ и нам не придется ничему учиться🤡 правда непонятно, а за что тогда будут платить зп, но это я потом подумаю
Обучение - это сложный процесс. Как минимум надо учитывать, что подходы для обучения детей и взрослых (педагогика и андрагогика) очень отличаются. И в каждой области свои специалисты. Но есть у них и общее, кмк, а именно цель. Цель обучения - это овладение навыком.
И я считаю, что навыком можно овладеть только через практику. Поэтому все эти ваши книги по программированию хороши только, если у вас есть практика, на которую можно это все приземлить. Если ее нету, то оно как войдет, так и выйдет, словно огурец в кабинете у хирурга
Поэтому я думаю, что обучение на книжках - это иллюзия. Ну только если эта книжка не учебник с упражнениями.
У меня особенно эта иллюзия проявляется, когда я пытаюсь пользоваться новым фреймворком или либой, и начинаю доку активно читать. Сидишь такой, вроде все понятно. Сел писать код - ноль целых, хуй десятых. Ничо не можешь написать. Ну это раньше было. Щас то я уже не учу новые фреймворки. Смысла ноль
Поэтому, только практика. Только руками поработать, если вы понимаете, о чем я😉
И причем здесь ИИ? а при том, что ИИ очень-очень усложняет вот это "руками поработать". Слишком велик соблазн просто попросить решить задачу ИИ. А затем, ты попросишь эту ИИ полностью объяснить тебе решение. И он объяснит. А самое страшное, что после этого у тебя возникнет ощущение, что ты все понял и чему-то научился. А ты нихера не научился на самом деле.
Эта иллюзия сравнима с тем, что ты воспользовался решебником в школе. Я не знаю, есть ли щас решебники у школьников, но в моем дестве они были. И если раньше найти решебник - это та еще задачка, то теперь этот решебник просто у тебя в кармане. Для практически любой задачи.
И на мой взгляд, это если не в корне, то очень сильно меняет индустрию обучения и процесс самообразования. Потому что я не вижу никаких способов оградить себя от ИИ, как от решебника, за исключением собственного волевого компонента. И у взрослых сформированных людей тут гораздо больше шансов обернуть ИИ себе во благо в процессе обучения. Как быть с детьми - тут вообще я даже не представляю. Ну это пусть специалисты разбираются.
ИИ в образовании - это хороший пример диалектического принципа единства и борьбы противоположностей. С одной стороны, мы действительно получаем серьезный буст в узнавании информации, а с другой стороны, у нас появляется дополнительная преграда на пути к отработке навыка. И, похоже, что современное обучение - это борьба между этими сторонами, в которой наибольшую пользу для себя сможет получить тот, кто способен на самоограничения👆
В итоге, выходит, что даже в обучении ИИ - это отнюдь не серебряная пуля😔
Единственный свет в конце туннеля — это если нас всех заменит ИИ и нам не придется ничему учиться🤡 правда непонятно, а за что тогда будут платить зп, но это я потом подумаю
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥8
This media is not supported in your browser
VIEW IN TELEGRAM
Давно не было мемасов че-то, потому что я тут в запаре жоской. Но вот вам вместо мема реальный кейс.
Решил добавить новый тип подписки в эпп стор. Угарнул с того, что они тебе не позволяют установить любую цену. Будь добр, выбери прайс из списка доступных) обязательно шоб на 9ку заканчивалось!
Решил добавить новый тип подписки в эпп стор. Угарнул с того, что они тебе не позволяют установить любую цену. Будь добр, выбери прайс из списка доступных) обязательно шоб на 9ку заканчивалось!
😁10🤯1
Внимание! Далее в посте будет много ЧЛЕНОВ! поэтому, если у вас членонепереносимость, то лучше скипните!
Нашел вопрос, который не вывезли 3 из 4 нейронок.
В чем суть. Ковыряю систему привилегий в postgres. Наверное обычным разработчикам особо знать ничо не надо. Им креденшиалы выдали девопсы, и они пользуются. Я и сам такой, честно говоря😔
А между тем, там довольно непростая система ACL (ну кто бы блять сомневался). Там есть, так называемые роли (и они же пользователи😮). И есть понятие "членство" 😉 ролей.
Членство означает, что мы явно указали роль-группу, к которой будет принадлежать наша роль. Таким образом, можно гибко управлять правами множества ролей-пользователей через модификацию прав роли-группы, просто сделав их членами группы. Короче, включается (но не ограничвается этим) механизм наследования прав. Выглядит это так.
По умолчанию - это означает, что ator получит права admin (и станет adminator😮)
Но у команды CREATE ROLE есть флаг NOINHERIT. А у команды GRANT можно задать параметр WITH INHERIT FALSE. И тут начинается свистопляска. Потому что можно начать фантазировать, а как эти два флага, семантика которых очень близка, работают друг с другом. Кто-то может подумать, что отличным решением будет спросить нейронку. Ну и если выбор пиздлявого ящика ляжет на ChatGPT, то мои соболезнования.
Правильный ответ: флаг NOINHERIT отвечает за дефолтное поведение при добавлении членства, т.е. за поведение, когда не указан параметр WITH INHERIT при создании этого самого членства. На этом жоско погорел chatgpt (см. скриншот).
А вот дипсик, перплексити и клод корректно сказали, что это флаг управления дефолтным поведением членства. Только вот вопрос, а дефолтным поведением членства какой роли: той которую делают членом или той, куда эти самые члены вступают? И на этом этапе срезались дипсик и перплексити. Причем от перплексити я такого не ожидал. Ведь это поисковик.
Правильный ответ: NOINHERIT применяется для роли, которая станет членом. И WITH INHERIT принудительно включит или отключит наследование прав, и NOINHERET будет проигнорирован.
И только клод объяснил все правильно 🤷
Короче вся эта пиздабратия заставила меня напрягаться и проверять все самому. Хотя вот казалось бы, уже не первое поколение нейронок, но че то все еще не совсем меня заменяют. Жду дальше.
Нашел вопрос, который не вывезли 3 из 4 нейронок.
В чем суть. Ковыряю систему привилегий в postgres. Наверное обычным разработчикам особо знать ничо не надо. Им креденшиалы выдали девопсы, и они пользуются. Я и сам такой, честно говоря😔
А между тем, там довольно непростая система ACL (ну кто бы блять сомневался). Там есть, так называемые роли (и они же пользователи😮). И есть понятие "членство" 😉 ролей.
Членство означает, что мы явно указали роль-группу, к которой будет принадлежать наша роль. Таким образом, можно гибко управлять правами множества ролей-пользователей через модификацию прав роли-группы, просто сделав их членами группы. Короче, включается (но не ограничвается этим) механизм наследования прав. Выглядит это так.
CREATE ROLE admin;
CREATE ROLE ator;
GRANT admin TO ator;
По умолчанию - это означает, что ator получит права admin (и станет adminator😮)
Но у команды CREATE ROLE есть флаг NOINHERIT. А у команды GRANT можно задать параметр WITH INHERIT FALSE. И тут начинается свистопляска. Потому что можно начать фантазировать, а как эти два флага, семантика которых очень близка, работают друг с другом. Кто-то может подумать, что отличным решением будет спросить нейронку. Ну и если выбор пиздлявого ящика ляжет на ChatGPT, то мои соболезнования.
Правильный ответ: флаг NOINHERIT отвечает за дефолтное поведение при добавлении членства, т.е. за поведение, когда не указан параметр WITH INHERIT при создании этого самого членства. На этом жоско погорел chatgpt (см. скриншот).
А вот дипсик, перплексити и клод корректно сказали, что это флаг управления дефолтным поведением членства. Только вот вопрос, а дефолтным поведением членства какой роли: той которую делают членом или той, куда эти самые члены вступают? И на этом этапе срезались дипсик и перплексити. Причем от перплексити я такого не ожидал. Ведь это поисковик.
Правильный ответ: NOINHERIT применяется для роли, которая станет членом. И WITH INHERIT принудительно включит или отключит наследование прав, и NOINHERET будет проигнорирован.
И только клод объяснил все правильно 🤷
Короче вся эта пиздабратия заставила меня напрягаться и проверять все самому. Хотя вот казалось бы, уже не первое поколение нейронок, но че то все еще не совсем меня заменяют. Жду дальше.
🙈3❤2🔥1
Сегодня стартовала очередная Poglodka Crew, посвященая экосистеме PHP. И Несмотря на то, что в php лучшая экосистема среди всех языков, с которыми мне довелось работать, в ней существует довольно серьезный проеб, который я хотел бы подсветить, пользуясь случаем.
Дело в том, что php все еще поставляется без дебагера =( Ой, не-не, не кидайте в меня тапками. Я знаю про phpdbg. Но я щас говорю про дебаггер, которым можно пользоваться в работе. И это third-party расширение Xdebug, которое всегда ставится и настраивается отдельно.
Когда ты уже дохера опытный пыхарь, ты вообще забываешь, что такая проблема существует. Да для тебя это будто бы и не проблема. Но с точки зрения новичка, это может быть лютым стрессом. Хотя, справедливости ради, отмечу, что шторм довольно неплохо справляется с установкой самого расширения на макос в один клик. Про другие ОС не скажу.
Тем не менее, php 8.5 вот вышел в ноябре, а дебаггер для него зарелизили только спустя 2 недели🤷странновато
Ну это ладно. Самые большие проблемы для меня в том, что xdebugger ОЧЕНЬ часто генерит segmentation faults. И если на симфони я с этим практически не сталкиваюсь, то на ларке это происходит прям регулярно. И это пиздец раздражает. Последний раз я ковырялся с ларавелем год назад, и мне пришлось 3 версии иксдебаггера перебрать, чтоб смочь нормально работать 😔 просто охуительный девелопмнет экспириенс
Благо, что я не один такой. И есть люди, которые не просто любят поныть, как я, а делают дело💪 И я тут наткнулся на проект, который я не могу пока что рекомендовать, потому что сам не пользовался, но за которым я собираюсь пристально следить.
Называется ddless. Чувака тоже заебала вся эта клоунада с xdebuggerом и он написал свой. Причем тут интересен и сам инженерный подход. Вот как написать дебаггер без нативного расширения и чтоб не надо было ничо ставить в пыху? Да просто берем и вставляем вызов специальной функции перед каждой строчкой кода прям на лету. Изи! Ведь php легко (ну ладно, не легко) позволяет модифицировать код перед исполнением средствами самого php через переопределение стрима.
Также он принял осознанное архитектурное решение, чтоб вся коммуникация UI дебаггера и самого дебаггера была сделана через файл, а не через какой-то сетевой протокол. Чтоб было неважно, где ты запускаешь свой код - локально, в докере или на удаленном серваке - файл всегда будет под рукой. Подробнее о мотивации и технических решениях можно почитать в блоге автора.
Единственный минус, это то, что надо ставить отдельное десктопное приложение чисто для этого дебаггера. Так оно еще и написано на электроне😔Было б на бозоне - вообще вопросов не было.
Поэтому пока что я жду, когда он зарелизит расширение для IDE, и продолжаю наблюдать за проектом. Спасибо за внимание.
Дело в том, что php все еще поставляется без дебагера =( Ой, не-не, не кидайте в меня тапками. Я знаю про phpdbg. Но я щас говорю про дебаггер, которым можно пользоваться в работе. И это third-party расширение Xdebug, которое всегда ставится и настраивается отдельно.
Когда ты уже дохера опытный пыхарь, ты вообще забываешь, что такая проблема существует. Да для тебя это будто бы и не проблема. Но с точки зрения новичка, это может быть лютым стрессом. Хотя, справедливости ради, отмечу, что шторм довольно неплохо справляется с установкой самого расширения на макос в один клик. Про другие ОС не скажу.
Тем не менее, php 8.5 вот вышел в ноябре, а дебаггер для него зарелизили только спустя 2 недели🤷странновато
Ну это ладно. Самые большие проблемы для меня в том, что xdebugger ОЧЕНЬ часто генерит segmentation faults. И если на симфони я с этим практически не сталкиваюсь, то на ларке это происходит прям регулярно. И это пиздец раздражает. Последний раз я ковырялся с ларавелем год назад, и мне пришлось 3 версии иксдебаггера перебрать, чтоб смочь нормально работать 😔 просто охуительный девелопмнет экспириенс
Благо, что я не один такой. И есть люди, которые не просто любят поныть, как я, а делают дело💪 И я тут наткнулся на проект, который я не могу пока что рекомендовать, потому что сам не пользовался, но за которым я собираюсь пристально следить.
Называется ddless. Чувака тоже заебала вся эта клоунада с xdebuggerом и он написал свой. Причем тут интересен и сам инженерный подход. Вот как написать дебаггер без нативного расширения и чтоб не надо было ничо ставить в пыху? Да просто берем и вставляем вызов специальной функции перед каждой строчкой кода прям на лету. Изи! Ведь php легко (ну ладно, не легко) позволяет модифицировать код перед исполнением средствами самого php через переопределение стрима.
Также он принял осознанное архитектурное решение, чтоб вся коммуникация UI дебаггера и самого дебаггера была сделана через файл, а не через какой-то сетевой протокол. Чтоб было неважно, где ты запускаешь свой код - локально, в докере или на удаленном серваке - файл всегда будет под рукой. Подробнее о мотивации и технических решениях можно почитать в блоге автора.
Единственный минус, это то, что надо ставить отдельное десктопное приложение чисто для этого дебаггера. Так оно еще и написано на электроне😔Было б на бозоне - вообще вопросов не было.
Поэтому пока что я жду, когда он зарелизит расширение для IDE, и продолжаю наблюдать за проектом. Спасибо за внимание.
🤔6👍1