LINUX.ORG.RU

Сообщения Dendy

 

Firefox и горячие клавиши

Работаю, значит, на своём новеньком ThinkPad'е и за недолгое время успел несколько раз в Фаерфоксе потерять текст случайным нажатием на кнопки предыдущий/следующий документ (те, что над курсором). Да, я знаю, что так сделаны некоторые сайты, но меня это мало утешает. Комбинации ALT+влево/ALT+вправо меня устраивают для навигации вперёд/назад с головой. Отсюда вопрос - как можно отключить поведение этих кнопок конкретно в Фаерфоксе? Или они глобально в X11 эмулируют ALT+влево/ALT+вправо?

Dendy
()

Личные сообщения

Как-то тихо и незаметно спустили на тормоза замечательную идею, которую предложил камрад guilder, а именно - сделать на форуме личные сообщения. Собственно, сама тема здесь: http://www.linux.org.ru/forum/talks/5469988, если из от модераторского сообщества поступил вердикт, прошу ткнуть ссылкой.

Вкратце идея выглядит следующим образом:

1. Как бы это страшно ни звучало - создать отдельный раздел «Личные сообщения», в которой каждый желающий создаст себе ровно одну тему, в теле которой будет его открытый GPG-ключ.

2. Желающий написать личное сообщение отвечает на корневую тему в зашифорванном виде.

3. Получатель видит в уведомлениях (1), открывает и расшифровывает сообщение.

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

В недостатки схемы можно отнести видимость активности дискуссии между конкретными пользователями. Однако можно всегда кинуть ссылку на джаббер, переведя разговор за пределы ЛОРа.

Ну а преимущества - это конечно же уникальный олдскульный подход, когда для простого чтения корреспонденции нужно пару минут покрасноглазить. Кроме того, часто пользователи прячут свои контактные данные, а создание личной переписки в Talks рискует навлечь гнев бдящих хранителей ЛОРа, но даже без этого подобную тему элементарно можно проглядеть или она попросту уйдёт за горизонт. А связаться ведь кровь из носу нужно.

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

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

Dendy
()

KDE3 + KDE4 в одном флаконе

До сих пор активно пользуюсь KDE3 в качестве основного DE, но от прогресса не убежать, большинство программ, основанных на KDE4 сильно превосходят ближайших конкурентов. Поскольку с определённого релиза программы на KDE4 перестали сворачиваться в трей KDE3, придумал себе вот такое решение:

http://img594.imageshack.us/img594/8692/snapshot1o.png

Более того - таким способом можно задействовать любой полезный плазмоид.

На галлерею конечно не тянет, но обсудить можно. А как вы решаете эту проблему для себя?

Dendy
()

openSUSE + KDE4 = Epic Fail

Решил поставить себе на свежий ноутбук свою любимую openSUSE. Хоть я и прекрасно осознаю, что этот дистрибутив для опытных пользователей, возомнив себя таковым, приступил к самому процессу. В надежде, что на сей раз проблемы меня минут. Увы и ах. После развёртывания образа на жёсткий диск, первое, что я сделал - запустил обновляться. Поскольку процесс сей не быстрый, пока YaST шуршал интернетами и винтом, я рассматривал Dolphin'ом содержимое другого компьютера по самбе. Вдруг система закричала нечеловеческим голосом, что место на диске всё. После чего даже в виртуальном терминале попытка логина выдавала ошибку. Единственный путь - ресет, после которого система выдала, мол примонтировать раздел никак, ибо файловой системы ext4 она не знает.

Дальнейшее расследование с LiveUSB подтвердило, что таки место на / всё. Виновник был моментально обнаружен по толстым следам в /tmp/kde-dendy, им оказался Dolphin, заняв своими временными файлами всё пустое место - около 5 Гб. Было бы больше - съел бы и его.

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

Итого, Dolphin получает 2 балла за 5 Гб временных файлов в течении 10 минут. openSUSE получает кол за выключенный по-умолчанию режим «сначала всё качаем, потом всё ставим».

