Сообщения

Что нового в Go 1.23: Итераторы, Unique, Телеметрия, улучшения таймеров и другое

Изображение
13 августа 2024 года вышел очередной релиз новой версии Golang - Go 1.23, включающий улучшения как в языке, так и в стандартной библиотеке. Перед прочтением рекомендую подписаться на мой телеграмм канал, где вы сможете найти актуальные новости, примеры и хаки в мире разработки: @asanov_tech Итераторы: iter и slices Введены итераторы для работы с пользовательскими последовательностями данных. Появился новый пакет  iter , а также функции для работы с итераторами в пакетах  slices  и  maps . Теперь можно, например, обрабатывать ключи карты с помощью итераторов. Пример использования итераторов: package main import ( "fmt" "golang.org/x/exp/maps" "golang.org/x/exp/slices" ) func main() { // Создаём карту m := map[string]int{ "apple": 5, "banana": 2, "cherry": 7, } // Получаем все ключи карты через итератор keys := maps.Keys(m) // Сортируем ключи

Как переключиться быстро между задачами в git?

Изображение
Боль от переключений между задачами в разработке Продакт снова пришел и просит резко переключиться на другую задачу, а у меня еще текущая не сделано. Ладно, я переключился обратно, сделал и.. Он снова приходит и просит допилить немного. Я в ярости! Неужели он не знает как сложно зафиксировать то, что я уже сделал и переключаться между задачами?! Ладно, если убрать проблему переключения контекста, то есть технический способ как быстро в git переключаться между задачами, перед этим пряча изменения без коммитов и пушей в гит. Как спрятать изменения / Git stash & Git Unstash Быстро спрятать изменения поможет команда `git stash`. Просто наберите ее в терминале, без каких либо IDE. 1. git add --all 2. git stash 3. git checkout [другая ветка] 4. Делаем изменения там быстро и переключаемся обратно: 5. git checkout [предыдущая ветка] 6. git stash pop git stash - спрячет текущие изменения, правда их нужно добавить сначала через git add.  git stash pop - достанет последние спрятанные изменени

Как разложить массив на несколько строк в ClickHouse

Изображение
Иногда возникает ситуация, когда нужно разложить поле, содержащее столбец-массив на несколько строк, то есть вынести в столбец каждый отдельный элемент массива. Другими словами: как разгруппировать колонку в несколько строк. Например, разложить колонку room_number на несколько строк.  В примере ниже мы разложили колонку room_number на несколько строк для  consumer_id = 1694953573. Получаем следующий результат: Как видим из примера выше, каждый элемент массива room_numbers теперь на отдельной строке. Делается это при помощи конструкции ARRAY JOIN. Синтаксис следующий: [ LEFT ] ARRAY JOIN < array > Вместо <array> вы должны указать колонку или выражение, которое возвращает массив. Для нашего примера запрос будет таким: SELECT consumer_id, room_number, order_date FROM orders ARRAY JOIN room_numbers as room_number WHERE consumer_id = 1694953573; Profit! Приветствуются конструктивные комментарии. Спасибо. P.S. А если поле у вас не массив, а строка, т

Как преобразовать строку в массив в ClickHouse / How to transform string to array in ClickHouse

Сегодня я столкнулся с проблемой, что в документации ClickHouse нет функции преобразования строки в массив. Поискав в StackOverflow , я тоже ничего внятно не нашел. Попробую объяснить на примере: У вас есть некая колонка data типа String, которая хранит JSON: {"user_id":123456,"item_ids": [1203,1204,1205] ,"count":5} Вы хотите преобразовать поле item_ids в массив, чтобы в дальнейшем с ним производить любые функции по работе с массивами ( ссылка на документацию в конце поста ). Как преобразовать строку в массив из JSON Строка может содержать не в отдельной колонке, а, например, в поле json. Пример ниже продемонстрирует как этого добиться: С помощью функции visitParamExtractRaw достать значение поля item_ids в сыром виде: visitParamExtractRaw( data ,  'item_ids' ) С помощью функции  trim  убрать лишние квадратные скобки по краям: trim ( BOTH   '[]'   FROM   visitParamExtractRaw( data ,   'reward_ids' )) p.s. Можно также убрать и фигур

How to group from file by some condition or get count of unique data

For example you have file which contains log of some events. Input data: Dec  9 00:33:42 some log Dec  9 00:56:49 some log Dec  9 01:13:12 some log Dec  9 01:22:02 some log Dec  9 01:35:52 some log Dec  9 03:15:52 some log Dec  9 12:17:52 some log And you want group this file by hours. The code below will help group and display data: grep -oP "Dec\s+9\s(\d{2})" | sort | uniq -c  Output data: 2 Dec 9 00 3 Dec 9 01 1 Dec 9 03 1 Dec 9 12 First column - it's count of unique lines with the date. Flag -o is required to output only the requested substring (Dec\s+9\s(\d{2})) Flag -P  is required for enable  perl-style regexes Command sort  sorts the data. And uniq -c  find count of unique lines. Thank you for reading. Best regards, Ildar.

Как очистить файл [Linux/Debian/Ubuntu]

Чтобы очистить файл до нулевого размера, то есть очистить весь файл, нужно выполнить очнь простую команду: > file.txt Второй способ очистить файл: echo -n "" > file.log Также вы можете удалить содержимое файла следующей конструкцией: truncate -s 0 test.txt Надеюсь эта очень краткая статья поможет вам разобраться с вашей проблемой. Очищайте файлы, но не забывайте создавать бекапы.

Замена подстроки в файле при помощи sed, Linux

Замена подстроки в файле в Linux легко осуществляется при помощи встроенной утилиты sed. $ sed -e 's/ red / blue /g' filename.txt Из вышеприведенной конструкции: red - подстрока, которую нужно найти в файле blue -  подстрока, на которую нужно заменить filename.txt -  файл, в котором осуществляется поиск Чтобы сохранить изменения, нужно направить вывод в файл $  sed  -e 's/ red / blue /g'  filename.txt > filename_new.txt