Бен, это Данила, ай нид хелп...
Нам в dwh.dev очень нужен специалист по интерфейсам.
Мы делаем инструменты для визуального менеджмента объектов и работы со сложными связями в базах данных Snowflake (и не только).
И если с экспертизой в области БД, бека и фронта у нас проблем нет, то с крутым и удобным визуалом нам нужна помощь.
Задачи оказались слишком интересными, чтобы хватило ресурсов сделать это силами front-end инженеров :)
Как обычно, не обойдется без нюансов, но об этом в личной переписке (@antonrevyako).
Лайк, шер, во имя скорейшего наступления сингулярности :)
Нам в dwh.dev очень нужен специалист по интерфейсам.
Мы делаем инструменты для визуального менеджмента объектов и работы со сложными связями в базах данных Snowflake (и не только).
И если с экспертизой в области БД, бека и фронта у нас проблем нет, то с крутым и удобным визуалом нам нужна помощь.
Задачи оказались слишком интересными, чтобы хватило ресурсов сделать это силами front-end инженеров :)
Как обычно, не обойдется без нюансов, но об этом в личной переписке (@antonrevyako).
Лайк, шер, во имя скорейшего наступления сингулярности :)
Тут в одном канале напомнили про отличную книгу Skunk Works: личные мемуары моей работы в Локхид
Мне не очень близка тема авиации, но в свое время читал эту книгу запоем.
Совру в цифрах, но был один момент в духе: "самолет сделали за 1 год и пару миллионов долларов".
Сейчас мобильное приложение за такой срок и деньги с трудом сделать можно, а они самолет...
Перевод делали фанаты, он бесплатен. Ссылочки в посте.
https://news.1rj.ru/str/yclibrary/200
PS: Я ее оказывается как-то давно уже рекомендовал :)
Мне не очень близка тема авиации, но в свое время читал эту книгу запоем.
Совру в цифрах, но был один момент в духе: "самолет сделали за 1 год и пару миллионов долларов".
Сейчас мобильное приложение за такой срок и деньги с трудом сделать можно, а они самолет...
Перевод делали фанаты, он бесплатен. Ссылочки в посте.
https://news.1rj.ru/str/yclibrary/200
PS: Я ее оказывается как-то давно уже рекомендовал :)
Telegram
YC library на русском
#мышление #изобретательство #ДелоЖизни #мемуары
Skunk Works: личные мемуары моей работы в Локхид
Гениальное конструкторское бюро. Гениальная книга. Переводчик по своей инициативе перевел её в ЖЖ.
"От разработки U-2 до малозаметного истребителя, это впервые…
Skunk Works: личные мемуары моей работы в Локхид
Гениальное конструкторское бюро. Гениальная книга. Переводчик по своей инициативе перевел её в ЖЖ.
"От разработки U-2 до малозаметного истребителя, это впервые…
Одного канала всегда (никогда) недостаточно :)
Я тут вспомнил, что заводил канал, чтобы делиться всякой красотой.
Не канал с мемами, конечно, но почему бы и нет...
Ну, во-первых, это красиво...
Я тут вспомнил, что заводил канал, чтобы делиться всякой красотой.
Не канал с мемами, конечно, но почему бы и нет...
Ну, во-первых, это красиво...
Не знаю, кто использует airtable так, что бы это стало актуальным, но концепция интересная: синхронизировать состояние внешнего сервиса в базу:
https://syncinc.so/
по наводке @oleg_log
https://syncinc.so/
по наводке @oleg_log
sequin.io
Get a real-time, bidirectional sync between APIs and your database. Skip query params, rate limits, and webhooks. Build using all the power of Postgres and SQL instead.
Forwarded from Я у мамы аналитик (Stas Valuev)
«12 SQL and NoSQL Datastores for Your Application» - еще одна
статья-введение в современные СУБД.
Есть слайды, на которых нормально пояснены:
🔹разница между OLTP / OLAP;
🔹SQL / NoSQL;
🔹разные варианты хранения неструктурированных или частично структурированных данных.
Гвоздь программы: сводная табличка с классическими и облачными решениями (AWS, Azure, GCP) для хранения всех возможных типов данных.
🔗Ссылка
#базы_данных
статья-введение в современные СУБД.
Есть слайды, на которых нормально пояснены:
🔹разница между OLTP / OLAP;
🔹SQL / NoSQL;
🔹разные варианты хранения неструктурированных или частично структурированных данных.
Гвоздь программы: сводная табличка с классическими и облачными решениями (AWS, Azure, GCP) для хранения всех возможных типов данных.
🔗Ссылка
#базы_данных
Геймдев есть геймдев. AAA+ или инди на флеше - same vibe... :)
Forwarded from Generative Anton
Группа хакеров N-ое время назад взломала CD Project Red (польская игровая студия) и вытащила исходники Cyberpunk 2077.
Есть верхушка того, что уже расковыряли, но в целом там все, как в лучших софтварных проектах:
1) машина — это абстракция над лошадью, у которой есть двери
2) смешные enum’ы с перечислением цензуры (где отдельный параметр цензуры для Китая называется Censor_WinnieThePooh
3) хаки для E3 2019 с комментами REMOVE ASAP
Есть верхушка того, что уже расковыряли, но в целом там все, как в лучших софтварных проектах:
1) машина — это абстракция над лошадью, у которой есть двери
2) смешные enum’ы с перечислением цензуры (где отдельный параметр цензуры для Китая называется Censor_WinnieThePooh
3) хаки для E3 2019 с комментами REMOVE ASAP
Forwarded from Yandex Cloud
ClickHouse вошла в топ-50 самых популярных в мире СУБД
Распределённая система управления базами данных ClickHouse впервые вошла в топ-50 самых популярных в мире СУБД по версии DB-Engines Ranking. Это один из главных отраслевых рейтингов в мире СУБД. Он публикуется с 2012 года и сейчас охватывает 371 систему. На сегодняшний день это единственная СУБД российского происхождения в топ-50 рейтинга.
ClickHouse доступна в виде облачного сервиса на платформе Yandex.Cloud. Прямо сейчас вы можете воспользоваться всеми преимуществами СУБД, не вникая в тонкости настройки и обслуживания.
Подробнее о новости читайте в материале на Хабре →
#yacloud_news
Распределённая система управления базами данных ClickHouse впервые вошла в топ-50 самых популярных в мире СУБД по версии DB-Engines Ranking. Это один из главных отраслевых рейтингов в мире СУБД. Он публикуется с 2012 года и сейчас охватывает 371 систему. На сегодняшний день это единственная СУБД российского происхождения в топ-50 рейтинга.
ClickHouse доступна в виде облачного сервиса на платформе Yandex.Cloud. Прямо сейчас вы можете воспользоваться всеми преимуществами СУБД, не вникая в тонкости настройки и обслуживания.
Подробнее о новости читайте в материале на Хабре →
#yacloud_news
Хабр
ClickHouse от Яндекса вошла в топ-50 самых популярных в мире СУБД
Распределенная система управления базами данных ClickHouse от Яндекса впервые оказалась в топ-50 самых популярных в мире СУБД по версии DB-Engines Ranking. ClickHouse расположилась на 49-й строчке...
Многие знают, что в js (и не только) для большей читаемости можно разделять числа символом подчеркивания:
Что получится в результате вызова
Ответы в комменты :)
console.log(1_000_000);
// 1000000
А теперь вопрос со звездочкой (без подглядывания в консоль):Что получится в результате вызова
SELECT 1_000_000
Справедливо для postgresql, mssql и snowflake. В mysql и sqlite будет ошибка.Ответы в комменты :)
Вдогонку к
SELECT 1_000_000Есть еще один момент, который, я, кажется, не упоминал в своих выпусках SQL-TIL:
SELECT 'foo'Mysql, postgresql и sqlite вернут 3 разных результата, а в snowflake будет ошибка :)
'bar'
Все выпуски SQL-TIL (чтобы вы могли пошарить):
postgresql edition:
1) https://news.1rj.ru/str/nosingularity/535
2) https://news.1rj.ru/str/nosingularity/541
3) https://news.1rj.ru/str/nosingularity/548
4) https://news.1rj.ru/str/nosingularity/572
snowflake edition:
5) https://news.1rj.ru/str/nosingularity/582
6) https://news.1rj.ru/str/nosingularity/602
7) https://news.1rj.ru/str/nosingularity/753 и https://news.1rj.ru/str/nosingularity/754
8) https://news.1rj.ru/str/nosingularity/762
mix:
9) https://news.1rj.ru/str/nosingularity/755
10) https://news.1rj.ru/str/nosingularity/803 и https://news.1rj.ru/str/nosingularity/804
postgresql edition:
1) https://news.1rj.ru/str/nosingularity/535
2) https://news.1rj.ru/str/nosingularity/541
3) https://news.1rj.ru/str/nosingularity/548
4) https://news.1rj.ru/str/nosingularity/572
snowflake edition:
5) https://news.1rj.ru/str/nosingularity/582
6) https://news.1rj.ru/str/nosingularity/602
7) https://news.1rj.ru/str/nosingularity/753 и https://news.1rj.ru/str/nosingularity/754
8) https://news.1rj.ru/str/nosingularity/762
mix:
9) https://news.1rj.ru/str/nosingularity/755
10) https://news.1rj.ru/str/nosingularity/803 и https://news.1rj.ru/str/nosingularity/804
Forwarded from Бесконечное ИТ
"А давайте сделаем сервис на 100% доступным". Хороший пост рассказывающий чего вам это будет стоит. Авторы говорят о 10x increase in development costs(!)
Спойлер, определите уровень который нужен вам врядли это именно 100%, каждая 9 после 99% стоит оочень много.
"Say a feature is estimated to take 20 days of development (including design). Add a further 10 days for testing (using the top end industry estimate of one-third time), and you have a total of 30 days cost for the good reliability feature. For the 100% reliability feature, we need much more testing, around 200 days using Colm’s talk. That means a total of 30 days for adding a feature with good reliability becomes 220 days for 100% reliability. More than seven times the cost. These are just rough estimates, but conservative and indicative of how there is a 10x increase in development costs."
https://medium.com/expedia-group-tech/the-cost-of-100-reliability-ecb2901f23a4
Спойлер, определите уровень который нужен вам врядли это именно 100%, каждая 9 после 99% стоит оочень много.
"Say a feature is estimated to take 20 days of development (including design). Add a further 10 days for testing (using the top end industry estimate of one-third time), and you have a total of 30 days cost for the good reliability feature. For the 100% reliability feature, we need much more testing, around 200 days using Colm’s talk. That means a total of 30 days for adding a feature with good reliability becomes 220 days for 100% reliability. More than seven times the cost. These are just rough estimates, but conservative and indicative of how there is a 10x increase in development costs."
https://medium.com/expedia-group-tech/the-cost-of-100-reliability-ecb2901f23a4
Medium
The Cost of 100% Reliability
How do reliability costs stack up? Where do they come from?
Forwarded from .и в продакшен
Минутка tech porn.
У нас огромная multi-tenant реляционная база данных. Таблицы по 200 ГБ - рехнуться, если честно. При этом для multi-tenant архитектуры мы юзаем самую тупую модель - "Pool" - это когда во все таблицы добавляется ключик "tenant_id". Модель неэффективная и тормозная, но зато простая в реализации и поддержке.
(кстати у AWS пролетал классный документ про дизайн multi-tenant систем, где разобраны все варианты, мастрид для всех CTO)
Все тормозило и заикалось. Клиенты бесились, сервера перегревались. Задачи типа "получить запись по ID" работали нормально, но вот любой список типа "непрочитанные письма за сегодня" в многотерабайтной базе начинает жестко тупить. Даже с правильными индексами. Один жирный клиент с дохреллионом записей притормаживает мелких клиентов, у которых данных совсем мало. Надо было что-то делать.
И тут нам пришло Великое Озарение [sarcasm], которое рано или поздно приходит любому DBA - о том, что основная работа всегда ведется с "верхушкой" данных. А огромный "long tail" всегда лежит мертвым грузом инахуй не нужен юзается только в отчетах.
Первая мысль - надо сделать "вертикальный" партишенинг. Т.е. "старые" данные спихивать куда-то за горизонт (на отдельный диск или даже сервер), а "активные" данные держать где-то под рукой.
Мысль правильная, но нет.
Грамотный партишенинг - это оказалось сложно, долго, гемор и с первого раза не работает. Перефразируя известную поговорку про яхтинг, в жизни DBA есть два счастливых дня - день когда он настроил партишенинг, и день когда он его прибил. Ибо сервер все равно время от времени сканил партишены как попало и расследовать такие случаи довольно тяжело.
Я уже слышу крики из зала: "шардинг", "кликхаус", "разделяй OLTP и DWH и делай синк". И прочий оверинжиниринг. Сразу нет. У нас есть self-hosted версия, которая должна заводиться в один клик даже у домохозяек. Хотелось простой хак, который решит все проблемы одной строчкой.
И тут я случайно вспомнил про офигенный читкод - фильтрованные индексы. Ведь по умолчанию индекс делается по всей таблице. Но зачем, если можно индексировать только 0.1%?
В коде любого CRUD-приложения, в бизнес-логике всегда есть признак, который отличает "старые" данные от "новых". Ну типа "статус проекта = сдан". Или "статус заказа = обработан". И это условие уже есть в большинстве ваших SELECT'ов. В нашем случае это было "статус тикета = закрыт".
Что делает DBA-джун? Создает индекс по этой колонке. Чтобы, значит, поиск незакрытых тикетов был быстрым и классным.
Когда мы прикрутили первый фильтрованный индекс и стали смотреть статистику использования, мы офонарели - сервер бросил все дела, и стал жадно его жрать. Приложение ускорилось в разы, нагрузка на проц снизилась на 80%. Посмотрите график - до и после внедрения только ОДНОГО пробного индекса.
Наш бд-сервер имеет всего 4 ядра и 32 гига памяти, при этом запросто тянет базу в несколько терабайт и сотни тысяч DAU. У нас в компании есть негласный челлендж - сколько можно протянуть на этом железе без апгрейдов? Уже годы держимся))
К чему я все это - не бегите прикручивать громоздкие решения, старые и скучные rdbms умеют много крутых штук даже на дохлом железе.
P.S. есть нюанс, кстати. Когда делаете filtered index, обязательно включайте фильтрованную колонку в "include". Так мы заставляем сервер поддерживать "статистику" по колонке. Без статистики все это великолепие работать не будет, сервер индекс не заметит.
У нас огромная multi-tenant реляционная база данных. Таблицы по 200 ГБ - рехнуться, если честно. При этом для multi-tenant архитектуры мы юзаем самую тупую модель - "Pool" - это когда во все таблицы добавляется ключик "tenant_id". Модель неэффективная и тормозная, но зато простая в реализации и поддержке.
(кстати у AWS пролетал классный документ про дизайн multi-tenant систем, где разобраны все варианты, мастрид для всех CTO)
Все тормозило и заикалось. Клиенты бесились, сервера перегревались. Задачи типа "получить запись по ID" работали нормально, но вот любой список типа "непрочитанные письма за сегодня" в многотерабайтной базе начинает жестко тупить. Даже с правильными индексами. Один жирный клиент с дохреллионом записей притормаживает мелких клиентов, у которых данных совсем мало. Надо было что-то делать.
И тут нам пришло Великое Озарение [sarcasm], которое рано или поздно приходит любому DBA - о том, что основная работа всегда ведется с "верхушкой" данных. А огромный "long tail" всегда лежит мертвым грузом и
Первая мысль - надо сделать "вертикальный" партишенинг. Т.е. "старые" данные спихивать куда-то за горизонт (на отдельный диск или даже сервер), а "активные" данные держать где-то под рукой.
Мысль правильная, но нет.
Грамотный партишенинг - это оказалось сложно, долго, гемор и с первого раза не работает. Перефразируя известную поговорку про яхтинг, в жизни DBA есть два счастливых дня - день когда он настроил партишенинг, и день когда он его прибил. Ибо сервер все равно время от времени сканил партишены как попало и расследовать такие случаи довольно тяжело.
Я уже слышу крики из зала: "шардинг", "кликхаус", "разделяй OLTP и DWH и делай синк". И прочий оверинжиниринг. Сразу нет. У нас есть self-hosted версия, которая должна заводиться в один клик даже у домохозяек. Хотелось простой хак, который решит все проблемы одной строчкой.
И тут я случайно вспомнил про офигенный читкод - фильтрованные индексы. Ведь по умолчанию индекс делается по всей таблице. Но зачем, если можно индексировать только 0.1%?
В коде любого CRUD-приложения, в бизнес-логике всегда есть признак, который отличает "старые" данные от "новых". Ну типа "статус проекта = сдан". Или "статус заказа = обработан". И это условие уже есть в большинстве ваших SELECT'ов. В нашем случае это было "статус тикета = закрыт".
Что делает DBA-джун? Создает индекс по этой колонке. Чтобы, значит, поиск незакрытых тикетов был быстрым и классным.
CREATE INDEX myIndexЧто делает прошаренный DBA-синьор? Создает еще и "filtered index" (в постгресе называется "partial index").
ON messages (processed)
CREATE INDEX myIndexВ результате даже в многотерабайтной базе мы имеем маленький быстрый индекс всего в десятки мегабайт (!), который всегда показывает на самые последние данные. Как только данные перестают удовлетворять признаку - они из индекса улетают.
ON messages (column1, column2...)
WHERE processed = 0 --вот так
Когда мы прикрутили первый фильтрованный индекс и стали смотреть статистику использования, мы офонарели - сервер бросил все дела, и стал жадно его жрать. Приложение ускорилось в разы, нагрузка на проц снизилась на 80%. Посмотрите график - до и после внедрения только ОДНОГО пробного индекса.
Наш бд-сервер имеет всего 4 ядра и 32 гига памяти, при этом запросто тянет базу в несколько терабайт и сотни тысяч DAU. У нас в компании есть негласный челлендж - сколько можно протянуть на этом железе без апгрейдов? Уже годы держимся))
К чему я все это - не бегите прикручивать громоздкие решения, старые и скучные rdbms умеют много крутых штук даже на дохлом железе.
P.S. есть нюанс, кстати. Когда делаете filtered index, обязательно включайте фильтрованную колонку в "include". Так мы заставляем сервер поддерживать "статистику" по колонке. Без статистики все это великолепие работать не будет, сервер индекс не заметит.
CREATE INDEX myIndex
ON Messages (Column1, Column2...)
INCLUDE (Processed) --важно
WHERE Processed = 0Все так, но есть пара нюансов, которые стоит учитывать:
1. Условие в частичном индексе или формула в функциональном должны быть ТАКИМИ ЖЕ, какими они будут в запросах.
Планировщики баз данных умеют минимальные оптимизации. В документации обычно так и пишут: "у нас тут не софт для теоретической алгебры, пишите нормально!".
Postgresql, например, поймет, если частичный индекс будет создан для
Но для выражения
Кстати, хозяйке на заметку: частичный индекс
Да, еще: будте осторожнее с отрицанием. Про de morgan law я писал вот тут https://news.1rj.ru/str/nosingularity/513.
Если коротко: булево отрицание не всегда есть то, что вы себе предполагаете. И некоторые конструкции SQL не эквивалентны, хотя кажется, что должны:
2. Одновременно существует индекс на всю колонку и частичный индекс на эту же колонку.
При вставке и обновлении этой колонки будут обновляться оба индекса.
По понятной причине такие операции будут жрать довольно много ресурсов. Поэтому стоит хорошо подумать: нужен ли вам индекс по всей колонке, если уже есть частичный.
Btw, частично с обнаружением таких спорных мест помогает holistic.dev :)
1. Условие в частичном индексе или формула в функциональном должны быть ТАКИМИ ЖЕ, какими они будут в запросах.
Планировщики баз данных умеют минимальные оптимизации. В документации обычно так и пишут: "у нас тут не софт для теоретической алгебры, пишите нормально!".
Postgresql, например, поймет, если частичный индекс будет создан для
a > 1и в запросе будет использовано выражение
a > 2
Но для выражения
a + 1 > 0никаких оптимизаций сделано не будет.
Кстати, хозяйке на заметку: частичный индекс
a IS NOT NULLможет быть использован в любых запросах с колонкой a, кроме запроса
a IS NULLПланировщик будет учитывать такой индекс в запросах, где используется условие на эту колонку.
Да, еще: будте осторожнее с отрицанием. Про de morgan law я писал вот тут https://news.1rj.ru/str/nosingularity/513.
Если коротко: булево отрицание не всегда есть то, что вы себе предполагаете. И некоторые конструкции SQL не эквивалентны, хотя кажется, что должны:
A IS TRUEи
A = TRUEне одно и тоже!
2. Одновременно существует индекс на всю колонку и частичный индекс на эту же колонку.
При вставке и обновлении этой колонки будут обновляться оба индекса.
По понятной причине такие операции будут жрать довольно много ресурсов. Поэтому стоит хорошо подумать: нужен ли вам индекс по всей колонке, если уже есть частичный.
Btw, частично с обнаружением таких спорных мест помогает holistic.dev :)
There will be no singularity
Все так, но есть пара нюансов, которые стоит учитывать: 1. Условие в частичном индексе или формула в функциональном должны быть ТАКИМИ ЖЕ, какими они будут в запросах. Планировщики баз данных умеют минимальные оптимизации. В документации обычно так и пишут:…
Казалось бы, все знают, что сравнивать с NULL не надо. Но вот такое до недавнего времени было DDL gitlab :
В последнем все примере похоже на какой-то грязный хак специально под RoR :)
CREATE INDEX backup_labels_group_id_noscript_idx ON backup_labels USING btree (group_id, noscript) WHERE (project_id = NULL::integer);
CREATE UNIQUE INDEX backup_labels_project_id_noscript_idx ON backup_labels USING btree (project_id, noscript) WHERE (group_id = NULL::integer);
CREATE INDEX index_labels_on_group_id_and_noscript ON labels USING btree (group_id, noscript) WHERE (project_id = NULL::integer);
потом они это пофиксили, но завезли такое:CHECK ((((project_id <> NULL::bigint) AND (group_id IS NULL)) OR ((group_id <> NULL::bigint) AND (project_id IS NULL))))
и такое:CREATE INDEX ... ON users USING btree (id, last_activity_on) WHERE (((state)::text = 'active'::text) AND ((user_type IS NULL) OR (user_type = ANY (ARRAY[NULL::integer, 6, 4]))));
CREATE INDEX ... ON users USING btree (id) WHERE (((state)::text = 'active'::text) AND ((user_type IS NULL) OR (user_type = ANY (ARRAY[NULL::integer, 6, 4]))) ...В последнем все примере похоже на какой-то грязный хак специально под RoR :)
Ребята из JUG решили замутить конфу про дата инжиниринг.
Проводить будут осенью, когда точно - пока хз.
Говорят, что полностью онлайн.
Сейчас ищут докладчиков.
Я бы сам с удовольствием принял участие, но не могу придумать о чем именно рассказать.
Если бы вы хотели послушать что-нибудь про snowflake в моем исполнении, накидайте, пожалуйста, тем в комментарии?
Проводить будут осенью, когда точно - пока хз.
Говорят, что полностью онлайн.
Сейчас ищут докладчиков.
Я бы сам с удовольствием принял участие, но не могу придумать о чем именно рассказать.
Если бы вы хотели послушать что-нибудь про snowflake в моем исполнении, накидайте, пожалуйста, тем в комментарии?
Конференция о дата-инжиниринге SmartData 2021 ищет спикеров
Вам есть о чем рассказать и что обсудить с коллегами по цеху? Тогда вам нужно подать заявку на участие в конференции! В этом году SmartData пройдет в гибридном формате: онлайн+офлайн.
Темы, которые ждут больше всего:
– Стриминг;
– СУБД и хранилища для больших данных;
– Архитектура DWH;
– Data governance;
–Технологии построения ETL;
– Оркестрация и MLOps.
Но этим списком не ограничивается — вы можете подать заявку с любой темой из области дата-инжиниринга.
Если все-таки сомневаетесь, то программный комитет всегда готов обсудить актуальность темы и помочь выбрать правильный вектор доклада. Плюс, ребята помогут с прокачкой ваших ораторских навыков, если у вас мало опыта в публичных выступлениях.
Подать заявку и узнать подробности можно на https://bit.ly/2SuaaOL
Вопросы присылайте на почту program@smartdataconf.ru
Вам есть о чем рассказать и что обсудить с коллегами по цеху? Тогда вам нужно подать заявку на участие в конференции! В этом году SmartData пройдет в гибридном формате: онлайн+офлайн.
Темы, которые ждут больше всего:
– Стриминг;
– СУБД и хранилища для больших данных;
– Архитектура DWH;
– Data governance;
–Технологии построения ETL;
– Оркестрация и MLOps.
Но этим списком не ограничивается — вы можете подать заявку с любой темой из области дата-инжиниринга.
Если все-таки сомневаетесь, то программный комитет всегда готов обсудить актуальность темы и помочь выбрать правильный вектор доклада. Плюс, ребята помогут с прокачкой ваших ораторских навыков, если у вас мало опыта в публичных выступлениях.
Подать заявку и узнать подробности можно на https://bit.ly/2SuaaOL
Вопросы присылайте на почту program@smartdataconf.ru
Forwarded from Generative Anton
👀 Github показала Copilot, который они сделали совместно с OpenAI. В общем эта штука работает как TabNine, генерируя автоматически код на основе контекста. Умеет и в тесты и во все на свете.
Все это уже который раз напоминает шутку:
- За что тебе платят деньги? Ты же только копируешь все со StackOverflow!
- Да, но я знаю, какой код нужно копировать.
Все это уже который раз напоминает шутку:
- За что тебе платят деньги? Ты же только копируешь все со StackOverflow!
- Да, но я знаю, какой код нужно копировать.
GitHub
GitHub Copilot
AI that builds with you