Обновить
0.48

Говнокод

Код, за который должно быть стыдно

Сначала показывать
Порог рейтинга

Привет, часто в скриптах встречаю бесполезное использование кавычек, вот такое вот:

var_b="$var_a"
var_c="$(...)"

Понятно с какой целью это делается, типа вдруг дам пробелы и оно сломается, давайте посмотрим сломается или нет:

$ echo $var_a
1 2

$ var_b=$var_a
$ echo $var_b
1 2

$ var_c=$(echo 3 4)
$ echo $var_c
3 4

Вроде не сломалось и без кавычек все прекрасно уместилось в переменные.
Кавычки нужны только для "склеивания" данных или переменных:

$ var_a="1 2"
$ echo $var_a
1 2

#а без кавычек:
$ var_a=1 2
2: команда не найдена

#и с переменными:
var_a="$var_b $var_c"

#без кавычек:
$ var_a=$var_b $var_c
3: команда не найдена

Творите, выдумывайте, пробуйте!)

Теги:
Всего голосов 2: ↑1 и ↓10
Комментарии4

В заросшей репе есть очень грязный код
Забыт в нём SOLID, и не понять подход
Сказать я пытался: «Профанов нету в гите»
Но тут же раздался противный голос в мите
Голос в мите

«Мне больно видеть чистый код, пишу сплошной огромный баг
Я очень много лет хочу чтоб невозможен был дебаг
Мне некомфортно в чистоте, и я мечтаю об одном:
Скорее SOLID разнести, раздуть свой старый жирный код
Проклятый старый код»

Жил былдокодер, тупой и жутко злой
Никто не вспомнил о нём зимой дебажной той
Коллеги не стали его клинкоду учить
Макбуки достали, решили сами чинить
Глюки и баги

«Мне больно видеть чистый код, пишу сплошной огромный баг
Я очень много лет хочу чтоб невозможен был дебаг
Мне некомфортно в чистоте, и я мечтаю об одном:
Скорее SOLID разнести, раздуть свой старый жирный код
Проклятый старый код»

И эту репу стороной обходит айти люд
И суеверные твердят: «Там ламеры живут»

Теги:
Всего голосов 6: ↑3 и ↓3+2
Комментарии1

Пятница, вечер, а я все продолжаю тыкать свой kui в ноды кубернетиса.

Node pods
Node pods

Натыкал такое, добавил две новые команды: Node pods и Top node pods. Первая позволяет посмотреть все поды ноды. А вторая сделать топ поды ноды.

И если поды ноды kubectl умеет показывать из коробки, как-то так:

kubectl get po -A --field-selector spec.nodeName=<node_name>

То с топами подов нодов пришлось немного повозиться, kubectl не может сам сделать топ поды ноды, говорит такое:

kubectl top po -A --field-selector spec.nodeName=<node_name>
Error from server (BadRequest): "spec.nodeName" is not a known field selector: only "metadata.name", "metadata.namespace"

Пришлось ему немного помочь, сначала я запомнил поды ноды в переменную np

np=$(
   kubectl get po -A --field-selector spec.nodeName=<node_name> | \
   awk '{print $2}'
)

Потом сделал топ всех подов и грепнул поды ноды

kubectl top po -A | grep -F "$np"

И еще там были сопутствующие изменения и вот это вот все.

Творите, выдумывайте, пробуйте!)

Теги:
Всего голосов 4: ↑3 и ↓1+5
Комментарии0

Привет, снова я со своим kui'ем!)

top nodes
top nodes

Позанимался немного с нодами и подумал что удобно было бы выбирать ноды из вывода kubectl top no, добавил это. Команда (top) доступна на первом шаге (выбор кластера) и через "быстрые команды".

Творите, выдумывайте, пробуйте!)

Теги:
Всего голосов 3: ↑2 и ↓1+3
Комментарии2

Привет, небольшой апдейт для kui

delete cronjob
delete cronjob

Добавил команду удаления для кронжобов.

Творите, выдумывайте, пробуйте!)

Теги:
Всего голосов 3: ↑3 и ↓0+5
Комментарии0

Глаза превращаются в...

info-bar
info-bar