Dendy
()

#pragma once

Я являюсь адептом #pragma once, использую эту директиву во всех своих проектах и поощряю других к тому же. Тем не менее время от времени приходится натыкаться на код с использованием header guards, причём код относительно свежий, без налёта 20-го века. Сей факт меня, как представителя homo sapience (с акцентом на sapience) не перестаёт удивлять.

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

1. header guards - это хак и как любому хаку в коде ему не место. Более того, это хак в квадрате из-за использования макросов, что сами по себе есть зло. Логика подсказывает, что если же хак превращается в правило - проблему нужно решать на глобальном уровне, причём стандарт должен минимизировать побочные эффекты к нулю. Именно отсюда и родился #pragma once - тот самый стандарт, призванный решить существовавшие проблемы с включением заголовочников.

2. Конфликт имён. Если вы в своём коде добавили util.h с #define UTIL_H внутри, рано или поздно вы наткнётесь на конфликт с 3rdparty-библиотекой с таким же макросом. Единые правила для выбора имён макросов дискредитируют саму их идею - если все будут их придерживаться, то в результате они породят те же конфликты. Остаётся надеяться на генераторы мусорных суффиксов, которые а) идут вразрез с идеей того, что код должен писаться для человека и б) привет, рефакторинг! то-есть, пока... переименовав один заголовочник в другой или просто скопировав код получаем чёрти что.

3. Поощрение к хитростям. Если макрос объявлен, значит его можно и удалить, чтобы потом попробовать включить заголовочник снова. Или смешная до коликов в животе попытка «ускорить» компиляцию следующим хаком:

#ifndef UTIL_H
#include "util.h"
#endif

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

Конечно подкованный кодер к подобным хитростям чужд, максимум кого ими можно обхитрить - самого себя. Тем не менее неоднозначная семантика header guards вынуждает молодого программиста задуматься - а вдруг таки можно? Однозначная семантика #pragma once решает эту проблему на корню, минимизируя возможные хаки и ошибки к нулю.

4. Распространённость и поддержка компиляторами. Как известно, чем проще код - тем легче его сопровождать. Аргумент сложности реализации #pragma once для меня вообще смешон, поддержка реализуется примерно следующим алгоритмом:

int include_or_not_the_header( const char * path )
{
    if ( pragma_onced_headers_cache_contains( path ) )
        return DONT_INCLUDE_THIS_HEADER;

    if ( does_header_contain_pragma_once( path ) )
        pragma_onced_headers_cache_add( path );
    
    return INCLUDE_THIS_HEADER_PLEASE;
}

Если кто сможет назвать хоть один компилятор (помимо мирно лежащих в гробах) без поддержки #pragma once - будьте добры. Мой гугл находит только кивания, что суслик как бы есть, но в глаза его никто не видел.

5. Миф о проблемах с символическими ссылками в #pragma once. Давно развеян с тех пор, как в GCC в кеш (см. пример выше) стали ложить не символические ссылки на файлы, а сами файлы.

6. Достоинства header guards. Здесь прочерк.

Итого я пришёл к выводу, что header guards продолжают пользоваться:
1) Осознанно. Бородатые программисты с бородатыми компиляторами со специфичным кодом под специфичные устройства.
2) Неосознанно - все остальные.

Отчасти на пункт 2 повлияли два фактора - ISO и GCC. Первый, насколько я понимаю, до сих пор жмётся, чтобы добавить директиву в стандарт. Второй долгое время выдавал warning на эту директиву, мол deprecated и вообще ай-яй-яй. Пользователи при этом балансировали на грани, а многие поддались общей панике и устроили крестовые походы набеги на #pragma once, насаждая всюду религию header guards. И видимо по инерции не заметили, как ещё в 2004-м году (!!) в GCC 3.4 официально убрали любые комплексы по этому поводу, оставив #pragma once навсегда в списке поддерживаемых директив.

