Карандаш пожуйте В разговоре по работе разблокировалось воспоминание. Август 2017, я на курсе Ильи Бирмана «Пользовательский интерфейс и представление информации». В офлайне, прям по-настоящему, сидим в классе, слушаем лекции, а потом делаем «домашку». Илья проверяет работы — задизайненные кусочки, считай, картинки — и тут же в Фотошопе на огромной скорости их исправляет. При этом он почти не использует мышь, херачит все аккордами на клавиатуре. Чтобы вы понимали, Илья редактировал текст на карт...
Половнёв—Журнал
Пишу о разработке, тестировании и культуре работы. А еще у меня есть курс о том, как расти самому и выстраивать системный рост команды: https://tough-dev.school/growth Пишите: @vazilla, vasily@polovnyov.ru
Графики
📊 Средний охват постов
📉 ERR % по дням
📋 Публикации по дням
📎 Типы контента
Лучшие публикации
20 из 20На скриншоте кусочек моего рабочего стола. Все эти папки я не создавал. Я просто запускал Эпл Почту и нажимал Cmd+Shift+N, чтобы получить новые письма. К сожалению, новая Макось справляется с жидким стеклом, но не справляется с передачей фокуса только что запущенному почтовику. Фокус остается у Файндера, а он по Cmd+Shift+N создаёт новую папку. Зато парящие кнопки повсюду. Я продолжаю верить, что для Эпла хороший дизайн — это не только «хорошо выглядит», но и «хорошо работает». А пока раз в неде...
Кодекс показывает оставшийся недельный лимит батарейкой — закрашенная часть показывает, что осталось 25%. При этом выглядит оно как прогресс-бар и потому читается ровно наоборот — кажется, что я только на 25% израсходовал лимит. Вот тебе и сила привычки
Value Data-объекты в Руби Я как-то пропустил, а в Руби 3.2 завезли класс Data для создания value objects: Recipient = Data.define(:name, :email, :role) vasyan = Recipient.new(name: "Vasyan", email: "vasyan@stark.com", role: :cc) vasyan.email # vasyan@stark.com vasyan.role # :cc # При этом vasyan.email = "foo" # undefined method 'email=' Пример посложнее с кастомными методами: Measure = Data.define(:amount, :unit) do def <=>(other) return unless other.is_a?(self.class) && other.unit == unit amoun...
Кодислав — AI coding agent в 100 строк на Руби и YandexGPT В прошлом посте я обещал рассказать, как собрать собственного агента на Руби, если пост наберет 20 классов. Пост набрал 43 класса. Штош. Так как я пока программист, то и агент будет для программирования. А чтобы доказать то, что я не лох, что я в хорошей форме, я скручу вам вертушечку, мою фирменную покажу это всё скринкастом. В Ютюбе: https://www.youtube.com/watch?v=N02VM7DZmJo В ВК: https://vkvideo.ru/video-237008052_456239020 P. S. Сл...
let! vs let + before Последний Ruby Weekly принёс статью о том, что let! лучше заменять на let + before блок: https://allaboutcoding.ghinda.com/rspec-and-let-understanding-the-potential-pitfalls Мол, такое: RSpec.describe Thing do let(:account_a) { build(:user, email: email) } let(:account_b) { build(:user, user: email2) } let(:organisation) { build(:organisation, account: account) } let(:team) { build(:team, account: organisation) } before account_a account_b end it 'returns that specific value...
Василий, привет! Пока жду полную поддержку text-box-trim, использую своё решение на чистом ЦСС. Загружаешь шрифтовой файл, инструмент вычисляет компенсацию метрик в «емах». Это автоматически масштабируется для всех комбинаций кегля и высоты строки: .metrics-fix { &::before { content: ''; display: table; margin-block-end: calc(-0.37em - (1lh - 1em) / 2); } &::after { content: ''; display: table; margin-block-start: calc(-0.13em - (1lh - 1em) / 2); } } Подсадил знакомых фронтендеров...
Cursor Rules для хороших тестов с Ruby и RSpec Делюсь моим набором правил для Курсора, которые помогают писать вменяемые тесты с RSpec. Я пользуюсь ими около месяца, в 9 из 10 случаев получается то, что надо. Больше того, я использовал эти правила, чтобы сделать домашку в Тестовом курсе, и получил хорошие тесты, требующие минимальной доработки. --- description: globs: **/*_spec.rb alwaysApply: false --- # <Project> Tests Style Guide ## General - Always use English in tests. - Always test edge, v...
У программиста две заботы Последние три недели хожу вокруг одной идеи, но никак не могу ее нормально доформулировать. Все время чего-то не хватает. Начну здесь, а вы помогайте. Недавно понял, что у программиста две задачи. Первая — приносить прибыль и снижать издержки, пописывая код и тесты у себя в квартале. Ну вы знаете: писать код и тесты, пилить фичи, чинить баги и резолвить инциденты. Назовем ее — крафт, мастерство. Вторая — быть легким и приятным в работе с собой. Назовем ее — АПИ. Я всегд...
Пацаны и пацанессы! Серьезный вопрос. Если бы я решил уйти из программирования и стать маркетологом (или маркетером, хз как правильно), какие курсы и книги для въезда в профессию вы бы мне посоветовали? Что сейчас модно, а что база в маркетинге? За кем следить? Хормози стрем или норм? А Морейнис?