TGViewer
Channel Public Channel
Cross Join - канал о разработке

Cross Join - канал о разработке

@crossjoin

Канал о разработке Антона Околелова. Разрабочик/ex-тимлид Go, живу в Чехии. Мысли, новости, вопросы.

По вопросам рекламы @antonokolelov
Subscribers
3.82K
Photos
105
Videos
9
Links
315

Showing posts older than #290 · Back to latest

Older Posts 20 shown
Post #289 3.18K
Отличная лекция про Аду Лавлейс и первую в мире программу. Это не сухие факты из книжки, а интересный рассказ и интересные события из жизни + технические детали, что в этой программе было, какие концепции закладывались

https://www.youtube.com/watch?v=oZ5nmhehzpc
YouTube Ада Лавлейс и программирование ❓ Хочешь обсудить выпуск или задать вопрос эксперту? Вступай в наш tg-чат: https://t.me/+QE7Frg-mBCFkODEy 📰 Не любишь чаты, но хочешь оставаться в курсе дел и прокачивать свой ИТ-кругозор? Подписывайся на наш tg-канал: там публикуются анонсы новых выпусков…
  • 👍 13
  • 💩 2
Post #288 3.03K
⚡️Microservices | Вопросы с Собеседований

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

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

✅ То подписывайтесь на канал Lead backend разработчика с авторскими статьями про проектирование, архитектуру, базы данных
Telegram Fedkin is thinking Сотрудничество: @qsqnk
  • 🔥 10
  • 👍 6
  • 👌 3
Post #287 3.11K
По мотивам поста про хранение купонов с временем устаревания и ограничение 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)');



Так что скоро это будет возможно без мудрёных хаков
Telegram Cross Join - канал о разработке Узнал сегодня небольшой хак из мира Postgres. Например, у вас есть таблица с купонами, и у купонов есть некая дата устаревания valid_until. Допустим, вам надо обеспечить такой констрейнт, чтобы у одного человека не было одновременно больше одного неустаревшего…
  • 🤝 13
  • 👍 4
Post #286 3.03K
Уважаемые программисты. Накидайте плиз в коментах, что вас мотивирует работать.

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

Т.е. по сути, программировать и так интересно, надо лишь убрать демотиваторы и добавить чуток разнообразия.
  • 👍 32
  • ❤ 8
Post #285 3.09K
Смотрите, как человек пишет на JS. Очень напоминает какой-то другой язык.....
  • 😁 45
Post #284 3.47K
Cognition labs разработали ai-программиста, который по их словам пользуется IDE, браузером, самообучается, коммуницирует с "заказчиком" для уточнения деталей, а самое главное - в тесте SWE-bench (решение реальных проблем с гитхаба) достиг показателя в 13%, что в 10 раз лучше всех других подобных попыток.

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

https://www.cognition-labs.com/blog
  • 😁 7
  • 👍 6
  • 🔥 3
  • 🥰 2
  • 💩 2
  • 🥱 1
Post #283 3.63K

Forwarded from StarScream Broadcasting

Составлял на работе “индивидуальный план развития сотрудника” и понял что именно мне не нравится в этой штуке.

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

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

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

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

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

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

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

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

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

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

Всякие штуки типа evolution review могут быть полезными только если обе стороны видят в них пользу иначе это свалится в бюрократию и демагогию.
  • 👍 32
  • ❤ 9
  • 👏 2
  • 🤮 1
Post #282 2.89K
Недавно заопенсорсили Puter - так называемую "Internet OS". Там можно кодить в vscode, рисовать и прочие штуки. Короче, имитация десктопа операционной системы в браузере.
Но самый прикол, что там всё написано на jQuery :). А вы смеялись над выходом 4 версии )))
  • 🔥 13
  • 👍 3
  • ❤ 1
Post #281 3.38K
Котлин немного странный.

Если код на Java такой:
MyClass myObject = new MyClass("abc", n -> System.out.println(n));

То на Котлине это будет
val myObject = MyClass("abc") { n -> println(n) }

