LINUX.ORG.RU

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

 

Эдуард, верните пожалуйста свою старую аватарку

Форум — Talks

Блин, Eddy_Em, ну серьезно.
Я уже привык к твоим патлам и кругам под глазами. Да и другие уже привыкли.

Ну нафига этот финт с кои? Разжигаешь? ))

 

deep-purple
()

Записал я свой шлягер ))

Форум — Talks

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

Собсно, вот мой шлягер-фигагер: http://my-files.ru/eyvdm8.

А это процесс его создания: http://s28.postimg.org/ercrl8jjx/qtractor.png. Кстати, Гном 2, ориджинал.

Да, nihil, по этому тексту — он кривоват, получается только вторая половина, но без первой оно теряет смысл. В любом случае, как доковыряю — покажу что получилось. А на пока, вот, затравочку презентовал.

Думаю будет интересно для помогавших в решении проблемы с экспортом zezic, FoodFighter и lazyklimm.

Ну и конечно, как без главного фаната — Rastafarra. Как говорится — получите, распишитесь.

А линукс тут притом, что на нём и записано.

 , , ,

deep-purple
()

Решил затестить qtractor на выхах, а тут воно как

Форум — Multimedia

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

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

Что, придется колдовать с джек-сервером/вирт шинами в альсе или паять лупбек из двух миниджеков? Карта самая топорная, какойто говнореалтек, в альсамиксере низзя поставить капчур с микса. Увы..

 , , , ,

deep-purple
()

Опять из серии «Ероша»

Форум — Talks

ДС. Еду значица сейчас в метро.
Смотрю — ходит молодая парочка по вагону с какой-то картонной надписью.
Доходят до меня. Практически тычат в лицо этой картонкой. Ни слова не говорят.

Спрашиваю — Что-то интересное?
Отвечают — Читайте.

Читаю. Не дословно, но смысл передам: «Помогите студентам из Санкт-Петербурга, хотим ночевать в хостеле..»

-- Сколько времени Вы хотите тут пробыть таким образом?
-- Неделю.
-- А сколько уже пробыли?
-- Полторы недели.
-- Ого. А какими судьбами тут?
-- В отпуске. Но кошелёк потеряли.
-- А чего домой не едете?
-- Так отпуск же.
-- Не верю. Удачи.

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

А вообще это что — реинкарнация таблички «Дайте бабло на бухло», или флешмоб какой-то? Я видел далее — денег им давали.

 , , ,

deep-purple
()

Шлейфы ? Плоские шины?

Форум — Science & Engineering

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

Какие у них характеристики? Сопротивление? Падение напряжения? Технология изготовления? Ну и самое главное — где купить?

 

deep-purple
()

CSRF-токен костыль?

Форум — Web-development

Не буду углубляться что есть CSRF. Кто в теме, тот знает.

Сабж вот в чем. Обычно везде в формах или ссылках пихают токен защиты. Мол, токена нет, или он не валидный — не буду ничо делать.

Ага. Но есть ли смысл в этом токене? Ведь достаточно проверить реферер (домен и внутренний путь предыдущей страницы). Например:

http://domain.tld/admin/users/remove?id=22
Достаточно проверить что реферер был таким (псевдо-регулярка в конце):
http://domain.tld/admin/users(\?page=\d+)?
Т.е. удаление (в данном примере — пользака) возможно только со страницы просмотра списка пользаков.

А что касается угона кук и подделки реферера — это, извините, уже не CSRF, а ССЗБ, раз твои данные уже угнали.

Дискас!

 , , ,

deep-purple
()

А вы говорите — сайты плохие..

Форум — Talks

 , ,

deep-purple
()

«Ероша», Позорище, СтрелкИ и туалетные удобства

Форум — Talks

Чего только не случается пока едешь на работу. И вот, сегодня, наслучалось. Дабы не забыть - запечатлею.

Картина маслом раз:

Еду значт в метро, стою. Передо мной сидит парниша. Волосы у него аки пакля на вид, взъерошенные. Там же, на пучке его сена нахлобучены наушники. Называются «V-moda», оть, даже пруф имеется: http://v-moda.com/headphones/ И все бы хорошо, да он их, так приодел, что читалось оно по русски, а еще и фантазия разыгралась: http://s14.postimg.org/c1h65s44x/V_Moda_Crossfade_M_100_White_Silver_35512458...

Картина маслом два:

