LINUX.ORG.RU

Сообщения deep-purple

 

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

Пилю дальше свое поделие.

Теперь задача - перехватывать сигналы, т.к. надо завершится мягко, что-то сохранить, а не падать трупом.

// SIGKILL - Не перехватывается, не игнорится, не обрабатывается, сразу труп
// SIGSTOP - Не перехватывается, не игнорится, не обрабатывается, просто стоп, freeze чтоли?
// SIGTSTP - Это rerise(?) от VSUSP (Ctrl+Z) может быть блокирован, перехвачен, игнорирован
// SIGCONT - Продолжить после стопа, но нет смысла вешать обработчик

// SIGTERM - Может быть блокирован, перехвачен, игнорирован
// SIGINT  - Это Ctrl+C
// SIGQUIT - Ctrl+\ какой-то дамп, я так понял отладочный коредамп

// SIGHUP  - Отвалился терминал? а как потом вернуться в терминал если он отвалился?

// SIGTTOU - Попытка писать в терминал из фона

// SIGPIPE - Брокнутые FIFO или отвалился сокет
// SIGLOST - Потеряно соединение с сервером(?) с любым ли?

// SIGXCPU - Превышен лимит процессорного времени
// SIGXFSZ - Превышен лимит величины размера файла (если к файлу то м.б. ограничение для fat32, а как насчет дисковой квоты?)

// SIGINFO - Кагдила

Какие еще сигналы надо учесть?

 , ,

deep-purple
()

Кастомные потоки

Читаю про кастомные потоки.

Во первых смущает:

Portability Note: The facilities described in this section are specific to GNU. Other systems or C implementations might or might not provide equivalent functionality.

Во вторых смущает - а правильного ли я хочу?

А хочу я сделать обертку, которая и выведет в stdout/stderr, и запишет в лог, то что ей передали. Вообще даже три типа хочу кастомных - xx_info, xx_err, xx_debug

Насколько это вменяемо? Реализуемо? Если не вменяемо или не реализуемо, то как правильно? А можно на пальцах? Ато я не особо петрю.

 , , ,

deep-purple
()

Чем занимаешь своих детей, Лоровец?

Собственно, вопрос в заголовке. Ребенку 2 года.

Играем в NES-эмулятор (ну, пытаемся с переменным успехом), читаем книги (нормально прёт)..

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

А чем еще интересным занять чадо в домашних условиях?

 , ,

deep-purple
()

Что насчет dwm? Кто юзал/юзает?

Хочу запробовать чего-то такого http://dwm.suckless.org/

Кто это дело уже щупал? Поделитесь впечатлениями. Минусы, плюсы, удобство?

 , ,

deep-purple
()

xpath выбрать ближайших потомков

Есть XML вида:

<root>
    <x>
        <xa></xa>
        <x>
            <xa></xa>
            <xb></xb>
        </x>
        <xb></xb>
    </x>
    <x>
        <xa></xa>
        <xb></xb>
    </x>
</root>
Так:
//x
естессно выбирает всё вне зависимости от вложенности. Есть ли хитрый expression в xpath (с каким-нибудь отрицанием?) чтобы выбрать только те «tagName» которые не являются потомками таких же «tagName»?

 ,

deep-purple
()

Как правильно запилить звуковой буфер с кроссфейдером?

Мои размышления:

Хочу запилить штуковину, которая будет держать в буфере некоторое кол-во RAWPCM фреймов. Для простоты будем считать что у нас mono.

К примеру внутренняя частота даунмикса будет 44100, тогда если длина кроссфейдера равна 5 секундам, значит надо хранить 44100*5, причем для обоих входных сигналов. Ведь в тот момент когда трек А заканчивается, мы должны начать его заглушать, а трек Б поднимать в громкости. Тестово я уже прогонял этот прикол, волны суммирует, все ок.

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

Для нормальной работы мне нужно забить данными как минимум CrossfadeTime*2 времени. Почему? Потому, что допустим трек Б за 5 сек поднялся в громкости на 100% и где-то далее будет флажок «вот на таком то фрейме пора делай fadeout т.к. трек заканчивается». В этот момент в буфере А я уже типа положил данные для fadein.

А вот если на вход подается мп3, тем более в VBR то хрен я подсчитаю его длину, распакованные данные вообще возвращаются как попало, за одну отправку пачки фреймов в декодер на его выходе может быть вообще 0 (НОЛЬ!) PCM-фреймов. Тут конечно каждый может сказать - читай заголовки. Я их читаю. А ты можешь на 100% доверять инфе в заголовках?

Как быть? Что делать? Есть мысли?

 , ,

deep-purple
()

Присоветуйте реализацию для бекенда

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

