Разработка кода и здоровый шмептицизм
209 subscribers
227 photos
23 videos
1 file
110 links
Пишу про коммерческую веб-разработку с ИИ и без него, тимлидинг и будни моей небольшой студии netspark.ru. 20 лет опыта с Drupal, также работаю с Laravel и Vue.js.

Между постами про разработку пишу просто про жизнь, которая в это время происходит.
Download Telegram
Этим летом принято решение не лениться!
🫡3
This media is not supported in your browser
VIEW IN TELEGRAM
Когда-то упоминал, как здорово, что в phpstorm-е можно генерировать последовательности чисел на мультикурсоре. Но поскольку от продуктов богомерзких jetbrains мы отказались, хорошо бы, чтобы такое же было и в VS Code. И оно есть!

1. Ставим плагин Generate Sequence.
2. Ставим курсоры в нужные места (у меня Ctrl + вверх или вниз).
3. Жмем Ctrl+Shift+P и выбираем команду Generate Sequence.
4. Profit!
Да, чего удалось сделать в прошлом месяце.

Написал заметки:

- Про совпадение id в тестах и парадокс дней рождения
- Рассказ о работе с европейским GDPR на злобу дня
- Дописал вторую часть длинного текста про звонки и совещания и что со всем этим делать

Как все, подал уведомление в РКН, разместил политику обработки персданных, подвесил кукибаннеры на сайте. Отрубил комментарии в бложеке.

Начал работу над проектом с легендарным Ламером (Анатолий). В плане технологий взял последний Ларавел, с Лайввайрем и Вольтом. Про Вольт скоро что-нибудь напишу.
👍2😁2
Есть такая известная проблема — трагедия общин. Наверняка слышали.

Если нет, суть в том, что у общины есть ресурс — луг с травой. И есть скотина. И если один или два человека увеличат количество голов, луга хватит и им будет хорошо. А если все увеличат — травка кончится и плохо будет всем. В то же время никто уменьшать число голов не будет, остальным может и будет от этого хорошо, но тебе будет плохо.


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

Другой релевантный пример — директ-реклама (да и многая другая тоже). Чем больше желающих, тем меньше на всех показов. Но тут есть удобная лазейка из проблемы: можно поднять тарифы на размещение/клик/показ/etc. И все желающие зайдут на второй круг и будут платить, либо пойдут искать другие инструменты (где их вероятно ждет то же самое). Появятся еще желающие, после второго круга пойдет третий, четвертый. Ценник будет расти, а община — платить, чтобы оставаться на месте. С выигрышем только для тех, кто собирает деньги.

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

Так вот, мне думается, что вся эта современная история с медийностью, присутствием, каналами и контентом следует прямо туда же. Все бегут за подписчиками, покупают папки, гивы, накрутки, чтобы что. Чтобы потом оказалось, что каналы на 50 тыщ подписчиков будут у всех, а в этих каналах будет преобладать контент типа «8 способов проснуться по будильнику и успеть на автобус». Потому что писать надо часто, значит писать надо быстро — а то белочка не успеет за колёсиком. А найти при этом годные экспертные каналы среди всех медийных свидетелей полезной пользы будет всё сложнее.

Кстати, объявляю конкурс на премиум-подписку в ТГ, подписывайтесь на канал! Кстати, порекомендуйте пожалуйста каналы с годным контентом, которые вы читаете потому что интересно и/или полезно. На любую тему, я любознательный.
🤔2
Обсуждал тут в одном чатике про ценообразование и стоимость нормочаса. Делюсь слегка улучшенной версией.

Любая работа в современном мире стоит столько, сколько за неё заплатят. К сожалению или к счастью. Есть например история про человека в Эмиратах, который красит тётям волосы за что-то близкое к миллиону рублей. Это за один акт покраски, не за годовую подписку. Почему? Ну вот потому что желающих тёть много, которые хотят именно у него покрасить волосы. А у этих тёть, видимо, много денег. Значит это (у него) вот столько стоит. Независимо от того, что про это думают люди, красящие волосы дешевле.