Еду в метро дальше. Дед читает сегодняшнюю(?, пруфа не будет, картинко не нагуглилось) газету «Метро». Заголовок такой: «Сорок лет назад дети умерли от жевачки». Я деду говорю - позорище же - даже до газет уже неучи добрались. Всякие у них жЕвачки. Не хватает еще жИвачки и жУвачки.

Картина маслом три:

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

Картина маслом четыре:

В этой истории правда только то, что в наш мужской туалет приходит какая-то тётка мыть свои чайно-кофейные кружки. Остальное я выдумал. Ну, поехали..

Захожу я в наш общественный туалет. Смотрю - тётка кружку намывает.

- Что вы делаете в мужском туалете? - Кружку мОю. - Так идите в женский мыть. - А мне в этот ходить ближе. - Мне тоже в женский ближе, но я туда не хожу. При вас даже в голос не пёрнуть. Вам самой то не стыдно? - Что Вы себе позволяете? Еще и учить меня будете? Я Вас старше! - Вам в лучшем случае требуется психолог, в худшем - психиатр.

В меня летит кружка, уворачиваюсь. Делаю ББПЕ леща по уху и выталкиваю тётку за шкибот из туалета. Проходит секунд тридцать. Я уже сижу на троне в одной из кабинок. Слышу как с грохотом распахивается дверь.

- Эй мужик! - Где мужик? - Ты о****?

И начинает ломиться в мою кабинку. Я говорю - Щас в 112 позвоню - узнаем кто тут чего ел. Звоню, говорю - приезжайте скорее, человеку спокойно посрать не дают. Чего хотят? Понятия не имею. Кто это? Да, судя по поведению, это какой-то Оскар по фамилии Блятель.

Кароч, устал я писАть, и работать надо )) Допишу позже, если ссылка редактирования еще не пропадет.

З.Ы.: Добавьте тег «туалет».

 , , ,

deep-purple
()

Меня доконала эта помойка (*.mp3)

Форум — Development

Для всех:

Если ты не работал руками (апи либ не в счет) с *.mp3 форматом — проходи мимо. Однако, если будет нормальная мысль - я весь внимание.

Для тех кто «в теме»:

Всякие ID3, LYRICS, AiD и прочую шелуху я скипнул.

И вот, парсю mp3-фреймы. Если ориентироваться на позиции sync-word-ов (ессно проверяю и все остальные данные в этих 4-х чарах) найденных в файле, то, можно вычислить размер каждого фрейма. Ага, я то вычисляю, но, эти размеры, а равно и их позиции, а равно и общее кол-во фреймов, не совпадает с тем кол-вом фреймов найденных libmp3lime (mad я пока не пробовал, надо будет поковырять).

Есь такая формула:

if (!header->layer) {
    header->frame_size = (size_t) (((12000 * header->bitrate / header->samplerate) + header->padding_bit) * 4);
} else {
    header->frame_size = (size_t) ((144000 * header->bitrate / header->samplerate) + header->padding_bit);
}

Но она выдает размеры (300-8000 байт) не равные ни тому что я напарсил по синк-вордам, ни тому что напарсил libmp3lime.

А вот еще интересно, libmp3lime имеет в своем апи ф-цию «hip_decode1()» она, как написано, должна принимать на вход ОДИН мп3-фрейм, но, эксперименты дали понять, что ей вообще похер, что ты туда пихаешь, лишь бы не менее ~1200 байт, т.е. читай из файла и все.

Но мне то надо обрыскать весь файл и узнать точное число RAW-PCM фреймов закодированных в мп3.

Недавно видел тут в новостях про какой-то плеер чот тип того: «более-точное определение длительности мп3-трека», я смотрю, не один я с этой херней совладать не могу )))

UPD: А, да, кратко по проблеме. Кто подскажет где скопипастить:

1) правильную формулу вычисления длины мп3-фрейма. 2) правильный алгоритм выпарса и валидации этих самых фреймов.

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

 , ,

deep-purple
()

В какой прожке можно вменяемо набросать план дома?

Форум — General

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

Вот тогда надо наверное подумать за дом. Она уже давно лазит, ищет готовые решения, но там все - не то.

Щас вот предложил ей набросать свой план дома, чтоб было там все как самим хочется, и посчитать в какие сумму/сроки оно встанет.

Ну а конечная цель - либо она меня уломает, либо я докажу несостоятельность всей этой идеи.

Посоветуйте прогу, пожалуйста. Под онтоп конечно же.

 , ,

deep-purple
()

Все просто ))

Форум — Talks

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

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

