bash.im ithappens.me zadolba.li

Linux

11752

Плати или пляши

Я расскажу, в чём разница между платным и бесплатным ПО.

Начнём с установки. Типичный путь винды: Next — Next — Next — ОК. И сразу работает почти всё, если что-то не работает — есть диск с драйверами. Изредка встречается экзотика типа Очень Старого Оборудования, для работы которого нужно решать проблемы.

Теперь берём практически любой современный дистрибутив линукса (Убунту, Сусь, Дебиан). Начинается всё неплохо, по типу того же Next — Next — Next — ОК, но…

В половине случаев вайфай то работает, то не работает. Кривой, как жопа казуара, D-Bus + кривой Wicd — это уникальная по глючности связка.

Регулярно возникают проблемы типа «на перезагрузку нет прав», потому что дефолтная настройка Polkit в дистрибутиве делалась какой-то человекообразной обезьяной.

Оконный менеджер тормозит так, что это визуально заметно. Потому что какой-то молодец напихал в дефолтную сборку всякого Компиза, а драйвера так и оставил типа Nouveau — а шо, сам Компиз рекомендует!

Оформление страшно, как сон студента под кислотой. Винда потому и серенькая, что изначально предназначена для работы. Интерфейс должен быть максимально удобным и незаметным, как «классика» в Xfce, например, но где вы видели Xfce в дефолтных сборках (да, я знаю про Xubuntu, но кто ещё о ней знает)? Только «кеды», Компиз, а то и Юнити — только хардкор.

Регулярно вылезают проблемы с UTF-8. Даже в официальных сборках. Сколько, блин, можно?! И нечего на винду кивать, там уже лет тринадцать как везде отлично работающая UTF-16.

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

Что ещё добавить? Проблемы с монтированием SD-карт? Регулярные проблемы с флешками? Отсутствие дефолтной самбы, которая давно умеет, между прочим, и в виндовые сети?

Разумеется, всё вышеописанное можно починить. Сесть, разобраться, настроить, поругать криворуких дебилов, выпустивших дистрибутив в таком виде, что-то снести, что-то добавить, найти приличное оформление. Только займёт это даже у знающего человека больше вечера. А у новичка — до месяца. В этом, собственно, и есть разница между платным ПО, где всё изначально делается для удобства пользователя, а если есть проблема — то на то и техподдержка, и бесплатным, где всё изначально делается для фана автора, по мнению которого, пользователи должны постичь его хитроумные замыслы и восхищаться, а если есть проблемы — так вперёд, в Гугл.

11744

Видит око, а vi неймёт

Дано: виртуальная машина с вариацией на тему старого RHEL (уйти на новый нельзя от слова «совсем») в VMware Workstation. Требуется запустить эту виртуалку под KVM в CentOS 6.5.

Привыкнув к тому, что с ВМ на OpenBSD проблем нет, просто импортирую через virt- из VMDK, запускаю… и получаю kernel panic по случаю невозможности найти init. Это у нас сюрприз номер раз — так, для разминки.

«Ага! — сказали суровые сибирские лесорубы. — А контроллер-то какой? Небось, IDE?» И правда, IDE. Ну, тут просто: RHEL старый, virtio не работает — вот он и впилил отлаженное. Ладно, SCSI ж в нашей виртуализованной ОС поддерживается — сейчас лёгким движением превратим диск в сидящий на SCSI-контроллере… И это уже сюрприз номер два: KVM в RHEL 6 не поддерживает ничего, кроме virtio и IDE.

Что ж, поменяем заранее записи в /etc/fstab (знающие линуксоиды тут улыбнутся, поэтому они могут перейти сразу к следующему абзацу), зальём и сконвертируем машину снова… и поймаем тот же самый kernel panic.

Начинаю ковыряния. Заливаю на всякий случай ВМ заново. Всё повторяется. И тут до меня доходит, что в линуксе не всё так просто: загрузчик (LILO в данном случае) передаёт ядру при запуске некие волшебные параметры, в которых при ближайшем рассмотрении (для которого понадобился звонок другу) и находятся волшебные ссылочки на /dev/sda3 и /dev/sda. Tab, имя ядра, root=/dev/hda3 boot=/dev/hda, Enter. Грузимся, грузимся… Есть! Ура!.. Упс. ВМ-то залита заново, /etc/fstab не подправлен, поэтому монтирование обламывается.

Ну, тут-то уже проблем не предвидится. Достаточно ручками подмонтировать / в rw (а, уже готово) и запустить vi /etc/fstab… А вот фигушки: «File is read-only». Чего-чего?! Вывод команды mount гласит, что / примонтирована. В режиме чтения-записи. С раздела /dev/sda3.

