Ускорил матчинг с правилами из AdBlock+ в два раза (с секунды до 400-550 миллисекунд) за счет замены QString::toLocal8Bit() на QString::toLatin1(). Воистину, не занимайтесь преждевременной оптимизацией — профайлер все равно потом удивит.
Итого суммарное ускорение в три раза.
А еще адблок в личкрафтах наконец-то научился сокрытию элементов.
Webkit — говнище. Если при загрузке фрейма была ошибка, то фрейм в DOM-дереве родительского фрейма на самом деле будет присутствовать, но найти его будет нельзя, в списке всех web element'ов его не будет, и вообще хуй его из дома выгон^W удалишь.
Путем еще всяких хитровыебнутых оптимизаций снизил суммарное время обработки правил на главной rutracker.org'а до 150-170 миллисекунд.
Итого суммарное ускорение на порядок.
Профайлеры котики.
Чят, у FF'ского AdBlock+ есть возможность указывать применимость правил только к отдельным типам контента — вроде картинок, стилей и т. п. Хотелось бы эти вещи поддерживать.
Проблема в том, что в момент HTTP-запроса, когда его еще можно отменить, тип данных, к которым происходит запрос, неизвестен. Что делать?
1. ... more →
Заоптимизировал представление фильтров в CleanWeb в памяти, и с полутора секунд время обработки упало до секунды. Неговно.
Заимплементировал параллельную реализацию, и на моем i7 матчинг в 8 потоков вместо одного дал всего 20% прироста. Говно какое-то.
В общем, оказалось, что прогон фильтров cleanweb'а с easylist на главной рутрекера занимает 1300-1400 миллисекунд на моем i7. Ни в какие ворота не годится, пойду оптимизировать.
Скажите, фанаты не-костылей и юниксвея, как в этом вашем cut вырезать два последних байта из каждой строки?
С новым C++0x можно писать просто охуительнейшие вещи. [] () {} (); фигня, когда есть
decltype (expected) copy (expected);
Осилил собрать личкрафты под макось нативным clang'ом из xcode, а не gcc из всяких там портов. Для этого, правда, пришлось легонько патчить кути и буст.
Осилил также собрать бандл, чтобы оно при этом после сборки еще и запускалось и не сегфолтило.
Совершенно не понимаю, зачем наследоваться от QLineEdit, чтобы сделать эту няшненькую черную кнопочку стирания текста в лайнэдите, если можно обойтись таким няшненьким ... more →
Мне всегда было интересно, а почему бы разработчикам браузеров самим не разработать свою операционку, вбухать в это миллиарды, не раскрутить её и не сувать свой браузер по дефолту, без возможности установки других, что им мешает, чего они ноют как дети малые.
Отправил свой первый pull request. Homebrew, да → https://github.com/mxcl/homebrew/pull/15...
XCode — говнище ебаное. QtCreator на маке полущ будет на порядок.
Шланг, включенный в XCode 4.4.1, падает от сборки простейшего файла с -Wall: http://codepad.org/hgQZxIS7
Без -Wall собирается на ура.
Boardwalk Empire s03e01! Да это же просто праздник какой-то!
Чят, у тебя тут есть продвинутые гей^W мак-разработчики? Мне нужно задать несколько вопросов — например, как определить, что мак собирается поспать, или как сделать эту кнопку справа сверху на рамке окна, которая выносит окно в отдельный воркспейс.
Заходил с утра на Яндекс.Маркет с мака, показало цену в 18 тыщ рублей на SGSIII. Зашел щас с прыщей — 17500 с копейками.
Чиним баг на продакшене. Насяльника в Америке, я здесь в ДС, общаемся по скайпу с гарнитурой.
— Понял, чиню... Пушнул.
— Жду... Да, хуки вызвались, пересобираю... Деплой... Готово.
— Перезапускаем.
— Проверяю... Да, работает, развернулось. отлично.
И все тихим спокойным полушепотом. Чувствую себя как в каком-то ... more →
А вообще, в этом вашем маке даже простенький профайлер искаропки есть. Неплохо, жить можно http://dump.bitcheese.net/images/akivyly...
Судя по тестам, с точки зрения работы от батарей HTC One X сливает SGSIII только так. Пойду куплю SGSIII.
Чят, как лучше? http://dump.bitcheese.net/images/ucasezo... или http://dump.bitcheese.net/images/umohoxe... ?
На всяких fullhd второй вариант тоже вполне ок: http://dump.bitcheese.net/images/uwilana...
А вообще QML котик, конечно. Можно делать такие биндинги:
width: Math.min(height, sourceSize.width * height / sourceSize.height)
и все будет работать само, ширина, с которой рендерится картинка, будет нужной и правильной всегда.