// value can be: a,b,c,d,e,f or g
myLongLongNameOfVariable = getName();
if (myLongLongNameOfVariable == 'a' || myLongLongNameOfVariable == 'b' || myLongLongNameOfVariable == 'c' || myLongLongNameOfVariable == 'd' || myLongLongNameOfVariable == 'e' || myLongLongNameOfVariable == 'f') {
    forAllNonDefault();
    if (myLongLongNameOfVariable == 'a') {
        forA();
    } else if (myLongLongNameOfVariable == 'b') {
        forB();
    } else if (myLongLongNameOfVariable == 'c') {
        forC();
    } else if (myLongLongNameOfVariable == 'd') {
        forD();
    } else if (myLongLongNameOfVariable == 'e') {
        forE();
    } else if (myLongLongNameOfVariable == 'f') {
        forF();
    }
} else {
    // last (here 'g') value context (default)
    forDefault();
}

Ваши предложения?

 ,

deep-purple
()

Миграция на новую структуру БД

Форум — Web-development

Вопрос касается только SQL. Есть две сущности: проекты и шаблоны.

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

Там две таблицы:

projects -> id, title, template_id
templates -> id, title

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

Теперь нужны три таблицы:

new_projects -> id, title, current_template_id
new_templates -> id, title (, old_id)
new_projects_templates -> project_id, template_id

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

Вот запрос втыкающий «размноженный» результат в новую табулю шаблонов:

SET @cnt := 0;
INSERT INTO new_templates (
    SELECT
            (@cnt := @cnt + 1) id,
            sub.title,
            sub.old_id
        FROM (
            SELECT
                    t.title,
                    t.id old_id
                FROM templates t
                LEFT JOIN projects p
                    ON p.template_id = t.id
                WHERE p.id IS NOT NULL -- кастыль для шаблонов без привязки к проектам
                ORDER BY t.id ASC -- чтобы вставка была в старом порядке создания шаблонов
        ) sub
);
Ну а теперь никак не сообразу как запилить еще два шага: 2) вставка проектов в новую таблицу проектов с корректной привязкой к шаблону. 3) вставка в таблицу связи проекты-шаблоны.

Вот так выглядит попытка тестовой выборки:

-- счетчик не сброшен
-- в нем максимальный айдишник после вставки
-- теперь декрементируем его
SELECT
    (@cnt := @cnt - 1),
    p.id      project_id,
    nt.old_id nt_old_id,
    nt.id     nt_id
    FROM projects p -- из старой таблицы проектов
    LEFT JOIN new_templates nt -- из новой таблицы шаблонов
        ON nt.id = @cnt
Естессно выдает он полную хрень. Как правильно то запилить?

 , ,

deep-purple
()

Кто сломал кодировку?

Форум — Linux-org-ru

Звиняйте, но, какой мудадяй это сделал:

http://s17.postimg.org/dqpm2en73/charset.png

 ,

deep-purple
()

Хрень творится с вимом

Форум — General

Есть в вимрц такое:

" New vertical split
map <Home> :vsp<cr><C-w>l<esc>:e ./<cr>
imap <Home> <esc>:vsp<cr><C-w>l<esc>:e ./<cr>

" New horizontal split
map <End> :sp<cr><C-w>j<esc>:e ./<cr>
imap <End> <esc>:sp<cr><C-w>j<esc>:e ./<cr>

Вот этот <esc> перед :e ./ я добавил тока что, думал поможет.

Так вот, открываю я какой-либо файл. Затем открываю вертикальный сплит, хожу спокойно вверх-вниз по списку, и, ИНОГДА, в 50% случаев, при нажатии на энтер по выбранной директории (м.б. переход на уровень выше или провалиться внутрь) навигация в этом сплите соскакивает в какой-либо открытый левее сплит, причем гасит там номера строк и выдает такой статус внизу: «directoryname [Not edited][readonly] 10 lines --100%-- » где 10 lines это позиция (10 строка) директории в просмотре ":e", хотя курсор уже переброшен в какой-то из левее расположенных сплитов. Да, перескакивает всегда в разный, может в соседний ближайший, а может и в самый левый сплит.

Что за хрень?

 ,

deep-purple
()

Модели данных

Форум — Development

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

 	ILP32 	LP64 	LLP64 	ILP64
char 	8 	8 	8 	8
short 	16 	16 	16 	16
int 	32 	32 	32 	64
long 	32 	64 	32 	64
long long 	64 	64 	64 	64
size_t 	32 	64 	64 	64
pointer 	32 	64 	64 	64

Один чел мне говорит «Проверяй, если инт 8 байт, то юзай шорт». Однако, педивикии говорят что ляликс юзает LP64, а оффтоп LLP64, не понимаю где чел встретил ILP64 (или какую-то другую?).