Во-первых, кому помешало слово new? А во вторых, почему лямбда-функция из второго аргумента аргумента переместилась куда-то наружу, за скобки? В чем логика-то?

С непривычки мозгу это как-то сложно распарсить.

Upd. Чтобы строить DSL
  • 🤡 21
  • 😁 5
  • 👎 4
  • 👍 3
  • 🤯 1
Post #279 3.37K
Cross Join - канал о разработке Узнал сегодня небольшой хак из мира Postgres. Например, у вас есть таблица с купонами, и у купонов есть некая дата устаревания valid_until. Допустим, вам надо обеспечить такой констрейнт, чтобы у одного человека не было одновременно больше одного неустаревшего…
Оформил пост в статью на Хабре. Плюсаните, кто может )
  • ❤ 10
  • 🔥 4
  • 👍 2
  • 💩 2
Post #278 3.64K
На реддите появилась статья "Популярные настройки git "

Например, автокоррекция опечаток: git ocmmit -> git commit

Или как подключить разные настройки для разных путей (можно задать разные e-mailы для личных и рабочих репозиториев)
[includeIf "gitdir:~/code/<work>/"]
path = "~/code/<work>/.gitconfig"

Я для себя нашел пару полезных вещей
  • 👍 19
  • ❤ 3
Post #276 4.29K
Узнал сегодня небольшой хак из мира Postgres. Например, у вас есть таблица с купонами, и у купонов есть некая дата устаревания valid_until. Допустим, вам надо обеспечить такой констрейнт, чтобы у одного человека не было одновременно больше одного неустаревшего купона.

Например, таблица изначально выглядит так:

CREATE TABLE coupons (
id bigint primary key generated by default as identity,
user_id bigint not null,
created_at timestamp not null,
valid_until timestamp not null
)

Думаю, всем известно, что есть ключевое слово UNIQUE, с помощью которого можно обеспечить уникальность какого-то поля/полей. Но напрямую оно нам не подойдет, так как в базе могут остаться устаревшие купоны, которые будут конфликтовать со свежими.

Также многим известно, что UNIQUE может идти с условием. Казалось бы, добавить просто к констрейнту WHERE (valid_until > NOW()) и дело с концом. Однако так нельзя: невозможно сделать констрейт по функции, которую заранее не вычислить. Т.е. WHERE (is_valid) бы прокатило, но не сравнение с NOW().

Можно выкрутиться с помощью триггера, но есть способ поэлегантнее.

В посгресе есть тип данных tsrange (диапазон времени), а также ключевое слово EXCLUDE, с помощью которого можно запретить вставку строк, где диапазоны пересекаются:

EXCLUDE USING GIST (tsrange(created_at, valid_until) WITH &&)

Но это условие действует на всю таблицу, а не в рамках юзера. Поэтому надо добавить еще одно:

EXCLUDE USING GIST (user_id WITH =, tsrange(created_at, valid_until) WITH &&)

(чтобы это работало, нужно сначала включить расширение  btree_gist: CREATE EXTENSION IF NOT EXISTS btree_gist;)

Итого, проверяем:


CREATE EXTENSION IF NOT EXISTS btree_gist;

CREATE TABLE coupons (
id bigint primary key generated by default as identity,
user_id bigint not null,
created_at timestamp not null,
valid_until timestamp not null,
EXCLUDE USING GIST (
user_id WITH =,
tsrange(created_at, valid_until) WITH &&
)
);

INSERT INTO coupons(user_id, created_at, valid_until)
VALUES
(100500, now(), now() + interval '1 day');

INSERT INTO coupons(user_id, created_at, valid_until)
VALUES
(100501, now(), now() + interval '10 day');

INSERT INTO coupons(user_id, created_at, valid_until)
VALUES
(100500, now(), now() + interval '10 day');


последний insert не пройдёт: "ERROR: conflicting key value violates exclusion constraint"
  • 👍 28
  • 🔥 10
  • 🌚 1
Post #275 3.53K
Недавно прогремела нейросеть, генерящая видосы из промптов. Внимание, вопрос: сколько волчат на видео?
  • 😁 28
  • ❤ 1