Вот так и должно работать ценообразование у фрилансеров и маленьких компаний. Делаем что-то, например, за 40 баксов в час. Параллельно ищем новые контакты и проекты. Внезапно оказывается, что за 40 баксов в час уже рабочий день забит. Значит следующий заказчик получает рейт в 50. Потом заказчиков за 50 становится много, это повод предложить старым заказчикам подровняться (ну или продавать им меньше часов). И так по кругу, пока не окажется, что платить еще больше уже нет желающих). После чего можно посмотреть на горизонтальное масштабирование. А можно и не смотреть.

Есть, к слову, вот такая книжка интересная Company of One, я про неё когда-то писал. Всем рекомендую. Я покупал электрическую копию, когда это еще не составляло труда, но думаю что и сейчас должно быть можно её раздобыть.

#книжки
👍5
Поговорим немного о тайм-трекерах, то есть программах для измерения времени, потраченного на что-либо. Когда мы работаем с почасовой оплатой — а это популярный и, к слову, довольно справедливый способ оплаты — возникает очевидная необходимость каким-то образом вести учёт. С этим все понятно, куда деваться.

А нужно ли трекать время, если оплата фиксированная? Мой ответ: да, конечно, нужно. Нужно для самоконтроля, нужно, чтобы не закопаться, чтобы понимать, когда ты уже, вообще-то, близок к выходу за планируемый бюджет. Как отдельной задачи, так и всего проекта. Когда стоит остановиться и сказать — Так, эту фичу мы уже достаточно проработали на данный момент, перейдем к другой. Чтобы из трех запланированных часов не получилось внезапно десять.

Я время трекать начал очень давно. Изначально использовал какую-то маленькую линуховую утилитку, которую уже не помню даже как зовут. Затем меня переманили в сервис Toggl, он оказался очень удобный. Но потом эти негодяи прекратили поддержку линуксового клиента. И получилось, что я должен либо трекать на мобильнике, либо через браузер. И то, и другое лично мне категорически неудобно. Поэтому сейчас использую Toggl только с одним заказчиком — потому что он выгружает отчеты, генерируемые в системе.

А для всего остального (и для самоконтроля, и для отчетности) я использую простую табличку в обсидиане. Название задачи, дата, промежуток времени от и до, сколько это в часах и минутах, внизу таблицы итого. Отдельной колонкой сохраняю «в часах и минутах», потому что 3h20m хорошо например втыкать в джиру, она эту запись распознает и подсчитывает. Да и самому так считать удобнее. Подумывал написать плагин к обсидиану, чтобы «в часах и минутах», а также «итого» вычислялось автоматом, но как-то я пока и в уме неплохо справляюсь.

Вот пример таблички:

https://graker.ru/storage/app/uploads/public/684/945/69f/68494569f2d3b470592208.png

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

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

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

И пока публиковал этот пост, в одном из рабочих каналов сообщили что у Tempo (трекинг для джиры) какой-то сбой. Все там в ужасе, а я буду бегать со своей табличкой и радоваться, что ничего не потеряю.


В то же время, трекеры с апворка (когда у меня был апворк) и им подобные не использовал никогда. Все эти записи с экрана, снимки с камеры — не моё. Мы серьезные ребята, и если начинать работу с такого недоверия, то лучше просто начинать её с другим заказчиком.

Методом помодоро, к слову, не пользуюсь почти никогда, разве что надо через N минут прерваться и пойти что-то сделать срочно. Но для этого, в принципе, сгодятся любые часы с функцией таймера. Выставил, засек, пошёл.

Кстати, когда-то давно пробовал трекать вообще всё: поездки в офис, спортзал, работу, даже игрушки компьютерные. Но полезного выхлопа из этого не обнаружил, перестал, сейчас трекаю только работу. А вы что-нибудь трекаете?
🧐 в посте про тайм трекинг за сегодня > 50 комментов. Вот где полезная польза, присоединяйтесь, нам есть о чем поговорить!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3
Зарисовка со старой работы