Растолкуйте от чего отталкиваться? Какие модели данных надо учесть хотябы для самых распространенных случаев?

В самом идеале, конечно, свою прилагу я предполагаю запускать на линукс/фря/оффтоп 32/64. Вопрос вообще возник от того, что читаю бинарку из файла, и там может быть BE, а может быть LE byte order, плюс еще размер самих типов, и надо как-то это все перелопачивать под то, на чем я запущен в конкретный момент.

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

 

deep-purple
()

Многопоточное приложение

Форум — Development

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

Вот, я перехватываю сигналы, например SIGINT. Кроме сигналов есть т.н. неисправимые ошибки в процессе выполнения.

При перехвате сигнала или появлении какой либо неисправимой ошибки я дергаю shutdown() завершение проги. Там все закрывается и освобождается.

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

Собственно я сделал как. При старте проги получаю в (main контексте) thread_main = pthread_self() и устанавливаю threads_err = 0 Тогда в той части которая генерирует ошибку я проверяю в каком контексте она была вызвана (pthread_self() != thread_main), если это не в родительском main-потоке, то устанавливаю threads_err = 1 а цикл в main следит за состоянием этой переменной, и если ошибка есть, то вызывает shutdown()

Кажется мне, что это ГК. Или все же это нормальная практика? Нет? А как правильно?

 , , ,

deep-purple
()

Копирасты, mp3, libmp3lame, libmad

Форум — Development

Что-то я прошляпил. Есть какие-то подводные камни при использовании этих либ или самого формата в своем поделии?

Пока конечно только ковыряю, внедряю. Да, будет опенсорсный GPL v.3. Именно за несрастуху с лицензиями я и хотел бы уточнить.

Это вообще типа не обязательная опция, просто для поддержки формата, но хотелось бы её включить. С ворбисом та насколько я знаю все в поряде в этом плане.

 ,

deep-purple
()

Поясните за структуры

Форум — Development

Так собирается:

typedef struct {
    int a;
    int b;
} foo;
static struct {
    int x;
    foo **foos;
} bar;
А так ние:
static struct {
    int a;
    int b;
} foo;
static struct {
    int x;
    foo **foos;
} bar;
Причем ругается уже ниже, в такой строке: bar.foos = NULL;

error: ‘struct <anonymous>’ has no member named ‘foos

Почему?

 , ,

deep-purple
()

Как корректно освободить ресурсы snd_pcm?

Форум — Development

Простой пример:

#include <alsa/asoundlib.h>

int
main()
{
    snd_pcm_t *dev;

    snd_pcm_open(&dev, "default", SND_PCM_STREAM_PLAYBACK, 0);
    snd_pcm_close(dev);

    return 0;
}

Валгринд такой:

==20334== LEAK SUMMARY:
==20334==    definitely lost: 0 bytes in 0 blocks
==20334==    indirectly lost: 0 bytes in 0 blocks
==20334==      possibly lost: 65,525 bytes in 2,020 blocks
==20334==    still reachable: 298 bytes in 6 blocks
==20334==         suppressed: 0 bytes in 0 blocks
==20334== Reachable blocks (those to which a pointer was found) are not shown.
==20334== To see them, rerun with: --leak-check=full --show-reachable=yes
==20334== 
==20334== ERROR SUMMARY: 116 errors from 116 contexts (suppressed: 4 from 4)
--20334-- 
--20334-- used_suppression:      2 dl-hack3-cond-1
--20334-- used_suppression:      2 glibc-2.5.x-on-SUSE-10.2-(PPC)-2a
==20334== 
==20334== ERROR SUMMARY: 116 errors from 116 contexts (suppressed: 4 from 4)
Без вызова snd_pcm_close() имеем 117 errors from 117 contexts.

Эти ошибки реально мешают тестировать свой говнокод.

UPD:

Т.к. это все продолжение вот этого: Как правильно запилить звуковой буфер с кроссфейдером? то кастану наверное снова waker и i-rinat там помогли понять что к чему и тут можт помогут.

 , , ,

deep-purple
()

Где почитать HOWTO по реализации (circular/ring) буфера?

Форум — Development

Нужно именно про буфер с несколькими «читателями»

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

Сам я додумываю только что должно как-то определяться по последнему, самому медленному читателю. Тогда не только пишущий поток должен ориентироваться на позицию чтения самого медленного, но и остальные читатели должны «не торопитьтся». Верно ли?

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

 ,

deep-purple
()

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