Post #274 3K
Появился новый форк nginx из-за разногласий разработчиков с руководством F5: freenginx

Интервью Рыбака с автором форка: https://habr.com/ru/articles/794096/
  • 👾 7
  • 😁 1
Post #272 3.47K
Интересная статья о том, что корпорации очень далеко ушли от понятия agile, где по задумке команды должны работать адаптивно, автономно и в соответствии с насущными вечно меняющимися потребностями. Но при этом компании продолжают называть аджайлом свои по сути waterfall-процессы с четким планированием и внешним контролем над всеми внутрикомандными процессами.

"Корпоративный Agile пытается отдать приоритет адаптации И предсказуемости, не осознавая, что нужно выбрать что-то одно"

Автор предлагает или перейти к настоящему basic-аджайлу или честно называть происходящее водопадом.

https://bits.danielrothmann.com/corporate-agile
  • 👍 21
  • 🤡 2
Post #271 3.27K
Как вы наверно уже знаете, вышел Go 1.22, об этом все уже написали. В том числе, в Go добавили (пока что в экспериментальном режиме, под флагом) итераторы. Т.е. оператор yield и прочие штуки, которые есть уже наверно во всех языках. Теперь затащили и в Go. Ну ок.

Вещь, конечно, полезная, уберёт многословность, например, при обработке ответа из базы. А где-то и лишние каналы. Но ёлы-палы, неужели это самая главная проблема?

Имхо, если уж добавлять сахар, то в самом главном месте. По всем опросам среди раздражающих факторов языка обработка ошибок по-прежнему лидер №1 с большим-пребольшим отрывом. И разработчки Go не могут этого не видеть.

Кроме того, есть куча пропозалов с различными вариантами, как это упростить, не нарушая явность обработки ошибок. Так в чем же дело? Неужели есть какая-то прям нерешаемая проблема?

Бесит всё 🙂
Bitfield Consulting Iterators in Go: the iter package and new stdlib APIs — Bitfield Consulting Iterators in Go are a neat way to write “lazy loops”, where we never generate more results than we actually use. Let’s see what that would look like in Go programs, and what new facilities it gives us in the standard library.
  • 😁 13
  • 👍 6
  • ❤ 1
  • 🤡 1
Post #269 4.23K
смотрите-ка, кто-то прочитал мои мысли. В одном посте я предлагал внедрять нейролинк и записывать всё, что есть в мозгу, чтобы обучать человекоподобных роботов. А тут люди сделали попроще - тупо навесили на ребёнка камеру и обучают по ней ИИ говорить (https://hightech.plus/2024/02/02/rebenok-s-kameroi-na-golove-pomog-ii-nauchitsya-govorit).
  • 🔥 10
  • 🤡 3
Post #268 5.2K
Появилось исследование на предмет влияния требования возвращения в офисы (RTO) на различные показатели. Анализировались компании из S&P500. В результате выяснилось, что финансовые показатели при возвращении в офисы никак не улучшаются, а удовлетворённость сотрудников падает.

https://deliverypdf.ssrn.com/delivery.php?ID=689110098112003004031017067005075075039006014007064066093070077069026023112003095081038035000043106003046064017116085080085127027053082084022064075127083127101076120084047038089073118002076021087115026025117093107092121112078110084069086073066081017112&EXT=pdf&INDEX=TRUE
Ssrn Return-to-Office Mandates Using a sample of Standard and Poor’s 500 firms, we examine determinants and consequences of U.S. firms’ return-to-office (RTO) mandates. Results of our determi
  • 👍 20
  • ❤ 4
  • 🤡 4
Post #267 3.43K
https://habr.com/ru/articles/789526/

Ужасно, конечно, что можно себе подпортить карьеру навсегда. Или СБ найдет какой-то проступок молодости или внезапно ваши тройки в университете (20 лет назад) будут на что-то влиять. Видел вакансии с требованием "An exceptional academic track record from both high school and university"
  • 👍 11
  • 😢 8
  • 😱 5
  • 🤷‍♂ 4
  • 🤡 2
  • 🔥 1
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →