LINUX.ORG.RU

Сообщения staseg

 

[ktorrent] Раздача ведется путем добавления новых серий

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

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

 

staseg
()

[CL][ASDF] Использование зависимостей

Сильно и конкретно с ASDF пока не разбирался, просто понял в самых общих чертах, как им пользоваться.

Есть проект usocket, в версии 4.1 он зависил от split-sequence, сейчас она у него прямо внутри. То есть раньше я делал:

(asdf:operate 'asdf:load-op :split-sequence)
(asdf:operate 'asdf:load-op :usocket)

И мог пользоваться как usocket-ами, так и split-sequence-ами. Теперь в версии из svn split-sequence.lisp (отдельного asd-файла нет) просто запечатана внутри усокета, в директории vendor. usocket.asd включает это добро так:

...
:components ((:file "package")
 (:module "vendor" :depends-on ("package")
  :components ((:file "split-sequence")
  ...

Делаю

(asdf:operate 'asdf:load-op :usocket)

Видно, что он загружает все свои файл, в т.ч. vendor/split-sequence.fas, при этом усокет-функции доступны, а сплит-сиквеновские - нет. Как их вытащить правильно? Неправильная попытка - убирание #+ingore-рования defpackage в vendor/split-sequence.lisp - привела к тому, что сам по себе пакет стал доступен, но все его функции все равно нет. И даже сделанный после этого прямой (load этого-файла) не дал никаких результатов.

Короче, я основательно запутался в лисповской пакетной системе и ASDF-огороде вокруг него.

staseg
()

Шрифты в xterm

В настройках konsole стоит Droid Sans Mono - и рисует офигительно. Пытаюсь настроить xterm...

Многочасовые ковыряния в манах кстерма и прочих виках привели к следующему:

*XTerm*background: black
*XTerm*foreground: gray
*XTerm*renderFont: true
!*XTerm*faceName: Terminus
*XTerm*faceName: Droid\ Sans\ Mono
*XTerm*faceSize: 11

Но!

1. В Консоле bold-текст рисуется как обычный (или слегка подсвеченый - хз). В кстерме он ужасно жирнющий. Ковыряния с doubleSize-параметрами ни к чему не привели.

2. В кстерме текст выглядит страшненько и размазано.

3. (Доп.) В кстерме не работают сочетания клавиш миднайт командера (мета+? не реагирует, Alt+Return всегда печатает точку).

В настройках кед: antialias = use system; hint = none. Пробовал играть с Xft.-опциями, только хуже.

Короче говоря, вопрос: как привести кстерм в невырвиглазный вид?

staseg
()

Разметка диска

Было:

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *           1         262     2104483+  82  Linux swap / Solaris
/dev/sdb2             263        2873    20972857+  83  Linux
/dev/sdb3            2874        5484    20972857+  83  Linux
/dev/sdb4            5485       91201   688521802+   5  Extended
/dev/sdb5            5485        6789    10482381   83  Linux
/dev/sdb6           43729       91201   381326841    7  HPFS/NTFS

sbd1 был смонтирован в своп (прозевал, ага; к счастью там было пусто)

Стало:

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *           1        5484    44050198+  83  Linux
/dev/sdb4            5485       91201   688521802+   5  Extended
/dev/sdb5            5485        6789    10482381   83  Linux
/dev/sdb6           43729       91201   381326841    7  HPFS/NTFS

После этого я вспомнил и переключил своп на sdaХ. Фактически sdb1 вырос с двух до сорока двух гигов. Делаю mkfs /dev/sdb1 и получаю размеченными только первые два гигабайта раздела, кроме того присутствуют все «старые» файлы /dev/sdb[1..6]. Как обновить файлы устройств без перезагрузки? Перезапуск dbus не помог.

staseg
()

[CL] Генерирование символов

Необходимо по некоторому алгоритму создать список символов (для последуюшего скармливания их макросам). Кроме как генерирования строк с последующим преобразованием их в символы, я пути не знаю.

Для примера, что-нибудь простое и бесполезное вроде:

(loop for i from 1 to 10 collect
 (intern (concatenate 'string "hello-" (write-to-string i))))
=>
(|hello-1| |hello-2| |hello-3| |hello-4| |hello-5| |hello-6| |hello-7|
 |hello-8| |hello-9| |hello-10|)

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

Про работу с пакетами читал в пкл, кукбуке и гиперспеке, но там примеры рознятся и ничего конкретного про палки я так и не нашел...

staseg
()

Фаерфокс и его окна с табами

Случайно оторвал одну вкладку в отдельное окно. Перетыкал все менюшки, но так и не нашел, как вернуть ее обратно. Вроде бы в многооконных приложениях обычно есть что-нибудь навроде меню windows... Есть решение? Экстеншен тоже сойдет.

ЗЫ. Окно закрыл и заново переоткрыл страницу в основном окошке. А если бы там было какое-нибудь хитрое жабоскрипт- или флеш-приложение?

staseg
()

[CL] Локальные переменные и функции

Чем отличаются локальные переменные и функции, определенные через defvar и defun от let/let* и flet/labels? (последние я буду для краткости записывать *-let)

Я понимаю, что первые локальны внутри функции, в которой они определены, вторые - внутри *-let-формы. Неужели это единственное отличие? У let есть дополнительная плюшка - временное перебиндивание внешних переменных; у flet этого нет, отчего его использование для меня становится еще более загадочным.

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

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

(defun foo (x)
 (labels ((foo-req (depth)
	   ...))
  (foo-req 0)))

вместо более (для меня) логичного:

(defun foo (x)
 (defun foo-req (depth)
  ...)
 (foo-req 0))

Чувствую, что неспроста пишут именно так, но понять, почему, не могу. Ведь дело не в том, что десяток лишних скобок придает большей брутальности написанному коду? :)

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

staseg
()

Справочник CL

Когда я пишу на си или си++, читаю документацию по функциям в манах. Если не дай боже на Qt - в ассистенте. А вот какой мануал использовать по лиспу? Пока что просто гуглю что-нибудь типа «lisp format», но это надоедает. Вроде как есть офицальный гиперспек, но то ли там нет нормального поиска, то ли я им пользоваться не умею... Хочется полноценный справочник, все в одном. Желательно оффлайн.

Заранее спасибо.

staseg
()

Название типа данных

Обязательно линейная структура, по типу вектора. Две основные операции: добавить и удалить. Удаление элемента возможно из любого места, но на деле память под вектором не перераспределяется, а просто освобождаемый участок помечается как «свободен». При добавлении элемента автоматически выбирается либо первая дырка, либо конец вектора (при отсутствии дырок). Наверное хорошо бы опционально при достижении определенного критического процента дырок опять сшивать вектор воедино.

Интересует название такого типа - даже если написать его самому. Пока в голову приходит только романтичное holed_vector.

staseg
()

[javascript] Передача значения переменной в лямбду

На яваскрипте лет пять не писал, ничего не помню и даже нагуглить не могу. К примеру есть код

for(var i=0;i<document.links.length;i++){
 a=document.links[i];
 a.onclick=function(){
  alert(a.href);
  return false;};
}

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

 

staseg
()

[Amarok] Интернет-радио

Нашел в интернетах классное радио, взял ссылку на стрим. Очищаю в амароке плейлист и добавляю в него этот стрим. Потом я хочу послушать пинкфлойд со своего харда, удаляю с плейлиста стрим и добавляю свою музыку. А как теперь обратно переключиться на радио? Ничего подобного Open Recent не вижу... Ну ладно, заново нашел стрим, заново добавил, ок. Куда теперь в этом интуитивно понятном интерфейсе жмакнуть, чтобы оно запомнило радио? И куда жмакать, чтобы потом открыть его? Я запутался. :(

Написать скрипт для прослушивания через mplayer - не вариант. Но на фоне использования других плееров все равно вариант.

amarok-2.3.2-r1

 

staseg
()

[гента][кеды] апдейтов накачали!

Обновил иксы до 1.9.0, затем пересобрал keyboard и mouse драйвера, etc-update какого-то файла в /etc (все время внимательно смотрю, что обновляю, а тут черт дернул -5 сделать). После этого сервис xdm не старутет по причине needs service xdm-setup. Внимательно смотрел /etc/init.d/xdm, про сетап - ни слова. Внимательно грепал весь /etc и /usr/share - пусто.

При ребути гента полминуты тупила, пытаясь обновись кеши (openrc) , видимо безуспешно.

Что делать? Кто виноват сам знаю.

staseg
()

[гента][кеды] не было печали

После обновления с 4.4.5 до 4.5.1 случилось так, что кеды стали немного криво работать с комнатами и загружаемым контентом. ~/.kde4 была уже старой, а у меня уже был неприятный опыт с несовместимостью кедо-настроек. Ну фиг с ним, удалил старый профиль, все работает, плазма не падает, в общем сказка. А вчера я ткнул мышом в долфине по киношке,.. и увидел окошко выбора программы... с пустым деревом. Че за буйня?! - возник у меня резонный вопрос. Ввел вручную mplayer, кино посмотрел и начал разбираться:

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

- во-вторых, кеды не могут это запомнить даже в меню настройки файла/его типа;

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

Как починить эту хрень? Ведь эти ассоциации вроде бы глобальны для разных ДЕ, где на них глянуть?

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

staseg
()

[призывник.рф] Аспирантура

Сейчас заканчиваю ВУЗ, поступаю в аспирантуру. Получение диплома и отчисление произойдет намного раньше зачисления, поэтому встает вопрос, как минимум не загреметь в армию, а в идеале избежать медкомиссию и «здравия желаю, товарищ прапорщик, призывник <censored> прибыл для^W^Wпребывает в полном ахуе». В аспирануте выдали справочку для военкомата что-то в духе «просим дать отсрочку абитуриенту <censored> до октября до сдачи вступительных экзаменов».

Собственно, вопросов два.

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

Второй вопрос без многабукв. Что по сути есть отсрочка? Это решение военкомата или это просто некая абстрактная хрень, набор условий (учеба, дети, плоскостопие etc), при которых военкомат не имеет права трогать человека?

//Когда получал справку, естественно не думал об этом и не спросил.

//Недавние [армия]-треды читал.

staseg
()

[C++] [крик души] Инициализация статического члена шаблонного класса

Класс:

namespace stools{
 namespace dev{
 using namespace stools::internal;

 template<typename T>
  class shmem{
   static hash<T const*,vector<shmem<T>*,pod_alloc>,gen_alloc,16>members;
  };

}}

Инициализация (как мог, сократил typeof-ом)

template<> typeof(stools::dev::shmem<int>::members) stools::dev::shmem<int>::members
=
stools::hash <int const*, stools::internal::vector <stools::dev::shmem <int>*, stools::internal::pod_alloc>, stools::internal::gen_alloc, 16>();

Статический член обычного класса без проблем инициализируется проще - без template<>, а также '=' и всего, что за ним. С шаблонным так не прокатывает - undefined reference. Данное же рабочее решение еле как выгуглилось из stackoverflow.com. Читаемость правой части можно было упростить using-ами, но дело то не в этом.

Вопрос, может и риторический: в С++ настолько чудовищные и нелогичные с точки зрения кодонаписания шаблоны или я что-то сделал не так?

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

 ,

staseg
()

[gentoo] nvidia-drivers, vdpau

Обновил xorg-server до 1.8, попутно обновив libvdpau и nvidia-drivers до последних ~x96 (0.3-r2 и 195.36.24 соответственно). В итоге mplayer перестал показывать через vdpau (USE=vdpau),

$ vdpauinfo

display: :0 screen: 0

Error creating VDPAU device: 1

Гуглится много всего, но старое, и не помогает. Буду благодарен за помощь в оживлении этой крайне рулезной фичи.

 

staseg
()

usb клавиатура во ремя загрузки компа

Проблема в том, что после включения компа в биосе и загрузчике клавиатура как бы не видится, может usb-порты отключены или фиг знает почему еще. Загружается операционка - клава работает. После ребута клава работает уже и в биосе, и в загрузчике.

Во время первого включения биос еще пишет «No keyboard detected, press F1» - тут они явно смайлик забыли поставить. Уже со второй попытки в настройках биоса есть заметка, что usb-клава подключена, а все возможные настройки, в т.ч. USB Legacy Support стоят в enabled.

Как бы оживить клаву сразу или хотя бы в грубе - она в основном там нужна?

ЗЫ. Линукс тут при том, что в грубе хочется выбирать между виндой и мандривой без промежуточного ребута.

ЗЗЫ. А не в Linux-hardware, потому что к линуксу это имеет весьма посредственное отношение.

ЗЗЗЫ. Гугл ведет на всякие срачи, из которых суть можно выловить едва ли.

staseg
()

[calculate][gentoo] Ethernet

В рабочей машинке есть Ethernet сетевая карточка; локальная сеть, интернеты все работает. Но появилось одно «но». Сейчас участвую в разработке системы: вычисления на ПЛИС + гуй на ПК, связь через Ethernet. И как раз возникла проблема со связью: ПЛИС пакеты шлет, моя сетевая карточка весело моргает, принимая пакеты, но ни tcpdump, ни wireshark их не видят. До прикладного софта разумеется ничего не доходит.

Сами по себе пакеты генерируются и отправляются: на соседней тачке с виндой и на серверах в локалке они ловятся. И даже на моей рабочей машинке, когда та была под мандривой 2008.1, ловились.

Пакет бродкастовый как по IP, так и по MAC.

Что уже опробовал:

1. Грешил все же на сетевуху, поставил другую - результат тот же.

2. Грешил на собственую кривую конфигурацию ведра, запустил liveCD-шный Calculate - пусто.

Утром хочу посмотреть, что будет в liveCD Mandriva 2010 и, если все заработает, в крайнем случае поставлю ее или выковыряю из нее ядро.

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

 ,

staseg
()

[gentoo][kde4][icq] kopete и авто-Away

Помню, в третьекедовом копыте была фича: залочил кде-сессию, копыто в аське тут же поставило статус Away (отошел то бишь), разлочился - опять Online. Только сейчас обнаружеил, что в четверокедовском варианте это не работает и в настройках этого нет (или я просмотрел?!).

Посему вопрос. Это выброшенная/еще не реализованная фича или я что-то собрал криво?

ЗЫ. udev запущен.

ЗЗЫ.
Kopete
Version 1.0.0
Using KDE Development Platform 4.4.00 (KDE 4.4.0)

 ,

staseg
()

[поиск] [kde4] Splash Screen

Давненько на kde-look.org, кажется, видел классную тему сплэшскрина: белый фон и в центре небольшой туксик потухает, загорается, потухает,.. (не огнем естественно:) ). Так вот теперь не могу его никак найти, а названия темы естественно не помню.

Если кто даст ссылочку на эту тему или выложит ее, буду премного благодарен.

ЗЫ. Splash Screen - хрень, моргающая пару-тройку секунд после логина в xdm и до загрузки рабочего стола кед.

ЗЗЫ. Не в Desktop, потому что это нетехнический вопрос.

 

staseg
()

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