LINUX.ORG.RU

Ответ на: комментарий от chenbr0

английский международный ит язык, гитхаб международный хостинг

Линукс международная ОС. Но обсуждаешь её ты не на международном языке почему-то.

monk ★★★★★ ()
Ответ на: комментарий от monk

Русский имеет статус международного, между прочим.
У меня в конторе, например, есть не то, чтобы распоряжение, просто правило для пограмистов писать комментарии и сообщения к комитам на русском.

system-root ★★★★ ()
Ответ на: комментарий от anonymous

Наверное потому что мы тут на русскоговорящем ресурсе торчим

Так он же выбрал русскоговорящий ресурс, а не linux.org, например.

Гитхаб — интернациональный ресурс.

Там нет требования к языку, на котором написаны проекты и/или документация к ним. Или укажите соответствующее место в его условиях использования. А то можно договориться, что Интернет — интернациональный ресурс и все сообщения в нём должны быть на английском.

monk ★★★★★ ()
Ответ на: комментарий от system-root

У меня в конторе, например, есть не то, чтобы распоряжение, просто правило для пограмистов писать комментарии и сообщения к комитам на русском.

И это правильно. Количество хороших программистов больше, чем количество хороших программистов, идеально знающих английский.

monk ★★★★★ ()

Интересно мнение о том, что я сделал не так и как бы можно было отрефакторить код.

Пока только чисто стилистически:

local не обязательно делать по одной переменной на строку,

local query sort timesort
это не только улучшает обозримость, но и повышает скорость (я реально это тестировал).

query="$OPTARG" — с этим у меня уже руки опускаются бороться. Не нужны тут кавычки! Кавычки нужны для ~ ; и пробелов, даже для звездочек и [] при присваивании не нужны. В if [[ "$url" == "null" ]] тоже не нужны. Это так специально пишут, ибо нужно было б писать с кавычками для if [[ null == "$url" ]]

И зачем там куча пустых строк для единственного присваивания? Вполне стилистически правильно писать:

ъ) var=$OPTARG;;

