Home
Журнал Пушыстого
 
[Most Recent Entries] [Calendar View] [Friends]

Below are the 20 most recent journal entries recorded in Пушыстый's LiveJournal:

    [ << Previous 20 ]
    Friday, October 10th, 2008
    2:31 pm
    http://bash.org.ru/quote/399915


    (спасибо [info]drontik за оригинальный фон)
    Wednesday, October 8th, 2008
    3:52 pm
    "SELECT * FROM mytable WHERE I'M FEELING LUCKY"
    2:03 pm
    Осень... Красивая тёплая рыжая осень...
    Sunday, October 5th, 2008
    4:22 pm
    ZDXT.
    Провёл эксперимент, насколько лучше жмётся zlib-ом DXT1 из DDS, если разделить цвета от индексов. Получилось, что лучше на 10%, мне такое не очень интересно (надо писать быстрый код на C, причем допонительно для DXT2-5, и очень подробно разбираться с сюрфейсами и заголовком внутри DDS).
    Если у кого-то это -10% времени чтения с DVD и типа очень важно, то вот быстронаписаный говноскрипт который проводит подсчёты.
    Вообще на моих тестовых картинках zlib уменьшает размер DXT1 в полтора раза, вот это несложно и представляет интерес.
    Wednesday, October 1st, 2008
    11:17 am
    Когда GUI - это хорошо:

    1) слайдеры/ползунки
    2) выбор цвета
    3) рисование и моделирование, просмотр частот звука (скроллинг, зум, режимы), ....

    Для комбобоксов, edit-боксов, radio-buttons, tree view - GUI это зло. Добавление галочки превращается в борьбу с GUI-фреймворком и с дизайном (в обоих смыслах, и с дизайном кода, и с подгоном положения кнопочек).

    Используя текстовые файлы там где можно обойтись (удобным, не обязательно xml) текстом, получаем забесплатно:
    undo, redo, save, load, внятный diff, copy - paste (и копирование из прототипа), search и replace, букмарки, дешёвое изменение структуры формата и добавление новых фичей ...

    Последнего пункта увы нет вообще в схеме "GUI над сериализованым XML". Остальное - как повезёт. Может будет удобно влезть в сейв текстовым редактором, а может нет.

    Хочется:
    текст +
    интерактивная подсказка/автокомплит (что бы не лазить в документацию за списком элементов "комбобокса") +
    хитрые элеметы прямо в тексте для управления тем, что в тексте редактировать неудобно (цвет и тп). +
    интерактивное превью результата.
    То есть, GUI используется только там, где оно по делу.

    Пост родился после борьбы с .NET-ным Property Grid, который якобы на автомате умеет рожать GUI для произвольной структуры в коде.
    Враньё. После обучения и получения опыта - получаем полуавтомат, и всё равно неудобный. Если вы имели дело с настройкой десятка проектов в .sln из VS, у вас не было ощущения что вы делаете какие-то лишние движения мышкой?
    Tuesday, September 30th, 2008
    9:01 pm
    Пришла мысль: когда преподаватели программирования в вузах (не)замечают списывание программ - это на самом деле обучение скиллу нарушения GPL-лицензий и проприетарных NDA.
    Monday, September 22nd, 2008
    1:04 am
    Есть у меня старый IDE винт, по каким-то причинам Убунта/Debian его не могут опознать, подвисают при загрузке. Забавно, что будучи запущенными в виртуальной машине под Windows, они легко живут на этом же физическом жестком диске, в файле host OS.
    Есть статья у Спольски, про "протечки абстракций". Тут как-то наоборот - "абстракции-герметики".
    Friday, September 19th, 2008
    10:11 pm
    Програмисты (или менеджеры-заказчики) системы заказов в утконосе идиоты дважды

    Идиотизм 1: Продукты на online!-сайте нельзя заказать после 23.00. Не, понятно что им надо взять всякое на складах до определённого момента. Но они ж сделали так, что покупатели не могут заказать и запомнить на сайте свой заказ.

    Идиотизм 2: время на сайте берётся локальное, на моём компьютере. Как в случае если оно спешит, так и в случае если оно отстаёт - возможны неприятные ошибки. В первом случае - локально джава-скрипт показывает, что заказать уже нельзя, во втором случае - думаешь что успел, но сервер отказал.

    Ну и по мелочи - продукты в длинных чеках видимо сортируются по хеш-функции или указателям, а не по алфавиту/цене или ещё по чему-то такому, по чему можно ориентироваться.
    Thursday, September 11th, 2008
    10:06 pm
    ... crash-course in PowerPC assembler ...
    Wednesday, September 10th, 2008
    2:37 pm
    if {}{}{}{}{}
    ИМХО по стилю кодирования: вместо того что бы насаждать обязательное использование фигурных скобок в if { } else { } даже если в ветвлениях только одна инструкция - лучше делать так, что бы почти всегда фигурные скобки были не нужны. То есть, вместо
    if (...)
    { 
      простыня_кода1
    } 
    else 
    { 
      простыня_кода2
    }
    

    стараться писать
    if (...)
      do_something1();
    else  
      do_something2();
    


    Всякие "а мы захотим ещё добавить команду" - а добавляйте в do_something ;)

    Мысль написать об этом возникла когда увидел в семпле вот такое - Read more... )

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

    интересно, сколько людей сейчас кинется комментировать "надо писать на языке без фигурных скобок"
    Monday, September 8th, 2008
    6:47 pm
    Wiiiiii !
    Сейчас на новом месте работы кодаю под игровую приставку Wii. Я довольно давно тусовался на irc рядом с "приставочными" ребятами, поэтому поводы для удивления возникают редко, но, несмотря на это, испытал два культурных шока.

    1) Смотрю в код. Вижу, при старте игры загружается из файла текстурка. Ну, ok. Но! На каждом кадре! Она "загружается" из обычной void* памяти в видеокарту. Потом пришло осознание, что загрузки нет, просто "обычная" и видео-память совмещены. А "установка" текстуры - это не протаскивание через графический API и AGP массива данных, а просто установка регистра. В дальнейшем уже чуть меньше удивил тот факт, что перед загрузкой текстуры если не сбросить кеш основного процессора, то видеопроцессор не увидит кусков текстуры.

    2) Добавил в проект библиотеку. Вызвал функцию инициализации. Начало падать при старте. До моего кода. Оказалось, эта библиотека чуть-чуть увеличила размер executable-файла, ровно настолько, что бы не хватило памяти при инициализации memmanager. Писишники бы офигели.

    PS. А ещё тут со мной работает Алёна C++ ^^'
    Thursday, August 28th, 2008
    11:24 pm
    http://faceted-jacinth.livejournal.com/

    Про людей, программирование, математику, философию, лытрдыбр в очень интересной смеси %)
    Как жалко что сегодня не успею всё прочитать :)

    «Кстати, эта теория возникла из любопытного мысленного эксперимента: возьмём две точных копии меня и засунем в падающий самолёт, положив между ними единственный парашют. Подерутся, сцуки, потому что их матрицы выгодности неравны (хоть и эквивалентны относительно симметричной перестановки строк и столбцов)».
    Wednesday, August 20th, 2008
    4:21 pm
    меньше сравнений!
    Если пишете какой-то свой часто вызывающийся operator[] у самописного контейнера, то имеет смысл упростить в нём проверку границ:

    Было скажем вот так:
    T &operator()(int x, int y)
    {
      assert(x >= 0 && x < m_Width && y >= 0 && y < m_Height);
      return m_pData[y*m_Width + x];
    }
    

    А можно вот так:
    T &operator()(int x, int y)
    {
      assert((unsigned)x < (unsigned)m_Width && (unsigned)y < (unsigned)m_Height);
      return m_pData[y*m_Width + x];
    }
    


    Можно сразу писать unsigned/size_t в параметрах функции, но часто это невозможно из-за предупреждений компилятора или по историческим причинам и правилам перегрузки функций.
    Спорить "это неочевидно/тебе разве важна скорость в дебаге" не надо, возражения на возражения на возражения и случаи когда необходимо/вредно придумайте сами. Противоположное, "Это же баян и очевидно" - увы, не для всех.
    Saturday, August 16th, 2008
    2:20 am
    История: автоматика vs ручной труд.
    Помню надо было где-то в двадцати файлах сделать замену в каждом в трёх-пяти местах по тексту из других файлов (по файлам из переводчика).

    Я начал писать скрипт, на что начальник заявил "не занимайся ****ёй, я руками быстрей сделаю".

    Результаты:
    1) мы кончили одновременно (за десять минут)
    2) сравнение результатов показало, что у нас у обоих ошибки. У меня (в скрипте) молчаливо сломалось из-за переноса строки в неправильном месте в файле от переводчика, у него - случайная копипаст ошибка.
    Friday, August 15th, 2008
    1:50 am
    Разделение функций
    Придумал рульную вещь: MicroSD-карточка со встроенным bluetooth. Тогда можно было выбросить кучу проводов даже для уже существующих гаджетов (мобильники, фотоаппараты и тп). И появилось бы много новых интересных и простых способов работы с ними, дав автоматическую "беспроводность" всем аппаратам с SD-карточками.

    Ых, жалко пока такого нет.
    Thursday, August 14th, 2008
    3:20 pm
    Используем боевую девелоперскую технику в мирной жизни
    Кодирование музыки чо-то тормозит. А у меня - четырёх-ядерный процессор. Не беда, пишем Makefile:

    WAVFILES := $(wildcard *.wav)
    OGGFILES := $(WAVFILES:.wav=.ogg)
    
    all: $(OGGFILES)
    
    %.ogg: %.wav
    	oggenc -Q --quality 5 "$^"
    


    запускаем make -j 4 и всё ускоряется.

    ЗЫ.
    Увы, юникодные имена с пробелами и кавычками сломали всю малину, и сделали всё некрасивым, поверх make пришлось навернуть мощную переназывалку файлов. Наверное, если руками распараллелить import threading+import Queue, то было бы не особо длинней, а может даже короче.
    http://www.everfall.com/paste/id.php?vt15nmmfhtpp
    Wednesday, August 13th, 2008
    6:34 am
    cuesplit.py
    Сильно проапргрейдил вчерашний вариант скрипта, который по cue распиливает на wav. Брать здесь.
    Теперь он пытается по умолчанию всякое угадывать, подсказывать, и позволять задавать из командной строки.

    Увы, случайный виндовый пользователь скорее всего не будет иметь в %PATH% sox. Можно подложить его и прямо рядом со скриптом, берётся он с http://sox.sourceforge.net

    Если надо распилить APE или TTA файл - то скрипт намекнёт что хорошо бы иметь MonkeyAudio или mplayer соответственно, либо самому создать wav и указать его. flac кушается без проблем при помощи sox в одиночку.

    updated:
    Похоже, уже есть бесплатная гламурная тулза под винду. Ух, почему же я на неё позавчера не наткнулся. Medieval CUE Splitter.

    А вот ещё пачка тулзов для работы со звуком, на все случаи жизни: http://websound.ru/soft-utils_r.htm
    Tuesday, August 12th, 2008
    4:11 pm
    парсинг образов cd-музыки в cue
    Написал глупый скрипт расщепления музыки в cue+образ CD на питоне, вдруг кому-то ещё пригодится как основа для своих потребностей. На входе - out.wav, на выходе - пачка треков в wav, для вытаскивания используется sox. Мой cue был в непотребной кодировке, поэтому сохраняется в 00.wav, 01.wav и тд. Вам вполне возможно будет удобней добавить в скрипт также вытаскивание имён треков. Или тут же на месте - пережатие в ogg/flac/mp3 без временных файлов. Или вытаскивание имени образа CD прямо из CUE и автоматизация распаковки/оптимизация временных файлов. И тп, и тд.
    http://www.everfall.com/paste/id.php?84f1fykdb1qi

    До конвертации - надо всякие образ CD ape, tta, flac превратить в wav, после - отдельные треки в mp3, ogg (использую для себя), flac. Как в aac (.m4a) - не знаю, наверное mencoder может, не интересовался.

    note по тому, как бороться с музыкой в странных форматах, которые прилагаются к cue, скорее для себя:
    ape, tta, flac -> wav:
    Read more... )
    Monday, August 11th, 2008
    9:42 pm
    графиком RURUSD


    http://bash.org.ru/quote/391925 :
    «У нашего центробанка огромные валютные резрвы и неограниченное право на эмиссию, он может слово "ХУЙ" графиком RURUSD написать, не то что держать курс на любой понравившейся цифре»

    Кстати, кредиты на покупку бытовой техники/автомобилей мне всегда казались очень странной штукой (когда не ради острой необходимости, а ради статуса).

    updatedPS. Возможно, было не ясно как связаны эти две фразы. Я просто наткнулся на некоторое количество сообщений в блогах "У блин кредит в долларах, блииин".
    Sunday, August 10th, 2008
    6:51 pm
    Луговский?
    http://haladdin.livejournal.com/45025.html?thread=329441#t329441 - интересно, здесь Аноним ведёт дискуссию в стиле Луговского. "Вам дать определение хамства?".
[ << Previous 20 ]
About LiveJournal.com