zemlan.in  / страница 91

0x0BADC0DE

Как быть чуточку этичнее. Видео с KyivJS DevTalks

1327 слов →

Cache Already Done

Как не переизобрести части браузера

1340 слов →

Про линтеры

В ответ на твит @SilentImp’а

  1. Стилистические правила в линтерах — субъективны и ведут к срачам "с точками с запятыми/без точек с запятыми". Поэтому…
  2. Продавать линтеры надо как средство для поиска ошибок/опасных практик в коде. Пресет eslint:recommended отлично с этим справится
  3. Стилистические штуки оставить для prettier, потому что
    • всё автофиксится (это успокоит тех, кто не согласен с выбранным стилем — "пиши, как хочешь, но запускай npm run fmt перед коммитом/пушем")
    • минимум конфигурации, что уменьшит "поверхность" возможных срачей
  4. Какая аудитория?
    • Те, кто уже юзает линтеры, вырубились после получаса README eslint'а
    • Те, кто их не юзает, всё равно будут настраивать их через несколько дней по документации линтеров, а не по воспоминаниям/видео доклада

API Already Done

Lightning talk about HTTP @ KyivJS


Ссылки:

Использованные фотографии: 1, 2, 3, 4, 5, 6

rollupintoaballandcry.js

  1. Решил забандлить Rollup’ом observable.cool, чтобы нормально его расширять (сейчас это тупо html-файл с кодом внутри <script>)

  2. Rollup потерял внутреннюю функцию Реакта, из-за чего валятся undefined is not a function

  3. Ок, думаю, попробую preact@6. Он не умеет flatten вложенные массивы. Ок, сам сделаю children.reduce(flatten)

  4. Его реализация CSSTransitionGroup зависит от preact@5, из-за чего children рендерятся как "[object Object]". Ок, форк, клон, "peerDependencies": { "preact": "^6.0.2" }, cd ~/js/observable.cool, npm i ../css-transtion-group

  5. У CSSTransitionGroup упали тесты. Исправил, установил-таки форк

  6. camelCase в SVG не конвертится в kebab-case, а «left»-ноды висят в DOM (что критично из-за постоянно генерящихся новых нод). Терпение кончилось

  7. «3kb alternative» my ass! А потом спрашивают «Почему [popularLib.js], а не [artisinalLib.js]?». Потому что популярное работает, а художники недооценивают масштабы и свои силы

(тикеты, конечно, заведу)

Заметил, что (извините за клише) кручусь как белка в колесе

Года два-полтора назад я страдал от отсутствия цели. Eat-sleep-shit-repeat каждый день, делай, что говорят, смотри сериалы в свободное время, каждый вечер пей

Решил что-то поменять. Записался в спортзал. Оказался тимлидом (всё ещё сомневаюсь, что заслуженно. «в нужном месте, в нужный час»). Начал красить календарик на гитхабе в зелёный. О, сериалы можно заменить на видео с конференций, которые нужно намного внимательнее смотреть. А время на улице отлично заполняется подкастами. Больше, больше целей!

И оказалось, что часов в сутках слишком мало — всё время бодрствования тратится на что-то вроде бы полезное с общественной точки зрения («организм нужно укреплять», «без постоянного обучения новому, программистом будешь плохим»), но бесполезное с точки зрения удовлетворения жизнью сейчас. На работе засиживаться до восьми—девяти вечера стало нормой. Жонглирование рабочими проектами, о которых зависят другие люди (в текущий момент их четыре или пять, смотря как считать). Бездонные Read/Watch Later в Инстапейпере и на Ютубе

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

Кажется, некоторые это называют burnout

Написано с бокалом виски в руках

Do Remarkable: 2015I: tw][ns

2015I: tw][ns, a playlist by zemlanin on Spotify
2015I: tw][ns, a playlist by zemlanin on Spotify • Spotify
A playlist featuring London Grammar, Foo Fighters, The Material, and others

Facebook Relay: An Evil And/Or Incompetent Attack On REST

Facebook's whole business model rests on controlling your ability to communicate with your own social circle. Rent-seeking behavior has always been their hallmark. This is why it was so darkly hilarious when Google killed Google Reader so it could focus all its resources on building a second-rate Facebook clone.

Google's answer to Facebook's growing power as a rentier was to give Facebook an entirely new dominion to charge rent against. Who could have built best-of-breed RSS support into the most popular browser in the world? Who owns news discovery today?

Мартышка и клавиатура

me: Почему многие ищущие работу программисты любят задачки и не любят пользователей? Потому что программисты или это причина их поиска работы?
me: На вопрос "чем вы занимались и чем бы вы хотели заниматься?" отвечают не про улучшение жизни пользователей, а про разгадывание “судоку”
kt: Ну так они надеются, что для улучшения жизни пользователя у вас есть специально обученный человек, который знает, как надо пользователю, и пишет об этом в тз. В идеале-то так и надо
me: Только хуже — если делать ТЗ, совсем не задумываясь над ним, то хуйня получится. Их авторы либо гонятся за золотой антилопой, либо не знают техчасть (или, что страшнее, знают, но опасно мало)
me: В итоге, люди по 10 лет работают, а делать могут только то, что было написано в ТЗ, которое, со временем, подстраивалось под их скилл всё больше и больше
me: Или есть кадры, которые религиозно следуют NIH, и не задумываются о том, что пользователю насрать на красоту авторского кода (и не насрать на проблемы в использовании этого кода)
kt: Программист на то и программист, чтоб программу написать
me: Программист должен найти решение проблемы. Как он пришёл к этому решению — второстепенное
kt: И эта проблема не должна быть «пользователям неудобно». Должно быть «пользователям неудобно, поэтому надо сделать так»
me: "Сделать так" есть разное. Можно сказать, например, "Надо сделать быстрые уведомления пользователя о событиях" или "Сделайте сервер, работающий с вебсокетами, стучащийся к базе, позволяющий кидать уведомления группам и отдельным пользователям"
me: Первое требует менеджера и самого разработчика, предоставляет множество вариантов решения, и разработчик — это именно разработчик
me: Второе — менеджера, разработчика и "разжёвывателя ТЗ", плюс решение очень узкое, а разработчик — просто человек с клавиатурой, которому говорят, где точки с запятыми ставить
me: Джуну быть подобным обладетелм клавиатуры нормально, людям с опытом — ни разу
kt: Программисту нельзя давать решать задачу целиком, а то получится the facebook
me: Никто не говорит, что надо решать целиком. Надо участвовать в процессе
me: Да и "целиком" тоже разное. "Разработать целиком" — одно (задача, sic, разработчика), "Выпустить на рынок целиком" — другое (задача маркетинга, менеджеров, дизайнеров, разработчиков, сопровождения)
kt: Ок, скажу проще: вместо программиста о пользователях в основном должен думать специальный человек
me: С "в основном" согласен, с "вместо программиста" — нет. Все должны думать о пользователях
kt: Только на уровне «у нас упало, пользоваться невозможно»
me: Если раньше не думать, то будет падать. "Как это пользователь может вбить в поле бред? Как это у людей бывают имена из нескольких слов?"
me: Программист знает места, в которых эти предположения могут быть опасны. А для менеджера это такое же "какая разница", как и фаза Луны

Do Remarkable: 2015H: Female Fronted is not a Genre

2015H: Female Fronted is not a Genre, a playlist by zemlanin on Spotify
2015H: Female Fronted is not a Genre, a playlist by zemlanin on Spotify • Spotify
A playlist featuring Icon For Hire, Meg & Dia, MS MR, and others