[$(( $RANDOM % ${#urls[@]} + 1 ))] Тут $(()) не надо, это при вычислении индекса по умолчанию. Кстати, там точно надо +1?

Не стоит писать такие длинные строки, то что начинается с $( можно разбить до ) на сколько удобно строк. В конце концов у вас можно один раз сделать query+=всё_что_после_вопросика.

vodz ★★★★★ ()
Ответ на: комментарий от monk

Количество хороших программистов больше, чем количество хороших программистов, хоть как-нибудь знающих русский.

Починил. Русский язык даже в пределах СНГ знает не 100% человек, а об аутсорсе с такими правилами можно просто забыть

Ford_Focus ★★★★★ ()
Ответ на: комментарий от monk

мне всегда казалось, что открытый код стремится быть максимально доступным максимальному количеству людей. В этом плане комментарии на русском языке хуже комментариев даже на китайском

Ford_Focus ★★★★★ ()

Add this function to ur ~/.zshrc

Зачем это функцией в шелле, а не отдельным исполняемым файлом с #!/usr/bin/env zsh?

Аргументы против функции:

  • У пользователя может быть другой шелл, в котором код работает немного по-другому.
  • У пользователя могут быть включены какие-нибудь setopt, из-за которых, опять таки, код будет работать по-другому.
  • Твой скрипт может модифицировать глобальные переменные. Например, $opt, $OPTARG, $OPTIND.
NeXTSTEP ★★ ()
  • По ссылке не видно номеров строк. Неудобно. Это из-за того что там скрипт заинлайненный в markdown.

  • Копипаста в строках 45..60. Можно заменить на такое: curl "…/search?${query:+q=$query&}sort=${sort}&…"

  • Проверка if [[ "$url" == "null" ]]. Зачем, если это на этапе jq можно отфильтровать.

  • $(basename $url | cut -d'?' -f1)

    Это можно сделать средствами zsh: ${${url:t}%\?*}.

NeXTSTEP ★★ ()
Ответ на: комментарий от Ford_Focus

Русский язык даже в пределах СНГ знает не 100% человек

Если речь про российскую организацию, то нанимать сотрудников в офис она будет на территории России. А на территории России знающих русский язык в несколько раз больше знающих английский.

monk ★★★★★ ()
Ответ на: комментарий от Ford_Focus

что открытый код стремится быть максимально доступным максимальному количеству людей

Код сам по себе вряд ли к чему-то стремится. А автор кода может ставить очень разные цели. От самообучения до «сделать код максимально доступным среди некоего подмножества людей», например, посетителей linux.org.ru (а они определённо знаю русский лучше, чем английский, иначе выбрали бы для общения англоязычный ресурс).

Кроме того, русские комментарии любой программист мира может перевести на свой язык с помощью google translate и словаря. А если автор знает английский не идеально, то легко может сделать английские комментарии, которые сможет понять только русскоязычный.

monk ★★★★★ ()
Ответ на: комментарий от Ford_Focus

быть максимально доступным максимальному количеству людей

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

monk ★★★★★ ()
Ответ на: комментарий от Hertz

А знающий английскую мову захочет всяко больше денежек.

Естественно, ему проще устроиться удалённо в США и получать американскую зарплату имея российские расходы.

monk ★★★★★ ()
Ответ на: комментарий от monk

Вы призываете всю литературу тоже писать исключительно на английском языке?

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

Ford_Focus ★★★★★ ()
Ответ на: комментарий от Ford_Focus

мне всегда казалось, что открытый код стремится быть максимально доступным максимальному количеству людей. В этом плане комментарии на русском языке хуже комментариев даже на китайском

А писать комментарии сразу в трёх переводах, английском, русском и китайском, даже лучше, чем только на английском.

Мы живём в третьем тысячелетии. Если кому-то приспичит понять твои комментарии, он их осилит хоть с гуглопереводчиком, не переживай.

anonymous ()
Ответ на: комментарий от Ford_Focus

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

monk ★★★★★ ()
Ответ на: комментарий от anonymous

А писать комментарии сразу в трёх переводах, английском, русском и китайском, даже лучше, чем только на английском.

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

monk ★★★★★ ()
Ответ на: комментарий от arto

print -u2 «…»

Уверен?

[code] $ print –help Use: /usr/bin/print <–action=VAL> [–debug] [MIME-TYPE:[ENCODING:]]FILE […]

Options: action specify what action to do on these files (default=view) debug be verbose about what’s going on nopager ignore any «copiousoutput» directives and never use a «pager» norun just print but don’t execute the command (useful with –debug)

Mime-Type: any standard mime type designation in the form / – if not specified, it will be determined from the filename extension

Encoding: how the file (and type) has been encoded (only «gzip», «bzip», «bzip2» and «compress» are supported) – if not specified, it will be determined from the filename extension

[/code]

monk ★★★★★ ()
Ответ на: комментарий от monk

американских и европейских организаций, работающих с удалёнкой, сильно меньше, чем желающих туда попасть. Не ты один такой продуманный.

а, например, индусов вполне могут устроить и заказчики из РФ. По-русски, правда, они не говорят

Ford_Focus ★★★★★ ()
Последнее исправление: Ford_Focus (всего исправлений: 1)
Ответ на: комментарий от Ford_Focus

а, например, индусов вполне могут устроить и заказчики из РФ. По-русски, правда, они не говорят

Хочешь сказать, что они при равной квалификации за работу хотят меньше, чем русские?

monk ★★★★★ ()
Ответ на: комментарий от NeXTSTEP

Это можно сделать средствами zsh: ${${url:t}%?*}

Кстати, сама идея у ТС-а в принципе не правильна, если будет ‘/’ после ‘?’, надо менять местами basename и обрезание ?*. Ну и несовместимость с bash вроде делать не надо, подумаешь будет две операции…

vodz ★★★★★ ()
Ответ на: комментарий от monk

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

~$1000~$2000 - далеко не топовая зарплата в центральных городах РФ, но вполне солидная сумма в SEA

плюс удалёнщиков принято нанимать не на постоянку, а на время выполнения конкретного проекта

Ford_Focus ★★★★★ ()
Последнее исправление: Ford_Focus (всего исправлений: 3)
Ответ на: комментарий от Ford_Focus

в центральных городах РФ, но вполне солидная сумма в SEA

Разработчик в нецентральном городе РФ обойдётся ещё дешевле. В Тюмени, например, от 40 тысяч. А за 50 тысяч с опытом работы в 10 лет. И с точки зрения закона/бухгалтерии/налогов гораздо проще оформлять.

monk ★★★★★ ()
Ответ на: комментарий от Ford_Focus

плюс удалёнщиков принято нанимать не на постоянку, а на время выполнения конкретного проекта

Ну вот. То есть основной костяк всё равно придётся нанимать в РФ и либо требовать два навыка (программирование и английский) и платить больше или требовать один навык и платить меньше.

monk ★★★★★ ()
Ответ на: комментарий от arto

Что вас так тянет заюзать обязательно zsh-only?

Вот переписал ТС-а, универсально: zsh или bash. И красивее и кода меньше:

reddit-wallpaper() {
  local target=$HOME/Pictures/Wallpapers/reddit
  local url="https://gateway.reddit.com/desktopapi/v1/subreddits/wallpapers"
  local useragent=Mozilla/5.0
  local -i i pages=5 zsh=${ZSH_VERSION:+1}
  local query sort timesort
  local -a urls
  local content j jq after

  while getopts ":hq:s:t:p:u:" opt; do
    case ${opt} in
      h) echo "\
usage: $0 [-h] [-q <query>] [-s <sort={hot|new|controversial|top|rising}>] [-t <timesort={day|week|month|year|all}>] [-p <number of pages>] [-u <useragent>]"
	 return 2;;
      q) query=$OPTARG;;
      s) sort=$OPTARG;;
      t) timesort=$OPTARG;;
      p) pages=$OPTARG;;
      u) useragent=$OPTARG;;
     \?) echo "Invalid option: $OPTARG" 1>&2 ;;
      :) echo "Invalid option: $OPTARG requires an argument" 1>&2 ;;
    esac
  done

  if [[ -n $query ]]; then              # -n need for zsh
	url+="/search?q=${query}&"
	jq=.tokens.posts
  else
	url+=?
	jq=.token
  fi
  url+="sort=${sort}&t=${timesort}"
  # isSponsored это реклама, замаскированная под посты
  jq+=", (.posts[] | select(.preview != null and .isSponsored == false).preview.url)"

  # Парсим первые n страниц, собирая ссылки на картинки
  for (( i = 0; i < pages; i++ )); do
    content=$(curl -A "$useragent" -s "${url}&after=${after}")
    { read after; while read j; do urls+=("$j"); done; } < <(jq -r "$jq" <<< "$content")
  done

  # Выбираем случайную ссылку (в zsh индексы начинаются с единицы)
  url=${urls[$RANDOM % ${#urls[@]} + zsh]}
  if [[ $url != null ]]; then
    local filename=${url%%\?*}
    filename=$target/${filename##*/}
    [[ ! -f "$filename" ]] && curl -A "$useragent" --create-dirs -o "$filename" "$url"
    gsettings set org.gnome.desktop.background picture-uri "file://$filename"
  fi
}

vodz ★★★★★ ()
Ответ на: комментарий от arto

чтобы если я куда пришёл, там уже стоял zsh.

Да ну, инфантилизм какой-то. Ну стоит много где, а скрипты тоже волшебным образом перепишутся с bash? С таким отношением вы только оттолкнёте авторов, которые может и снизошли к совместимости, но с only – просто пошлют.

vodz ★★★★★ ()
Последнее исправление: vodz (всего исправлений: 1)