Использую такую штуку в терминале info-bar о которой я писал тут, инфо бар показывает git status, если $PWD содержит папку .git. Сегодня занимался с репами, крутил вертел по разному, в какой-то момент вкладка терминала зафризилфсь. Оказалось что info-bar плохо переносит большое количество информации от git status

$ git status -sb | wc -l
9451

Пришлось ограничить вывод 50 строками, теперь так:

git_sts_depth=50
...
git -c color.ui=always status -sb | head -$git_sts_depth

Заодно смердил в мастер новую версию в которой глаза заменены на, эм, ну увидите)

Творите, выдумывайте, пробуйте!)

Теги:
Всего голосов 1: ↑1 и ↓0+3
Комментарии3

Наткнулся на такой вопрос на SO Как передать строку из функции в переменную? В баше переменные по умолчанию глобальные, просто используйте этот факт:

fun1(){
  var1=$1
}

$ fun1 test
$ echo $var1
test

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

fun2(){
    local var_name=$1; shift 1
    printf -v $var_name '%s' "$@"
}

$ fun2 v2 some data
$ echo $v2
somedata

Или используя read вместо printf:

fun3(){
    local var_name=$1; shift 1
    read $var_name <<< "$@"
}

$ fun3 v3 some data
$ echo $v3
some data

Творите, выдумывайте, пробуйте!)

Теги:
Всего голосов 1: ↑1 и ↓0+3
Комментарии0

Зачем я перевернул календарь?

Песня "3-е сентября" стала знаковым культурно-социальным явлением, на юбилей песни решил добавить в piu-piu знаменитый куплет целиком. Пришлось немного повозиться c переделкой но в итоге получилось добавить новый функционал не сломав старый. Теперь текст для рекламных самолетов можно задать как переменной так и массивом. Каждый следующий самолет будет выводить новую строку текста из массива по кругу.
Я календарь переверну...

Творите, выдумывайте, пробуйте)

Теги:
Всего голосов 1: ↑1 и ↓0+3
Комментарии0

Мониторинг в терминале?

Буквально за 15 минут собрал демку для просмотра алертов tenis'а с помощью bashui.
Я использовал "быструю" функцию для создания меню (таблиц). Подробней про эту функцию можно почитать тут. Кнопки бутафорские просто для иллюстрации)

Творите, выдумывайте, пробуйте!)

Теги:
Всего голосов 2: ↑2 и ↓0+4
Комментарии2

Программист из Индонезии разработал небольшой шуточный проект GitHub Profile Roast. Как следует из употреблённого в разговорном оттенке слова «roast» в названии, целью сервиса является творчески и с шутками оскорбить пользователя, максимально используя для этого личные детали. Делать это сервис пытается на основе аккаунта GitHub.

Посетителю предлагается ввести имя своего аккаунта на GitHub. Затем сервис подтянет данные из GitHub и страница выплюнет несколько абзацев креативных оскорблений, умело связанных с личными данными и проектами на заданном аккаунте. К примеру, сервис может ехидно высказаться о низкой популярности профиля или попсовости выбранного стека технологий.

Сервис работает на английском и французском языках, а также на нескольких неевропейских, популярных в Юго-Восточной Азии (хинди, индонезийский, корейский, японский, китайский). Русского в этом списке нет.

Работает это всё через доступ к API компании OpenAI. Какой-либо умной защиты промпта нет. Как продемонстрировали в микроблогах, провести инъекции в промпт было относительно легко.

Из других любопытных наблюдений: сервис отказывается работать с некоторыми профилями. Среди замеченных в подобном Линус Торвальдс (имя пользователя torvalds) и часть аккаунтов компаний, к примеру, Microsoft и Google. Вместо череды колкостей сайт выдаёт вежливый отказ оскорблять этого пользователя. Возможно, это некий чёрный список, который автор сервиса заложил, чтобы сохранить механическую целостность фронтальной части своей головы.

Теги:
Всего голосов 2: ↑2 и ↓0+2
Комментарии6

С Днём!)

piu-piu
piu-piu

Вперёд Сисьадмины! Мир сам себя не спасёт piu-piu!

Теги:
Всего голосов 4: ↑4 и ↓0+6
Комментарии0
2