Cross Join - канал о разработке – Telegram
Cross Join - канал о разработке
3.69K subscribers
91 photos
8 videos
3 files
286 links
Канал о разработке Антона Околелова. Тимлид Go, живу в Чехии. Мысли, новости, вопросы.

По вопросам рекламы @antonokolelov
Download Telegram
Недавно заопенсорсили Puter - так называемую "Internet OS". Там можно кодить в vscode, рисовать и прочие штуки. Короче, имитация десктопа операционной системы в браузере.
Но самый прикол, что там всё написано на jQuery :). А вы смеялись над выходом 4 версии )))
🔥13👍31
Forwarded from StarScream Broadcasting
Составлял на работе “индивидуальный план развития сотрудника” и понял что именно мне не нравится в этой штуке.

1. Нет никакой связи между задачами на работе и этим самым развитием. Можно качать навык по БД но если задач на это нет - то и навык быстро уйдет и не закрепится.

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

3. Мотивация - выполнение какого либо пункта из плана развития сотрудника никак на него не влияет. И тут вопрос даже не про повышение оклада или грейда - а про промежуточные шаги, прогресс по развитию.

4. Выставление целей по методикам типа STAR на начальном этапе чаще всего туманно. Непонятно можно ли будет получить практический результат, можно ли его будет оценить?

5. ИПР это штука обязательная, но почему-то за пару лет все синьорами не стали. И не станут. И не факт, что хотят. И не факт, что нужно.

6. Есть бизнес задачи, цели спринта, итерации, квартала, до отпуска надо дожить, давайте после майских. Развитие не в фокусе. И это относится и к разработчику и к руководителю.

Как заставить эту штуку работать? И быть полезной и сотруднику и тимлиду? Что я делаю или пробую делать.

1. Нужен список болей, проблем, точек роста конкретно у вас на рабочем месте. Запросы долгие, процесс хромает, документации мало - с таким списком сотруднику будет легче выбрать навык который он может прокачать на практической проблеме.

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

3. Если у человека все таки есть план развития - и он сам его составил, помогайте, спрашивайте про прогресс, отмечайте его.

Всякие штуки типа evolution review могут быть полезными только если обе стороны видят в них пользу иначе это свалится в бюрократию и демагогию.
👍329👏2🤮1
Cognition labs разработали ai-программиста, который по их словам пользуется IDE, браузером, самообучается, коммуницирует с "заказчиком" для уточнения деталей, а самое главное - в тесте SWE-bench (решение реальных проблем с гитхаба) достиг показателя в 13%, что в 10 раз лучше всех других подобных попыток.

Чё делается-то

https://www.cognition-labs.com/blog
😁7👍6🔥3🥰2💩2🥱1
Смотрите, как человек пишет на JS. Очень напоминает какой-то другой язык.....
😁45
Уважаемые программисты. Накидайте плиз в коментах, что вас мотивирует работать.

По моим наблюдениям топ такой
1) хорошая зп (точнее, плохая зп демотивирует)
2) отсутствие микроменеджмента и бюрократии
3) возможность хотя бы иногда изучать что-то новое

Т.е. по сути, программировать и так интересно, надо лишь убрать демотиваторы и добавить чуток разнообразия.
👍328
По мотивам поста про хранение купонов с временем устаревания и ограничение unique . Оказывается в Postgres 17 планируется нововведение: к ключевым словам UNIQUE и PRIMARY KEY можно будет добавить WITHOUT OVERLAPS. И тогда, в случае, когда в ключ входит диапазон чего-то, то уникальность будет сравниваться не тупым сравнением, а оператором &&

Вот комит: https://git.postgresql.org/gitweb/?p=postgresql.git;a=commit;h=46a0cd4cefb4d9b462d8cc4df5e7ecdd190bea92

вот пример из него:


CREATE TABLE temporal_rng (
id integer,
valid_at daterange,
CONSTRAINT temporal_rng_pk PRIMARY KEY (id, valid_at WITHOUT OVERLAPS)
);


INSERT INTO temporal_rng VALUES
(1, '[2000-01-01,2001-01-01)');

INSERT INTO temporal_rng VALUES
(1, '[2001-01-01,2002-01-01)');

INSERT INTO temporal_rng VALUES
(2, '[2000-01-01,2001-01-01)');

-- запрос не пройдёт, так как перекается диапазон дат с первой строкой (для одного и того же id)
INSERT INTO temporal_rng VALUES
(1, '[2000-06-01,2001-01-01)');



Так что скоро это будет возможно без мудрёных хаков
🤝13👍4
⚡️Microservices | Вопросы с Собеседований

Если вам интересно

- Почему батчевые update могут вызывать дедлоки
- Что делать, если одни и те же данные нужны в нескольких сервисах
- Что такое Consistent Hashing

То подписывайтесь на канал Lead backend разработчика с авторскими статьями про проектирование, архитектуру, базы данных
🔥10👍6👌3
Отличная лекция про Аду Лавлейс и первую в мире программу. Это не сухие факты из книжки, а интересный рассказ и интересные события из жизни + технические детали, что в этой программе было, какие концепции закладывались

https://www.youtube.com/watch?v=oZ5nmhehzpc
👍13💩2
This media is not supported in your browser
VIEW IN TELEGRAM
А вы знали, что на 1C люди вовсю пишут микросервисы?

Платформа Гонец:Микросервисы создана для решения программистами 1С задач, связанных с высокопроизводительными распределенными вычислениями, создания микросервисов, вэб-сервисов и вэб-порталов для работы тысяч пользователей, работы с высокоэффективными базами данных, с использованием синтаксиса языка, похожего, но не ограниченного возможностями языка 1С. Для этого интерпретатор встраивается в решения на языке Go.