Варианты о которых я немного в курсе: nginx push module и realplexor. Тем не менее вопрос глубоко не изучал. Т.е. полезной будет любая информация от вас.

Если немного детальнее - рассылкой будет заниматься только сервер. На клиенте, либо аякс, либо вебсокеты. Необходима возможность рассылки данных как всем листенерам, так и конкретным. Листенеров будет около 1-2 тыс. Сообщения будут вида: «Уважаемые коллеги, пора на обед!» или «Василий Иванович, занесите к директору договор на подпись».

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

 , ,

deep-purple
()

За что не любят пхпшников

Открываю сегодня один проект. Перехожу в мастер ветку, делаю гит пулл. И вижу такую картину в одном из файлов:

            $id = 0;
            for(; $id < 1000000; $id++) {
                if($_GET['key'] == md5($id . 'security')) {
                    break;
                }
            }
            if($id) {
                $file = query("select * from files where id='" . $id . "'");
                header("Content-type: " . $file['type']);
                header('Content-Length: ' . $file['size']);
                header('Content-Disposition: attachment; filename="' . $file['name'] . '"');

Для тех кто не понял что тут происходит: получаем значение ключа из гета и в цикле перебираем варианты от 0 до 1 млн, если присланный ключ совпал с хешем, тогда «бряк» :)

Не-не, а дальше то - if($id) т.е. если $id больше нуля, что будет однозначно, т.к. хотябы одна итерация но будет - лезем в базу и отдаем файл.

А цикл - видимо сделана задержка а-ля comet, мол, ты прислал какашку - на тебе мильён итераций в цикле!

 

deep-purple
()

Решил поковырять генту, скока ей места то надо?

Вобщем скачал я лайф-сиди минимал, запилил разделы, примонтировался, чрутнулся, распаковал третий стейдж, кароч система взлетела. Ах да, все это в виртуалбоксе. Дал ей 256м рамы и 4гб диска.

И чота я не понял, получаю дерево (emerge-webrsync), оно успешно прилетает, и... При распаковке фейлится ругаясь что нет места на диске.

Ей чо, 4гб мало на дерево? А еси я еще компилять начну? Чо эт за минимал такой? Доки сижу читаю. Чую есть вариант не тащить к себе весь мир. Подскажете?

 ,

deep-purple
()

Создать уникальный строковый ключ-идентификатор для DOM-элемента

Предположим есть:

var itemsData = {};
function addItemData(item, data) {
    var iKey = ???;
    if (!itemsData[iKey]) {
        itemsData[iKey] = data;
    }
}
var elem = document.getElementById('my-elem');
addItemData(elem, [1,2,3]);
Откуда кроссбраузерно взять уникальный ключ так, чтобы если ниже по коду передается DOM-элемент, данные для которого уже есть в itemsData, то повторно их уже не добавлять? Не засирая при этом сами DOM-элементы левыми свойствами.

 , ,

deep-purple
()

Пыхопроблема

Есть такой тестовый код:

class a {

    protected $data = array();

    public function set($key, $value) {

        if (!array_key_exists($key, $this->data)) {
            $this->data[$key] = $value;
        }

    }

}


class b extends a {}
class c extends a {}


$b1 = new b();
$b2 = new b();
$b3 = new b();
$c1 = new c();
$c2 = new c();


$b1->set('x', 'b1x');
$b2->set('x', 'b2x');
$b3->set('x', 'b3x');
$c1->set('y', 'c1y');
$c2->set('y', 'c2y');

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

В идеальном случае требуется такое поведение, чтобы эта $this->data была для всех классов-потомков глобальной.

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

 , , ,

deep-purple
()

Денискины мемуары

Люди, подскажете где почитать что-то вроде автобиографии Денниса Ритчи? Конкретно - как он допетрил написать сю, о чем думал, какие предположения строил. Не в том плане что, мол, взял, поставил список задач и запилил. И не в том что перед тем как выйти издома он обязательно проверял выключил ли утюг. А в плане каких-то личных, не сказать что переживаний, но размышлений, разговоров с коллегами, обсуждений. Т.е. важны психологический портрет и атмосфера того времени, нежели какие-то сухие факты.

 , ,

deep-purple
()

Обновил ненужно до 4.3

Ага, вобщем Debian 6 на борту. Скачал dynamic-версию этого некрософачного поделия, воткнул ему нужные либы (libphonon.so, libQtWebKit.so, libQtXmlPatterns.so) - взлетело, НО!

Запуск выглядит так:

$ LD_LIBRARY_PATH=/home/deep/Bin/skype-4.3.0.37/ /home/deep/Bin/skype-4.3.0.37/skype
Без установки переменной LD_LIBRARY_PATH оно не взлетает, прописать её в .bashrc не помогло, оно хочет устанавливать непосредственно при запуске. И никак не могу отвязать процесс от терминала. Пробовал перенаправления, nohup, daemon и их комбинации - эта тварь не отвязывается от терминала. Как отвязать? Может скрипт какой запилить?

 , , ,