Подходит начальник:
— Нужно разработать библиотеку. Заказчик прислал письмо. Говорит, библиотека должна быть с индексом «Г». Что такое «Г»?
— Не знаю. Наверное, «Г» значит «очень хорошая библиотека».

На следующий день приходит письмо с разъяснениями. Индекс «Г» означает согласование с головным заказчиком. Снова подходит начальник:
— Видел письмо? Библиотека должна быть очень хорошая! «Г» — значит «гуд!»
👍2😁1
Друзья, а кто читает или пишет в Дзен? Давайте перекрестно подпишемся?
А то мне говорят "наберите 10 подписчиков и мы начнем рекомендовать ваш канал" - вдруг и правда начнут. Только где их взять, если канал не видно)
https://dzen.ru/graker <- это я, если что

Для перекрестного подписывания кидайте ссылки на себя в комменты или мне лично. Оказывается, Дзен скрывает от автора канала конкретных подписчиков, видимо чтобы никому не было стыдно)
Пришлось отвлечься и сделать в общем instant view, потому что внезапно уже готова статья про Livewire и Volt. И она очень длинная, длиннее лимитов на пост, и кода много. Без instant view читать неудобно.

P.S. В статьях и на соответствующем сервисе instant view всё время сокращенно называют IV, но так нельзя. Во-первых, IV - это римская 4. Во-вторых, IV - это капельница.
👍2
А какой проект из тех, что вы разрабатывали, необязательно веб, вы бы сейчас назвали наиболее необычным или странным?

У меня это была реализация арифметики для не совсем стандартного формата с плавающей запятой 16е32. На vliw-ассемблере. Из операций были доступны сдвиги, денормализация, 16- и 32-битная арифметика и вычисление первого приближения к обратному. Взял томик Кнута и по нему писал. Было весело 🤪
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3
Вообще печально конечно, что в нашей стране Drupal так и не получил должной популярности и распространения. Вот например канал t.me/drupal_rus — 864 подписчика. А вот например https://t.me/orchid_russian_community — 934 подписчика, и это даже не сообщество Laravel, это сообщество одной из админ-панелей к Laravel, пусть и хорошей.

Получается, с одной стороны — создание простых, или шаблонных, или контентных сайтов прижимает Битрикс, с другой стороны — создание сервисов где нужен кодинг, интеграции, очереди, поджимает Laravel, на котором, без дураков, научиться кодить проще (но есть свои нюансы конечно). А в серединке, где создание крутых контентных сайтов, где с одной стороны не нужно париться "а как мне сделать текст в блоке на лендинге редактируемым", а с другой — можно за 10 минут REST endpoint накидать, — так вот в этой серединке просто не хватает популяризации.

А самое печальное, что тот же Битрикс ничем вот не лучше с технической точки зрения, скорее наоборот. Уже недавно тут обсуждали. Но все технические аргументы, сколько их ни приводи, ломаются об "а я тут посмотрел, и нет чото особо заказов по этому вашему Друпалу", "а я поискал, и специалистов по нему как-то немного в России"... И чего тут скажешь.
👍2
Допустим, вам достался проект, а там - ошибка N+1 в каждом втором контроллере, незакрытые теги, битая верстка, нефильтрованный ввод пользовательского html и sql-запросы с $_GET внутри.

Будете поливать грязью предыдущего разработчика перед заказчиком?
Anonymous Poll
0%
Не буду! Это непрофессионально. Да и мало ли в каких условиях они работали.
17%
Нет, но отпесочу заказчика, что такое допустил.
83%
Аккуратно скажу что реализация неоптимальная и предложу способы улучшения.
0%
Обязательно! Все наши беды от наших предшественников!
Вот что у меня никогда особо не получалось — это работать с низкими чеками на разработку. В моём понимании, в низком чеке вообще не должно быть слова «разработка» или «программирование». Тильда, или статичные лендинги, или визитки, это отличная ниша, и многим бизнесам ничего сверх этого-то в общем-то и не нужно. Но я вот в такое не умею. Не могу быстро и дешево, могу вдумчиво, качественно и с душой. Стараюсь заниматься штучной работой, чтоб можно было разобраться, чтоб был бюджет написать как надо, а не как попало, чтоб интересно было, и чтоб руками поработать и головой. Чтоб заказчик говорил: — А давайте еще вот такую штуку запилим! А я отвечал: — конечно, давайте! И вопрос бюджета этой штуки особо не стоял бы. Так ведь бывает, да, и не только в сказках. Правда, совсем не так часто, как хотелось бы.

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

