Почему линукс рулит

| 4 коммент.

Избитая тема, да. Я не буду писать философских сочинений, это точно не мой жанр. Покажу реальный пример.

Обычный домашний компьютер. Обычная пришедшая в голову пользователя блажь: «хочу, чтобы на рабочем столе обоина менялась каждые 5 минут».

Что делает пользователь Windows? Пользователь Windows открывает яндекс и пишет: «меняющиеся обои для рабочего стола». Потом чешет репу и дописывает: «бесплатно». Ага. И находит какую-нибудь программу, и даже не одну. И пользуется, довольный.

Что делает пользователь Linux? Ну конечно пользователь Linux может поступить аналогичным образом и найти какое-нибудь приложение-для-смены-обоев или приложение-для-чесания-левой-пятки, или даже приложение-для-ковыряния-в-носу. Но пока вы там будете гуглить, умеет ли программа для смены обоев ковырять в носу нужным образом, я открываю текстовый редактор и пишу:

#!/bin/bash

WP_DIR=~/wallpapers/
WP_REGEX='\.(png|jpe?g)$'
INTERVAL=5m

while true ; do

 find "${WP_DIR}" -type f | egrep -e "${WP_REGEX}" | sort -R | while read FILENAME ; do
  if [ `file -ib "$FILENAME" | egrep '^image/' -c` = 1 ] ; then
   feh --bg-fill "$FILENAME"
   break
  fi
 done

 sleep $INTERVAL
done

Уверен, писал я это не дольше, чем вы искали и устанавливали программу. И здесь написано ровно то, что мне нужно:
  • из какого каталога брать картинки;
  • и с какими расширениями;
  • менять их случайным образом;
  • каждые 5 минут.

И это работает.

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

Поехали дальше. Через пару дней пользователю надоедает смотреть на одни и те же 10 обоин, что валялись в ~/wallpapers/, и он собирался было скачать новых, но тут подумал: «какого черта? пусть компьютер сам качает обои, мне лень». Вот лично мне нравится сайт wallbase.cc, там много хороших обоин. Пусть машина сама скачивает обои из топ-листа.

Что делает пользователь Windows? Пользователь Windows открывает яндекс и... ну вы в курсе. Но пользователю нужна не просто программа для скачивания обоин, а программа для скачивания обоин с конкретного сайта. Каковы шансы её найти? На самом деле, не слишком велики, по запросу «wallbase.cc downloader» сплошь скрипты под линукс. Это уже не просто «ковырять в носу», это «ковырять в носу в гамаке на лыжах, играя на баяне». Так что пользователю Windows придётся сосать лапу. Кстати, почему их там так много, этих скриптов?

Потому пользователи Linux привыкли напрямую объяснять машине, что им от неё нужно. И каждый из этих скриптов — такое объяснение. Вот мой вариант:

WP_DIR=~/wallpapers/wallbase.cc/
INTERVAL=20m

echo > "$WP_DIR/cookies.txt"

WGETARGS='--user-agent="Mozilla/5.0 (Windows NT 6.1; rv:12.0) Gecko/20120403211507 Firefox/12.0" --keep-session-cookies --load-cookies="'"$WP_DIR/cookies.txt"'"'