deep-purple
()

Посоветуйте самый легкий и простой в настройке прокси сервер

Причина:

Работаю с канвасами. Необходимо класть в канвас картинки с чужих доменов, в частности - инстаграм. Однако, по причине политики безопасности в ФФ и хроме (в других наверное тоже) этого делать нельзя. Почитать об ентом можно тут. Собственно инстаграм не отправляет таких спецефичных заголовков.

Следствие:

Т.к. домены там всегда разные (статика разбросана), то средствами своего сервера, например проксировать через nginx, насколько я знаю - будет невозможно. А дергать курлом/вгетом полученную через АПИ сотню картинок - расточительно, к тому же это еще нужно дернуть как внешнюю прогу, в цикле... Буээээ..

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

Посоветуйте самый легкий и простой в настройке прокси. Есть ли другие варианты решения задачи?

 , ,

deep-purple
()

Кому старое железо (и не только, как выяснилось)? Москва, самовывоз

Собственно, знакомый избавляется от хлама. Отдаст за символическую цену, если кому нужно что-то, смотрите список:

HP Color LaserJet CP1215 на запчасти (целиком) Принтер цветной лазерный. Продам на запчасти (картриджи пустые, есть заедание бумаги, рассинхронизация цвета). Сам принтер в хорошем состоянии, корпус целый, механических повреждений нет.

Корпус для жесткого диска (mobile rack) IDE - 2 шт Agestar, корпуса новые, ни разу не использовались. В наличие есть две штуки. Подходят для жестких дисков формата IDE.

Ибп Ippon Back Power Pro 500 (UPS) б/у Полный комплект, проводами могу снабдить даже сверху необходимого. Умер аккумулятор, требуется замена.

APG видеокарта asus v7100 Видеокарта в отличном состоянии. 32 мб памяти, выход VGA.

Свитч Dlink 1005D (Switch) 5 портов, отличное состояние, полный комплект без коробки

Коммутатор Asus GigaX 1005/G (Switch) 5 портов, отличное состояние полный комплект.

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

HDD, б/у, все рабочие. Seagate Barracuda 120 GB ST3120022A Seagate Barracuda 80 GB ST380011A Seagate Barracuda 200 GB ST3200820A Quantium Fireball 30 GB Seagate Barracuda 40 GB ST340015A Maxtor 80GB

Мониторы LeCie Electron 19 Blue Mitsubishi Diamond Pro 920

Zyxel Omni 56K Plus EE Dial-up модем в идеальном состоянии, полный комплект (блок питания и com-com провод для подключения к компьютеру)

Оперативка (DDR DDR2, DIMM) Silicon Power 512Mb DDR 533 (CL 4) DDR2 Kingston 256Mb DDR 333 (CL 2,5) (KVR333X64C25/256) Nanya 256Mb DDR 266 (CL 2) DDR NCP 256Mb DDR 266 AUG 256Mb DDR 266

Материнская плата ASUS A7V8X с процессором (подходящим под мать, не разбирал) и кулером. Материнская плата ASUS K8N socket 754 + проц AMD Athlon x64 3000+ (ADA3000AEP4AR) (отломана одна ножка, вторая полуотломана, из матери не вытаскивался с момента эксцесса, НО отлично работает) + кулер Титан

DVD-привод RW SATA LabelFlash

Еще есть коньки женские 40 размера, новые (2-3 раза одевались пару лет назад)

по ценам не знаю.

в основном 150-250 руб.

Мониторы по 500 руб (в идеале) или в хорошие руки Принтер 1000-1500 в идеале

ИБП и камера 300-500 руб. если берут пачкой харды - все за 800 оперативку - всю за 500

свичи, вот даже не знаю - 500 за оба?

Торг уместен. Москва, самовывоз. м. Новогиреево. Писать в жабер: eltar@xmpp.jp

Лично моя *опа с ушами ко всему барахлу отношения не имеет, за исключением только, что я знаком с этим человеком.

Если я тему положил не в тот раздел, ну, в следующий раз положу в правильный..

 , ,

deep-purple
()

Делюсь впечатлениями по нескольким играм

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

Рассмотрим мы тут только небольшие флеш-игрушки, все запускаются локально (ссылка на архив внизу).

1) Cubes - логическая игрушка, двигаем кубики. Вообще сложно описать процесс того что происходит на экране, поэтому лучше один раз попробовать - уверяю, разочарования в игре не будет. Эту я прошел до конца, жаль что там мало уровней.