Аргументы за и против, а также список компиляторов без поддержки #pragma once - приветствуются. Примеры сотен кода, в которых используются header guards без аргументации почему - можете оставить себе.

Dendy
()

King's Bounty

Играю сейчас в эту замечательную пошаговую игрушку, мир которой густо населён всевозможными NPC разных рас. Уже повидал Робина Гудмена, Бенгана, Рейк Явика и прочих камео. Каково же было моё удивление при встрече этого персонажа:

http://img837.imageshack.us/img837/3109/screen101009000.png

Dendy
()

Википедия и телевизор

Всё таки фильмы бывают смешными, и не только комедии. Касл, герой одноимённого сериала, которого играет Натан Филлион (Светлячок, Серенити), 3-й сезон, 3-я серия, время момента 18:25:

Дочурка Касла: - Ты решил на счёт скутера?
Касл: - Ты слышала о потреблядстве?
Д: - Потребительстве?
К: - Потреблядстве. Это синдром, присущий детям из богатых семей.
Д: - Ты это выдумал.
К: - Нет, посмотри в Википедии.

Думаю после просмотра этого момента с экранов телевизоров многие таки решат познакомиться с новомодным словом получше. И не найдя его в Википедии придут на правильный сайт (начинается на «Л», заканчивается на «Р», но не ЛОР).

Dendy
()

Возврат OEM Windows в Украине

Таки заказал себе Lenovo ThinkPad X200s, должен приехать в пятницу. Тем временем ищу информацию как сделать возврат Windows. Судя по этому документу http://www.pc.ibm.com/europe/microsoft/ru/os_return_policy.html с возвратом в России у Lenovo проблем нет. Главный вопрос - как с этим в Украине?

Вопрос номер 1. Может кто скинуть текст лицензии, которую я должен лицезреть при первом включении и от которой должен отказаться?

Вопрос номер 2. У кого есть истории успеха по возврату OEM Windows в Украине?

Dendy
()

Trackpad vs Touchpad

Под Trackpad'ом подразумевается торчащий из клавиатуры пиптик, в простонародье именуемый клитором.

На днях основательно пощупал MacBook Pro, оставлю недостатки в покое (их хватает) и сразу перейду к тому, что понравилось. Собственно это что-то состоит из одного пункта: Touchpad.

Тачпад большой, точный, бешеных прыжков курсора по углам не наблюдал. В связи с назревающей покупкой ноутбука для меня встал острым следующий вопрос: стоит ли брать бук с трекпадом? Какой у тебя, ЛОР, опыт работы с тем и другим? Что можно сделать с помощью одного, чего нельзя с помощью другого, или таки можно, но проблемно?

Соберу свои плюсы относительно тачпада:

1. Практически все операции можно выполнить только одними касаниями, без раздражающих щелчков:
- клик левой кнопкой (касание одним пальцем);
- клик правой кнопкой (касание двумя пальцами);
- клик средней кнопкой (касание тремя пальцами);
- скроллирование во все стороны (вождение двумя пальцами);
- перетягивание с зажатой левой кнопкой (двойное нажатие + вождение одним пальцем).
2. Точность и скорость наведения.
3. Разгруженная клавиатура.

Как вот такие типичные операции делаются трекпадом? Можно ли по трекпаду кликать? Не мешаются ли пальцы в клавиатуре, откуда этот самый трекпад как правило торчит? Как вообще делается скроллирование?

И конечно же насущный вопрос, насколько трекпады хорошо поддерживаются в Линуксах, как на уровне ядра, так и на уровне DE? Можно ли при желании стандартными средствами переопределить поведение (если оно конечно нужно)?

P.S. Предполагаемый бук - Lenovo ThinkPad X200s.

Dendy
()

Повышение эффективности модерирования

Ввиду недавнего нововведения на ЛОРе избранных тем, предлагаю модераторов и корректоров автоматически подписать на тему Ошибки и опечатки в новостях, а модераторов дополнительно и на Ссылки на некорректные сообщения.