ids="`(
 wget $WGETARGS "http://wallbase.cc/toplist/0/12/eqeq/0x0/0/100/60/2w" -q -O -
 wget $WGETARGS "http://wallbase.cc/toplist/60/12/eqeq/0x0/0/100/60/2w" -q -O -
 wget $WGETARGS "http://wallbase.cc/toplist/120/12/eqeq/0x0/0/100/60/2w" -q -O -
 wget $WGETARGS "http://wallbase.cc/toplist/180/12/eqeq/0x0/0/100/60/2w" -q -O -
) | grep -o 'wallbase\.cc/wallpaper/[0-9]*' | cut -d/ -f 3`"

while true ; do
 echo "$ids" | sort -R | while read id ; do
  if ls "$WP_DIR" | grep "[^0-9]$id[^0-9]" -q ; then
   continue
  fi

  url="`
   wget $WGETARGS -q -O - \
    --referer=http://wallbase.cc/toplist/0/12/eqeq/0x0/0/100/60/2w \
    "http://wallbase.cc/wallpaper/$id" | \
   egrep -o "http:.*(gif|png|jpg)" | egrep "wallbase2|imageshack.us|ovh.net"
  `"

  (
   cd "$WP_DIR" && \
   (echo "$url" | wget \
    $WGETARGS \
    --referer="http://wallbase.cc/wallpaper/$id" -q -i - )
  )

  break
 done

 sleep $INTERVAL
done

Эта простыня иероглифов означает: "скачать первые четыре страницы (по 60 картинок на каждой) из двухнедельного топ-листа и затем скачивать по одной случайной картинке из этого списка каждые 20 минут." Писалась она, конечно, подольше, чем предыдущая, но оно того стоит.

Linux — это система, в которой ты можешь объяснить машине, что тебе от неё надо, и она подчинится. А Windows — это просто платформа для стижки хомячков, в которой с каждого хомячка норовит срезать по 10 баксов очередной шароварщик за очередную поделку для ковыряния в носу.

У пользователя линукс всегда есть уверенность: «и эту тоже задачу возможно решить».

И еще. Подход «я говорю, а ты делаешь» не просто практичен и богат возможностями. Есть кое-что сверх этого. Согласитесь: это на самом деле чертовски кайфово, когда тупая железяка исполняет волю Хозяина. Это круто.

Вот поэтому линукс рулит. Не смотря ни на что.

Энтузиазм вместо мозгов

| 0 коммент.

Опенсорс, сцуко, такой опенсорс. Приходится работать с тем, что само приползло.

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

Но, твою мать через полено, есть же какой-то предел упоротости! Я всё могу понять, но коммитить код, который даже не компилируется, снабдив его сообщением "Исправлена компиляция с Gtk3" — это уже за гранью... даже не знаю, за гранью чего... за гранью, блядь, всего! При этом попутно сломав и нормальную работу на Gtk2.

Сейчас ковыряю этот код, ну хер бы с ним! Однако же чувак успел отметиться во всех частях проекта. И сейчас вот как раз обратил своё внимание на «доработку» пары критически важных компонент. Не хочу даже думать, что он там наработает.

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

А потом все эти говна гордо уйдут в релиз. Так и живём.

«Работало вполне сносно»

| 0 коммент.

Из обсуждения на ЛОРе:

Разговор мейнтейнеров Archlinux в рассылке:

M1: 'll be away for a couple of days, normally everything should get updated automatically while i'm out.

M2: How are you updating things automatically?

M1: cronjobs on a server :)

D1: So you're blindly signing and pushing packages based on the fact that they compile?

M1: yes why not?

Это само по себе прекрасно в качестве иллюстрации дятла, способного уничтожить цивилизацию, но мне понравилось не это, а один из комментариев:

snoopcat когда-то делал скрипт для автосборки пакетов из аура и генерации из них репы. Работало вполне сносно по крону, но потом у меня закончился лишний процессор на сервере и проект благополучно помер.

Автор фразы и сам не понял, насколько глубокомысленную вещь он изрек. «Работало вполне сносно» со всей определенностью тянет на официальный девиз линукса, если бы таковой был. Unix way, да.

Долбогрызики

| 0 коммент.

Долгие месяцы не заходил в панель управления blogspot-а. И вот зашел, и первое, что я вижу — это очередной феерический проёб в интерфейс:



«Постоянных читателе...», ага. Может если как-то хитро потянуть за эту строку или если изменить размер окна, то можно увидеть текст целиком? Хренушки. Нет.

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

Но и это не самое смачное! Самое смачное, что если эту надпись потянуть мышкой до упора, а потом скопировать и вставить куда-нибудь, то вставляется она без обрезки: «Постоянных читателей: 80»

Традиционно: «я не знаю, как надо писать, чтобы напрограммировать подобное!». Хотя ведь вру. Знаю. И уже давно ничему не удивляюсь.

Очередная иллюстрация к тому, что слова «гугл» и «дизайн» могут сочетаться в пределах одного предложения только в ироническом контексте.

Samsung NP300E5Z-A06

| 0 коммент.

Какой интересный ноутбук попался на глаза случайно. Собственно, больше всего мне в нём нравится жёсткий диск на 750Гб и возможность установки 8 гигабайт ОЗУ (в комплектации — 2) в сочетании с такой приятно низкой ценой. Правда на сайте самого Самсунга указаны всего лишь 500Гб, возможно, в новых поставках уменьшили объём диска.

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

Update:

Купил. Хороший, практичный бук.