2) FireBoy and WaterGirl - управление двумя героями одновременно, мальчик-огонь и девочка-вода. Очень затягивает. Сильно развивает умение сосредотачиваться и выполнять более одной задачи за один раз. Да и сюжет интересный - местами придется еще и подумать что нужно сделать чтоб пройти дальше. В этой игре я открывал больше половины точек на карте - но пройти до конца как-то откладывается все время.

3) Эмулятор сисадмина - сидишь такой в конторе и тут тебе звонит бухгалтерша.. Да наверное 99% лора видели эту игру. А если не видели - советую увидеть. Прошел совсем недалеко, но было это очень давно, даже не помню на чем запоролся. Надо будет гамануть еще разок.

4) Submachine 3 - это третья часть легендарной игры-головоломки авторства товарисча Скутника. Вообще у меня есть все семь (или даже восемь) частей этой легендарщины. Но третья мне нравится больше всего. Я прошел несколько частей до конца, включая эту третью (все части связаны и являются продолжением сюжета). Ооооочень советую запробовать эту гаму!

5) Tri-Achnid - игра про грустного трехногого паука (второе её название «Самая печальная игра»). С одной стороны это некрософтосодомия - т.к. нужно перемещать эти три лапы мышкой, по очереди, переставляя каждую по отдельности. С другой стороны - это интересный сюжет, интересные декорации. Кто заинтересуется - подскажу суть игры и что там делать. Я проходил достаточно далеко, пройти дальше просто не хватало настроения.

6) Zombie Trailer Park - нереально крутейшая игрушка! Попробуешь один раз - и тебя будет не оттащить от этой игры! В твоем распоряжении: мужики с лопатами, злые фермеры с ружьями, священник и прочие, прчие, прчие... Ты будешь воевать с зомбаками всех мастей, бешеные зомбячки, жирные разрушители и много много других. В игре все на высоте - геймплей, звуковое сопровождение, обстановочка. Представляешь себе картину когда на экране схлестнутся 100 человек против 100 зомбаков? Ну так запускай игру и сам увидишь! Эта игра вообще надоесть не может.

А вот и архивчик с гамашками: http://www8.zippyshare.com/d/61662931/124178/Games.tar.gz или тут http://zalil.ru/abNcN

 ,

deep-purple
()

Задачка про розетку 2

Имеется:

  • Магнитофон кассетный, обычный, китайский (9-12 вольт трансформатор).
  • Лампочка на 220 вольт 60 ватт. (в патроне).
  • Розетка в стене (220 вольт).
  • Провод, однополюсный, три куска.

Рисовать схему лениво, опишу словами:

Конструкция соединяется последовательно, т.е. первые два провода присоединяются к патрону с лампой. Один провод от лампы идет к одному из контактов вилки на магнитофоне, второй втыкается в розетку (в одну дырку). Третий провод идет от второго контакта вилки магнитофона во вторую дырку в розетке.

Вопрос:

Загорится ли лампа? Если да, то при каких условиях (play/stop магнитофона) и почему?

 , ,

deep-purple
()

Ищу одну браузерную игру на JS про танк

Собственно, было дело давно, искал разные игровые движки на js. И толи в демо к одному из них, толи в какой-то контекстной ссылке наткнулся на одну интересную браузерную игру на JS.

Управляем танком. Вид сверху. Игровое окно разделено на два крупных квадрата. Левый - поле с танком и различными препятствиями, правый - консоль команд.

Управление танком осуществлялось именно командами из консоли, на манер Colobot:

rotate(90);
move(3);
rotate(-90);
fire();
fire();
Нужно было забить правильную последовательность команд для достижения цели, с уничтожением и объездом препятствий.

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

Кто-нибудь видел такую?

 , , ,

deep-purple
()

Апач реврайтит урлкодированные ссылки в нижний регистр

Например есть ссылка: /Услуги

Урлкодировано она выглядит как: /%D0%A3%D1%81%D0%BB%D1%83%D0%B3%D0%B8

Апач её передает в пышечку уже в таком виде: /%d0%a3%d1%81%d0%bb%d1%83%d0%b3%d0%b8 а там роуты регистрозависимые, конечно можно впилить туда кейс-инсенситив, но это будут же дубликаты, сеошники взвоют.

Кстати с латиницей он так не делает, т.е. /TeStMe так и передается как /TeStMe

Что-то гугуль не дает вменяемых результатов. Кто с таким встречался? Куда копать?

 ,

deep-purple
()

ШГ

Что-то я тыкал тыкал шрифты, терминусы всякие, сансы, хз.. все не то.

Люди, кто какие шрифты юзает и в каком месте? Какие настройки сглаживания? Какой dpi?

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

 , ,

deep-purple
()

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