Ещё раз: корневая ФС смонтирована в режиме чтения-записи на разделе диска, которого нет. Отмонтировать нельзя. Записать нельзя. Можно только смотреть на установленную, но недоступную систему.

Я отказываюсь понимать эту логику. Ей-богу, куда проще понять обычного юзера, у которого «всё сломалось и ничего не работает». ВМ пришлось просить сделать заново, изначально сделав диск подключённым по IDE — это оказалось быстрее, чем продираться через ошибки на пустом месте.

Выговорился. Ушёл обратно в «Опёнок». Всем терпения и хороших знаний.

11743

Нам не сдались твои копейки

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

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

Если бы не было копирайта вообще, все эти вещи всё равно бы появились на свет, потому что делались ради удобства. Просто копирайт позволяет потом бороться с конкурентами, давить их, не давать производить подобные же вещи, и в этом смысле только тормозит развитие (хотя, с другой стороны, заставляет искать новые варианты).

И уж тем более глупы попытки сравнивать интерфейсы операционных систем: те, кто видел в своё время варианты графических интерфейсов того же линукса типа Enlightenment и мог их сравнивать с унылым стандартным интерфейсом Win95-2000-ХР, никогда с вами не согласятся. Другой вопрос, что типичному пользователю линуксов было удобнее настраивать сервера через комстроку, а типичному пользователю виндов удобнее открывать документы через папки с иконками. Ну, так это вопрос задач и средств их выполнения. Копирасты-то тут при чём? Тогда уж вспоминайте всю из себя коммерческую Cisco и сравнивайте её интерфейс с веб-интерфейсом D-Link — всё будет строго наоборот.

11714

Семь лет до андроидной эры

Подруга попросила настроить планшет — купила племяшке на ДР. Обычная машинка о семи дюймах. Задача — поставить детские обучающие программы и игрушки.

Достаю, включаю. Всё нормально, «андрюха» грузится, первичная настройка. Дохожу до этапа выбора вайфай-сетки, вбиваю параметры, пароль, цепляю машинку. Параллельно на большом компе лезу на сайт корпорации добра, чтобы сделать учётку. Учётка создана, пытаюсь привязать… А вот фиг! Не удаётся подключиться к гуглосервисам.

Лень и желание поскорее восхрапеть заставляют отложить решение проблемы на завтра: всё равно планшет у меня до конца недели. «Назавтра» приходит быстро, но проблема остаётся.

Прикол в том, что гуглобраузер в интернет ходит, страницы открывает, при этом голосовой поиск не работает, привязаться к учётке гуглопочты тоже не выходит, тытруба не грузится. Настройки продублированы с собственного смарта — на нём всё работает, на планшете — нет. WTF?! Начинаю курить мануалы и собственную сеть. НИ-ЧЕ-ГО!

Подсказку номер раз даёт вывалившаяся на сайте Гугла табличка о том, что сертификат, мол, ещё не выдан. Чего-чего? Лезу в настройки, параметры даты и времени. Вашу ж маму! На планшете 2013 года издания установлен 2000 год! После коррекции всё завелось с полпинка. Такие вот пирожки с котятками…

11713

Дело было вечером, делать было нечего

Сел за ноутбук, включил последнюю Ubuntu и вновь обнаружил ошибку одного из сетевых пакетов. Решил поступить по-простому: удалить его и заново поставить. Удаляю пакет. Вместе с ним всё, относящееся к беспроводной сети. Порта Ethernet в ноутбуке нет. Почему-то не загрузился пакет на установку…

Дело было вечером, делать было нечего.

11709

The best you can is good enough

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

«Хрюша» ползала на коленках, решил собрать Генту. Сказано — сделано! Запилил быстрый Опенбокс с лёгким браузером. Но ведь юзеру нужны панельки! Ставим панельки… Не, говорит мне Portage, памяти для компиляния GTK не хватает! Ну, братюня, держи своп на флешке. Не, говорит мне он же, не хочу… А из альтернатив только Плазма (ну, вы поняли).

И так я, и сяк — ни в какую злосчастный GTK компиляться не хочет. Из бинарников тоже не собирается. Вздохнул я — да и поставил Бубунту-альтернейт для слабых машин. Не скажу, что летает, как должна была Гента, но для такого слоупока вполне вменяемо. Хозяина вполне удовлетворило (разве что пришлось показать, где что).

Лучшее — враг хорошего. В нашей стезе незаменимая мантра.

11701

Скриндамп