Ссылка на репу
🤣35👏5👍4😱3🎉1🥱1
В официальном блоге Go.dev вышел пост с результатами опроса о текущем состоянии языка Go.

Там много чего, отчет прям большой. Из основного:

93% респондентов удовлетворены языком

80% сказали, что доверяют Go team, и считают, что ребята делают всё так, как надо разработчикам.

Много вопросов про AI, вывод такой, что Go можно использовать на проде для AI, но проблема в том, что все библиотеки и доки на питоне.

Ну и нельзя не заметить, что обработка ошибок по-прежнему где-то в топе проблем :)

Канал Cross Join. Подпишись
😁5👍4
Очень личная и внезапная просьба :)

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

Если вдруг у вас есть акк instagram и вы цените прекрасное, то подпишитесь!

https://www.instagram.com/alekchis/

А за репост - я ваш должник навсегда
👌1911👍4🤡2🥰1🤔1💩1😐1
Удивительно, какие графики можно сейчас делать. Прям представляю, как кто-то сидел и думал, ну какую бы еще ненужную хрень запилить в библиотеку для графиков на фронтенде, чтобы все ахнули.

И тут его осенило: земной шар, который можно покрутить! Вот это график!

Капец 🙂

Но смотрится очень круто, конечно.
🔥8🌚1
Одной из самых важных вещей в разработке и тимлидстве является управление фокусом внимания. Нельзя делать несколько вещей сразу - ты просто потратишь время и еще и устанешь.

Эта вещь далеко не всегда очевидна интуитивно. Такое бывает сплошь и рядом: день потрачен, вроде бы весь день что-то делал, но результат трудно понять и сформулировать.

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

Особенно часто этим страдают начинающие тимлиды: им что-то пишут, а они сразу отвечают и начинают суетиться, кодить че-то. Результат - выгорание при отсутствии результата.

Поэтому, разрабам я бы посоветовал что-то вроде метода pomodoro: делать явные периоды, когда занимаешься задачей со 100% фокусом, игноря вообще всё остальное, и явные периоды отдыха, когда ты, например, сидишь в твиторе и пишешь туда всякую токсичную хуйню. Сколько выделять на то, и сколько на это - индивидуально. Даже от времени дня зависит.
Ну и полезно ставить в календаре слоты "работаю", если часто задалбывают внешними событиями.

Лидам в приципе тоже самое. НЕ реагировать на каждое сообщение в мессенджере. Делать это раз в определенный период времени, например полчаса-час. Если будет что-то совсем срочное - вам позвонят. Я много лет скрываю нижнюю панель на маке, чтобы НЕ ВИДЕТЬ, что кто-то написал что-то. Даже если вы прочли какое-то сообщение, НЕ БРОСАТЬСЯ его сразу делать. Запишите себе в блокнот, в жиру и т.д. Потом спокойно приоритезируете, делегируете и т.д. и делаете в периоды фокуса, причем самое важное.

В состоянии расфокуса невозможно сделать ничего полезного.

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

Канал Cross Join. Подпишись
👍57👏4🔥1
😌💨

Научное исследование влияния каннабиса на способность программировать:

"Случайные свидетельства употребления каннабиса профессиональными программистами многочисленны. Недавние исследования показали, что некоторые профессионалы регулярно употребляют каннабис во время программирования, даже для решения рабочих задач.
Однако рассказы о влиянии каннабиса на программирование сильно различаются и часто противоречат друг другу. Например, некоторые программисты утверждают, что он снижает их способность генерировать правильные решения, в то время как другие утверждают, что он повышает креативность и концентрацию. Остается потребность в эмпирическом понимании истинного влияния каннабиса на программирование.

В данной работе представлено первое контролируемое обсервационное исследование влияния каннабиса на способность к программированию. На основе внутрисубъектного исследования с участием более 70 человек мы обнаружили, что в экологически обоснованных дозах каннабис значительно снижает эффективность программирования. Программы, выполненные под кайфом содержат больше ошибок и требуют больше времени для написания (𝑝 < 0,05) - эффект от малого до среднего (0,22 ≤ 𝑑 ≤ 0,44). Мы также не нашли никаких доказательств того, что укуренные программисты генерируют больше разнообразных решений"

Канал Cross Join. Подпишись
👍18🤣14😢5💩3🗿3
Написал статью про семантический поиск с помощью посгреса и OpenAI API.

Казалось бы, в посгресе и так есть неплохой полнотекстовый поиск (tsvector/tsquery), и вы из коробки можете проиндексировать ваши тексты, а потом поискать по ним. Но на самом деле это не совсем то, что нужно — такой поиск работает лишь по чётким совпадениям слов. Т.е. postgres не догадается, что "кошка гонится за мышью" — это довольно близко к "котёнок охотится на грызуна". Как же победить такую проблему?


TLDR:


1. Преобразовываем наши тексты в наборы чисел (векторы) при помощи API openAI.
2. Сохраняем векторы в базе с помощью pgvector.
3. Легко ищем близкие друг к другу векторы или ищем их по вектору-запросу.
4. Ускоряем индексами.

Как всегда, буду рад плюсикам на Хабре:

https://habr.com/ru/companies/karuna/articles/809305/

Канал Cross Join. Подпишись
🔥42🤔8👍6😁21
Посмотрел исходники DOS. 85% на asm, 15% на Си
🥰6