Dendy
()

Форки как тормоз прогресса

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

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

Прямо сейчас на работе приходится иметь дело с программой, написанной под Qt 4.3.2, кто не в курсе - эта версия вышла 3 года назад, довольно приличный срок. В своё время бравые разработчики дописали поверх несколько самопальных патчей для собственных целей, тем самым прибив гвоздями программу к конкретно этой версии Qt. Опять же, кто не в курсе - в Qt 4 заявлена обратная бинарная совместимость, это значит, что Троллям нет смысла бекпортировать патчи для старых минорных версий, вместо этого они выпускают новую мажорную, сохраняя при этом обратную совместимость.

Проходит время, разработчики разбежались, программа не развивается, но актуальности не потеряла, поддержка функционирует. И получается такая штука, что Тролли уже выпустили сотни обновлений для Qt, но тем не менее задействовать их нельзя - мешает форк. Итого имеем:
- висящие в воздухе потенциальные ошибки, с помощью которых зная код можно попросту саботировать программу, подсунув ей специально подготовленные файлы;
- в свежих версиях появился функционал, открывающий новые возможности, использовать которые не выйдет;
- проблемы сборки старой версии Qt под OS X 10.6 (Snow Leopard), благодаря которым (сейчас тем кто стоит лучше сесть), программа собирается на OS X 10.5 и тестируется после перезагрузки на 10.6, да это официальный workflow;
- повсеместное использование внутри старой Qt Carbon API, который одной ногой в могиле, ещё чуть-чуть и программа просто перестанет работать на следующей версии OS X;
- закрытая дорога на 64 бита на Маке, опять же из-за Carbon.

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

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

Собственно лично я считаю форки достаточно радикальной мерой. Семь раз отмерь - один форкни.

Мнения приветствуются.

Dendy
()

Реклама Android

Недавно у нас в Киеве появились бигборды с рекламой Самсунга: большой телефон во весь рост с главным меню Андроида, на половину плаката фраза «Открой новые возможности Android» и пририсован бегущий робот-маскот, вторую половину занимает надпись «Samsung Galaxy».

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

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

У кого есть другие примеры рекламы Андроида, может быть по телевизору? Насколько выгодно аппараты с ним смотрятся с мобильных салонах? Дошла ли ситуация уже до того, что покупателю достаточно сказать «телефон с Андроидом», чтобы подчеркнуть его плюсы?

P.S. Сам пользуюсь мобильной связью только чтобы позвонить, поэтому старенькой Нокии за $30 хватает за глаза.

Dendy
()

Code Less, Create More

Те, кто интересуется Qt наверняка посещают главную страницу Нокии http://qt.nokia.com. Интересно сколько из них всматривались в иконку «Developers», вот в эту самую: http://qt.nokia.com/portal_css/Qt%20Theme%202010/developer_icon.png.

На этом клапте 2x3 см умудрились втулить:

1. Негативную условную компиляцию: #if !defined() вместо #ifdef

2. Сам макрос переключения платформ #if !defined(Q_OS_), что идёт врознь с идеями кроссплатформенного программирования на Qt.

3. Отсутствие const-квалификатора перед app:

QString app = QLatin1String( "a" );
#if !defined(Q_OS_...)
    app += QLatin1String( "b" );
#else
    app += QLatin1String( "c" );
#endif

Вместо:

const QString app = QString::fromLatin1( "a" ) +
#if !defined(Q_OS_...)
    QLatin1String( "b" );
#else
    QLatin1String( "c" );
#endif

Хочется взять этот самый молоток и размельчить сию могильнуюю плиту, а авторам выдать книжку Андрея Александреску «Стандарты программирования C++».

И да, кто-нибудь знает, что это на иконке за пуля и белые комочки?

Dendy
()

Анархия в Википедии