Ночь. Почти убитый линукс на нетбуке. Очень острая необходимость сделать скриншот. Из интернета только EDGE. Иксов нет, чего-либо ещё — тоже. Есть только BusyBox.

Делаем dd if=/dev/fb0 of=/home/fb0_screenshot.img. Для проcмотра всё наоборот через dd.

И ведь спасло ситуацию!

11632

Все точки под ковёр

А вот вам очередной технобаян о том, как Этот® Народ™ Не Победить. Даже ту его часть, что давно уже сдала свой старенький использованный трактор на донейшенс для такс-ката, потому что моргидж и старшего надо в каледж.

Как-то так исторически сложилось, что девелопмент (Шишков, прости…) в нашей шараге как-то чуть более чем полностью состоит из русских и индусов. Да так, что и китайцев-то на нашем фоне мелко видно, а бедные америкосы и вовсе в меньшинстве. И насмотрелся я кода не только знаменитого индусского (наши рабиндранат-тагоры пишут довольно грамотно, но всё равно стиль узнаваемый), но и Могучего Русского Кода. Осмысленность варьируется, но беспощадность местами зашкаливает.

Пишем C/C++ код, который одновременно должен работать и на юниксах, и на виндюках. Потому есть специальные люди, что пишут обёртки для платформозависимых API, чтобы у народа код не состоял из сплошных #ifdef __WIN32. Вот, допустим, bool acmeMkDir(char* dir), который понятно чего делает: пытается создать фолдер, используя родные для платформы API. И возвращает понятно что.

И вот картина салом. Приходит мне баг. Который — долго объяснять как, но упирается в этот самый acmeMkDir(), которому на вход подают «foo.» или «bar ». Юниксу-то что, ему горшком назови, только эскейпы расставь. А на виндузе он, собака такая, создает «foo» или «bar». И, радостно виляя хвостиком, возвращает true. Зацени, хозяин, какой я умный: «foo.» или «bar » произносить я не умею, но так даже лучше! Правда вот, все последующие попытки читать-писать некий foo./bar.txt заканчиваются неоднозначно.

Ну что — ставлю у себя заплатку (ибо починить надо вчера), отдаю баг Серёге, хозяину acmeMkDir(): мол, почини (возвращай false, ибо имя воистину кривое) и свистни — я заплатку-то и уберу. A он поясняет, что это, зараза, виндузовые API так выёживаются, но починка будет.

Короче, можете сами, если виндуза под рукою, попробовать создать «foo.» или «bar » Эксплорером или mkdir — сами увидите, как какая-то тефаль думает за вас и заботливо убирает хвостовые пробелы и точки. Как же, в MS-DOS есть имя, а есть расширение, и «file» — это на самом деле «file.», только точка мозолит глаза, мы её заметем под ковёр. Пофиг, что лет уж двадцать как MS-DOS мёртв, а я ещё нет^H^H^Hвоз и ныне там.

Вчера, довольный, как слон, молвит Серега: починил! Наплясался с бубном, но заставил-таки эту хню создавать папки «foo.» или «bar ». И наши завёртки типа acmeFileOpen() с ними живут ОК. Правда вот, в Эксплорере в эти папки хрен зайдёшь. Ну, и винзипы-винрары всякие непонятно как это возьмут. Так что сам решай, оставлять ли тебе твою заплатку. Но лучше оставь.

Левша, блин, хренов. Подковал блоху, спору нет.

11619

А вот GUI вам

Я работаю в банке. По долгу службы приходится связываться с Linux-, Windows-серверами и различными безумными программами под эти ОС.

Появилась задача подготовить к внедрению очередной программный комплекс. Ну, что поделаешь, надо так надо. Имеем разжёванную инструкцию, сервер и Linux на нём — без всего лишнего и, спаси и сохрани, без «иксов».

При наличии детальной инструкции задача представлялась лёгкой. В понедельник начал исполнять. Первый компонент встал без проблем. Второй — аналогично первому. И так до определённого момента.

Изначально разработчики писали софт под Windows, с определённого момента занялись разработкой и под пингвина. Всё хорошо, конечно: GUI, Java. Но не предусмотрели эти ребята работу со своим детищем в текстовом режиме. Итак, что мы имеем: сервер без компилятора, без «иксов», без всего, только с RPM можно устанавливаться. Где диск, никто не помнит.

Второй день подряд секса с этим сервером принёс плоды: компилятор установлен (мало ли, в будущем понадобится), «иксы» подняты, startx работает и грузит десктоп. А всё ради чего? Ради того, чтобы настроить одну маленькую программулинку, можно сказать, три раза мышкой кликнуть. Вот что, нельзя было по-человечески прогу написать?