Как-то раз звонит, как водится, знакомый знакомого. Сразу зовет встретиться, но хоть неподалеку. Подошел, стал слушать. А он — вот мы такое хотим запилить, и вот это надо еще нам, и ух мы тут сейчас развернемся! Доходит до самого неудобного вопроса 🤑. Вот, — говорит — есть у меня 10 тысяч! А это хоть и было больше 10 лет назад, но и тогда было ни о чем. В общем, кофем его угостил конечно, передал привет знакомому, и ушёл.

А в другой раз звонит мужик, и сходу начинает меня пытать, что, мол, а можно ли серьезно сэкономить на верстке и дизайне, если купить готовый шаблон для Drupal? Ну я рассказываю ему свое мнение про интеграцию покупных шаблонов и сколько на этом можно сэкономить. Сразу ссылку на themeforest даю. Обсуждаем минут 20, мне поговорить не жалко. Но сам начинаю понемногу приунывать, потому что цена вопроса (то есть, шаблона) — это 20–50 баксов обычно. Уже прикидываю, кого ему порекомендовать вместо себя, а тут он начинает рассказывать про проект в целом, и слово за слово, через еще минут 20 мы договариваемся подписывать разработку на миллион. А после еще недельки переговоров подписываем на полтора.

Так что да, раньше времени клиента «не своим» стараюсь не назначать.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
Перед выходными вот вам короткий топчик полицейских драм от меня. Мрачных, нуарных, злободневных и крутых полицейских сериалов. Все отличные, если хоть один не смотрели — люто завидую и очень рекомендую.

1. The Wire / Прослушка (9.3 imdb)
Легендарный шедевр нулевых о команде прослушки в борьбе с балтиморскими наркоторговцами. Подарил известность многим актерам. Острый и злободневный, в меру мрачный, возможно немного занудный, но непревзойденный.

2. The Shield / Щит (8.7 imdb)
Еще один шедевр нулевых, во многом похожий на Прослушку. Вообще говоря, годится на первое место вместе с ней. Но кто-то же должен быть вторым.
Хотя по накалу он точно первый. Если Прослушка более социально и политически острая, то в Щите — гораздо больше художественной драмы. 7 сезонов о брутальном коррумпированном полицейском опере. Одного из основных персонажей, кстати, играет популярный в последнее время Уолтон Гоггинс.

3. Line of Duty / По долгу службы (8.7 imdb)
Один из лучших британских сериалов ever. В меру мрачный, в меру вдумчивый, классический британец — про работу антикоррупционного полицейского подразделения. Очень когда-то зашел, хочу пересмотреть.

4. Bosch / Босх (8.5 imdb)
Отличная полицейская драма, можно сказать, LA-нуар, по книжкам Майкла Коннелли (он еще «Линкольн для адвоката» придумал). По ссылке подробная заметка.
В ролях отметились звезды Прослушки — Джереми Гектор и Лэнс Реддик.

5. Justified / Правосудие (8.6 imdb)
Нео-вестерн в восточном Кентукки. Отличный дуэт Тимоти Олифанта (звезда Deadwood) и, опять же, Уолтона Гоггинса. Сериал, подаривший нам «лучезарного Джима» в чьём-то чудесном переводе.

6. Luther / Лютер (8.4 imdb)
Британский детектив с еще одной звездой Прослушки, Идрисом Эльбой. По ссылке подробная заметка. Пожалуй самый мрачный, суровый и нуарный из всего списка.

P.S. топ-6, потому что топ-5 это скучно)

#сериалы
👍2