Заблудился я значит сегодня окольными тропинками на YouTube, решил посмотреть про бокс, чтобы хоть чуть-чуть быть в курсе этого вида спорта. Наткнулся на имя «Николай Валуев», вспомнил про его рекламу MSI, думаю дай почитаю про это дарование на Википедии. Читаю-читаю и вдруг глаза упираются в фразу, которая ну никак не вписывается в контекст. Минуту пытался «въехать», после чего таки открыл историю правок:

http://ru.wikipedia.org/w/index.php?title=%D0%92%D0%B0%D0%BB%D1%83%D0%B5%D0%B...

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

Dendy
()

Контейнеры в C

Будучи сиплюсплюсником, меня давно интересует как те же задачи выполняются в C. Знаю, на ЛОРе есть множество приверженцев C, надеюсь они ответят на пару простых вопросов.

Я являюсь активным сторонником идеи «Алгоритм должен работать настолько быстро, насколько позволяет железо». С этой точки зрения C++ даёт потрясающие возможности из-за своей системы кодогенерации. Да, я имею в виду шаблоны.

Не будем зарываться в дебри boost'а, возьмём простую задачу - контейнеры.

Для примера я взял односвязные списки в GTK GSList и Qt QList. QList позволяет хранить как простые, так и сложные типы с конструкторами, деструкторами, типы с общими данными. При этом накладных расходов на выделение в куче не происходит, а при реаллокации выбирается нужный алгоритм в зависимости от QTypeInfo<T>, к примеру для int будет вызван memcpy(), а для QString оператор копирования. Кроме того блок данных заранее резервируется и для сложных типов вызывается placement constructor. Для удаления данных по указателям используется алгоритм qDeleteAll(from,to), который сам дёрнет нужные конструкторы. Беглый просмотр GSList показал, что в нём можно хранить только указатели, со всеми вытекающими накладными расходами на аллокацию/уничтожение памяти, ручное кастирование, слежение за утечками, фрагментацию памяти.

Аналогичная ситуация со связными списками GList и QLinkedList.

Это даже не затрагивая вопрос о типизации, в C++ компилятор сразу даст по рукам при попытке записать в контейнер неверный тип или с помощью неявного преобразования с explicit-конструктором.

Далее, счётчики ссылок и деструкторы.

К примеру, в C++ список строк будет выглядеть как QList<QString>, при этом можно забыть про внутреннюю структуру строки - конструктор, деструктор и операторы копирования сами занимаются подсчётом ссылок, разделением и уничтожением данных. Вернуть строку из функции проще простого:

QString foo()
{
    return listOfStrings.at( 5 );
}

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

В GTK я сходу нашёл GString:

struct GString 
{
  gchar *str;
  gint len;
};

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

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

Или может GTK неудачный пример, тогда дайте ссылку на правильную C-библиотеку с контейнерами.

Dendy
()

Уведомления (Feature Request)

Два предложения:

1. Сейчас в список уведомлений добавляются ответы на твоё сообщение. Но, по неизвестной причине, сама тема сообщением не считается. Исправьте пожалуйста.

2. Добавить к слову «Уведомления» цифру с их количеством, например так: «Уведомления (5)», значит, что 5 ответов ещё не были прочитаны. И, соответственно, как-то их подсветить в списке.

Dendy
()

Зависает openSUSE

Стокнулся с этим пару месяцев назад на openSUSE 11.2, по неизвестным причинам openSUSE начала спонтанно зависать после нескольких часов работы (несколько: час, два, десять, сутки).

Симптомы:

  • Мгновенно останавливается картинка;
  • Мгновенно останавливается звук;
  • Никакой реакции на клавиатуру;
  • В /var/log/messages пусто;
  • Единственный способ реанимации - reset.

После безуспешных попыток понять, что случилось я пришёл к следующим выводам:
1. Или я угробил Линукс (как - загадка);
2. Или что-то с железом.

Пришлось пересесть на Windows7, который на этой же машине проработал несколько недель подряд без нареканий (включая установку/снос разных программ, драйверов, регулярные засыпания). Был сделан вывод, что с железом всё в порядке и я решил подождать выход свежей openSUSE 11.3.

openSUSE 11.3

Установка прошла гладко, настроил репозитории, обновился, даже установил драйвера для Nvidia (из репозитория Yareg). Не проходит и пары часов - только что установленная система зависает. Начинаю подозревать, что таки что-то с железом, жёстким диском, драйверами Nvidia или таки с самой openSUSE (перепроверил скачаный DVD - оказалось диск в порядке).

openSUSE 11.3 на работе

Решил обновиться на работе с этого же диска. Снёс раздел с openSUSE 11.2, забекапил /home и поставил openSUSE 11.3 с нуля. Разбекапил /home, настроил репозитории, обновился, драйвера Nvidia решил не ставить, а пожить пока с Nouveau до открытия официального репозитория Nvidia. Не прошло и часа - компьютер на работе зависает с точно такими же симптомами.

Стоит ли говорить, что на рабочей машине почти год замечательно живёт Windows XP - и в ус не дует. Удалённая openSUSE 11.2 тоже работала как по маслу.

Тут я уже начал грешить на всё подряд - KDE4 (поставил KDE3 - бестоку, зависает точно так же ещё на этапе загрузки самого KDE3), драйвера Nouveau (хотя дома у меня зависало и с официальными Nvidia). Дождался открытия официального репозитория Nvidia, обновился - бестолку, зависает на этапе загрузки KDE3, с KDE4 зависает чуть позже, через несколько минут.

Вопросы

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

Вопрос 1: Кто-нибудь вляпался в такую же историю с зависаниями?
Вопрос 2: В чём теоретически может быть проблема? Повторяемость 100%, что можно сделать для диагностики, чтобы хоть чуть-чуть локализировать проблему?

Dendy
()

KDE3 + kxkb

С некоторых пор из трея в KDE3 пропала иконка kxkb (от KDE4). При этом сам kxkb висит в памяти, всё хорошо переключается, но самого флажка не видно. При старте из консоли видно только:

dendy@linux-xb4w:~> /usr/bin/kxkb
Connecting to deprecated signal QDBusConnectionInterface::serviceOwnerChanged(QString,QString,QString)

Но что-то мне подсказывает, что не в этом дело. Скорее всего ему нужен какой-то демон из KDE4, понять бы только какой.

Dendy
()

Укртелеком, Интернет без ограничений

Как уже многие знают, с недавних пор Укртелеком демпингонул по самое нехочу - включил тариф без ограничения трафика и скорости по всей Украине. Стоимость удовольствия 20 евро. На практике скорость упирается в ограничение модема и телефонной линии, у большинства это 24 Мбит/с, чего хватает с головой даже самым искушённым.

Прямо сейчас у меня скорость скачивания доходит до 20 Мбит/с, но вот загвоздка - тариф я не менял. Проверил на сайте - действительно, стоит 8 Мбит/с. Подтвердите кто-нибудь у кого так же выключили ограничение на скорость, не может быть чтобы это я один был такой счастливчик.

Dendy
()

ntfs-3g и доступ на изменение времени файла

Монтирую NTFS-раздел со следующими опциями в fstab:

noatime,users,gid=users,fmask=113,dmask=002,locale=en_US.UTF-8,force

При этом владелец файлов виден как root, а группа - та что я указал в gid - users. fmask и dmask как и положено выполняют свою задачу.

Загводка в установлении времени изменения файла. С помощью

$ touch /mnt/ntfs/somefile

файл меняет своё время модификации на текущее. А вот команда

$ touch -t 01020304 /mnt/ntfs/somefile

выдаёт ошибку: Operation not permitted. При этом через sudo эта же команда нормально меняет время на указанное.

Что нужно добавить в fstab, чтобы любой пользователь мог менять время файла? Или это решается только установкой uid на конкретного пользователя?

Dendy
()

RSS подписка на новые темы