Статистика: Добавлено Nicknine — 26.04.2020, 19:31
Так и не выложил...Посадил исходники TF2 (и остальных игр) на последний Source SDK 2007 (исходники из старого SDK Launcher'а ). Игра нормально работает на Source SDK Base 2007. Завтра выложу архив.
Статистика: Добавлено Nicknine — 22.04.2020, 17:13
Статистика: Добавлено Union_of_Universes — 15.11.2019, 18:44
Статистика: Добавлено A.D — 17.02.2016, 22:28
Статистика: Добавлено strelkin7 — 16.11.2015, 17:31
Статистика: Добавлено strelkin7 — 12.11.2015, 16:13
kekПисал адамиксу вконтакт за архивом, ничего не ответил.
Статистика: Добавлено ogilouk — 07.11.2015, 19:14
CODE:
if (ui -> comboBox1 -> currentText() == "")
CODE:
QList <QComboBox *> m_ComboList;for (int i = 0; i < m_ComboList.count(); i++){ if (m_ComboList.at(i) -> currentText() == "")}
CODE:
QList<QComboBox *> allComboBox = findChildren<QComboBox *>(); for(int i = 0; i < allComboBox.size(); i++) { if (allComboBox[i] -> currentText() == "") { } }
Статистика: Добавлено kinders666 — 10.10.2015, 16:07
Тогда вот всё, что удалось нарыть по названиям депо:Не знаю как получить пока, не смотрел :(
Статистика: Добавлено wowks — 26.09.2015, 12:08
Статистика: Добавлено NiGHt-LEshiY — 25.09.2015, 19:15
Статистика: Добавлено wowks — 23.09.2015, 13:42
Статистика: Добавлено wowks — 18.09.2015, 16:55
CODE:
protoc -I=. --python_out=. ./manifest.proto
CODE:
./parse_manifest.py 1251_9033622738747915238.manifest
Статистика: Добавлено NiGHt-LEshiY — 16.09.2015, 21:01
Статистика: Добавлено MOZGIII — 16.09.2015, 18:23
Это проще будет, я такое в магистратуре писал, по набору (x, y) находилось зависимость между нимиВольфрам вон умеет в последовательностях искать закономерности и "угадывать", какое было бы следующее число в последовательности.
Статистика: Добавлено Pr0Ger — 16.09.2015, 16:36
CODE:
[syntax lang="c" lines="n"]#include <stdio.h>[/syntax]
Теоретически можно. Анализ энтропии и закономерностей очень поможет. Вольфрам вон умеет в последовательностях искать закономерности и "угадывать", какое было бы следующее число в последовательности.А иначе, как можно глядя на набор байт определить в нем структуру? может это вообще из /dev/random набор пришел
Статистика: Добавлено NiGHt-LEshiY — 16.09.2015, 16:18
вот спасибо! :)Вообще, вот ссылка на то как внутри работает протобаф
удобноу нас есть тэг для кода
Статистика: Добавлено wowks — 16.09.2015, 16:09
Статистика: Добавлено NiGHt-LEshiY — 16.09.2015, 15:30
Это там есть, всякие типа fixed32, fixed64, но обычно использование varint дает более компактный результатлучше бы тут была фиксированная структура, без этих множителей - просто инты(16, 32, 64)
Там на самом деле все просто, из байта старший бит значит нужно ли читать следующий байт, а остальные 7 значащие, потом просто собираем все значащие и обрабатываем их как обычное числода долго понимал, с калькулятором, пока не наткнулся на простую запись типа (остаток, инкремент = 2) и благодаря 2-1 вышел на 128.
потом долго зависал над 3-мя байтами (остаток, инкремент, инкремент_инкремента) пока не угадал = остаток + ( (инкремент+(инкремент_инкремента * 128))*128 )
На самом деле правильное решение. Суть в том, что обычно хранятся маленькие числа которые помещаются в 1-2 байта, получается много излишних нулей. Тут же их нету. А если семантически нужно хранить большие числа, то если fixed64, который всегда занимает ровно 8 байтВот опять странное решение. Запись 9-ю, 10-ю байтми числа, которое умещяется в 8-байт int64
Статистика: Добавлено Pr0Ger — 16.09.2015, 13:14
Статистика: Добавлено MOZGIII — 16.09.2015, 12:26
ну, нужно просто смотреть. Если что-то поменяют, то сравнить со старым и проанализировать.Собственно у тебя сделан парсинг протобафа в частном виде, который может сломаться когда они решат добавить пару полей в структуру, что не очень хорошо.
да долго понимал, с калькулятором, пока не наткнулся на простую запись типа (остаток, инкремент = 2) и благодаря 2-1 вышел на 128.Насчет того как парсишь значение размера, судя по всеми понимал сам и понял идею правильно
Вот опять странное решение. Запись 9-ю, 10-ю байтми числа, которое умещяется в 8-байт int64там кстати до 10 байт оно может быть (если записывать int64 в поле)
Статистика: Добавлено wowks — 16.09.2015, 11:46
Статистика: Добавлено Pr0Ger — 16.09.2015, 10:26
CODE:
d0 17 f6 71 - PAYLOAD idae 05 00 00 - размер PAYLOAD (не закодирован)0a 73 0a - размер текущего блока информации о файле (между двумя 0x0a)18 - длина строки 76 61 6c 76 65 5c 63 6c 5f 64 6c 6c 73 5c 63 6c 69 65 6e 74 2e 64 6c 6c - строка "valve\cl_dlls\client.dll"10 - байт конца строки80 bc 26 - закодированный размер файла. Его можно получить по формуле в коде ниже18 - разделитель00 - флаг типа файла. В данном случае "обычный файл"22 - разделитель 14 - предположительно размер sha1. Всегда равен 20 (в десятичом виде)b1 9f 9b 59 5d af 67 3f 05 6d 81 af 24 ce 09 5a 3b 99 f4 b4 - SHA1 строки "valve\cl_dlls\client.dll"2a 14 - разделительe8 76 2b 8d ac 01 15 fb e0 73 46 3a 9c b4 06 38 df 0b 07 7d - SHA1 файла. Если папка, то заполнен нулямипрочие данные32 25 0a 14 e8 76 2b 8d ac 0115 fb e0 73 46 3a 9c b4 06 38 df 0b 07 7d 15 8539 10 2c 18 00 20 80 bc 26 28 80 9d 0f 0a 75 0a1a 76 61 6c 76 65 5c 63 6c 5f 64 6c 6c 73 5c 636c 69 65 6e 74 2e 64 79 6c 69 62 10 b4 93 38 1800 22 14 ad 12 c2 d3 3d bc 52 42 47 2c 77 a8 9166 b7 c1 dc af 3f 10 2a 14 98 ce a8 c0 e2 d9 a5aa 22 f2 fb f6 cd 8f db 7f cb db 3a b4 32 25 0a14 98 ce a8 c0 e2 d9 a5 aa 22 f2 fb f6 cd 8f db7f cb db 3a b4 15 ba 91 9e 82 18 00 20 b4 93 3828 c0 9b 12
CODE:
be 12 48 1f - METADATA id2c 00 00 00 - размер METADATA 08 - разделитель 47 - depot id = 71 из "71_778444776426820105"10 - разделитель 89 a4 b7 c1 e5 ec e5 e6 0a - depot version = 778444776426820105 из "71_778444776426820105"18 - разделитель a7 ad 9e 91 05 - last update - Unix время20 - разделитель00 - булев значение filenames encrypted28 - разделительпрочие данные9d f3 b1 07 30 d0 c6 e2 02 38 13 40 fb e9 f1 a0 02 48 c8f0 b0 fc 04
Статистика: Добавлено wowks — 16.09.2015, 02:05
Статистика: Добавлено alexander444 — 29.08.2015, 13:39
Статистика: Добавлено MOZGIII — 02.08.2015, 10:35
теории индуктивных функций.
спасибо за информацию. Очень интересно!теория суперкомпиляции
Статистика: Добавлено wowks — 14.06.2015, 12:37
Конкретно этот пример можно "оптимизировать" засчёт использования теории индуктивных функций.вот если мне (только по пьяни) захочется посчитать сколько строк исходного кода ос линукс.
я в цикле пробегаю по всем каталогам и поочерёдно считываю текстовый файлы в память. тут оптимизировать почти нечего или нет смысла тк системные вызовы и прирост в скорости будет ничтожен. Далее по каждому файлу уже в памяти пробегаюсь функцией strchr и считаю переходы на новую строку, при этом опуская строки с комментариями и пустые строки.
В итоге ключевая функция это strchr и единственное что нужно оптимизировать для существенного прироста в скорости это её.
Да пример не очень хорош, тк всё будет и без оптимизации довольно таки быстро работать, и больше времени уйдёт на обращение к харду, чем подсчёт строк, но я хотел передать смысл.
Статистика: Добавлено MOZGIII — 13.06.2015, 23:47
CODE:
find . | xargs wc -l
Вот такой подход правильный, у меня в каждом проекте есть всякие Utils, которые просто оборачивают некоторые вызовы, которые делаются всегда с одинаковыми аргументами, типа вот такого:её я написал не потому-что мне не нравится fopen а потому что мне нужно при желании запретить доступ к файлу когда я работаю с ним и мне геморно каждый раз вызывать CreateFile и удобнее написать то что выше, где вызов упрощён.
CODE:
- (NSLayoutConstraint *)zz_horizontalCenterInSuperviewConstraint { return [NSLayoutConstraint constraintWithItem:self attribute:NSLayoutAttributeCenterX relatedBy:NSLayoutRelationEqual toItem:self.superview attribute:NSLayoutAttributeCenterX multiplier:1 constant:0];}
Но вот это вот не правильно: во первых функции стандартной библиотеки писались очень крутыми чуваками, которые понимают очень низкоуровневые нюансы на уровне того как процессор перемалывает внутри себя, которые порой вытекают в том, что на взгляд менее оптимальный код выполняется на железе быстрее, потому что казалось бы оптимальный код на самом деле сводит с ума branch prediction unit и все выполняется медленнее. Во вторых, компилятор знает про существование стандартной библиотеки, понимает её и может применять различные оптимизации исходя из этого знания.этим я хочу сказать что заморачиваюсь с оптимизацией только базовых функций которые вызываются часто и много где и их не так уж и много
Это вот кстати тоже, clang понимает код гораздо глубже и делает более оптимальный кодgcc компилером последней версии 4.8.3
Суть в том, что поверх него всего написана куча всего, что все равно не будет использовать эти кастомные функции и при этом может работать криво. Так что выигрыш/время ничтожно малте я теряю время сейчас на оптимизацию базовых и самых востребованных функций, которые используются почти в любой программе чтоб в перспективе это самое время (время выполнения) выиграть для всех программ которые надумаю писать.
Objective-C, подсказка была в названии функцииможно узнать что-за язык такой? Мне просто любопытно.
Статистика: Добавлено Pr0Ger — 10.06.2015, 11:09
можно узнать что-за язык такой? Мне просто любопытно.взять к примеру тот язык, на котором я пишу каждый день
Статистика: Добавлено wowks — 09.06.2015, 22:37
Наглядный пример того, ты потратил пару дней на то, что в реальной программе даст выигрыш по времени меньший чем погрешность измерения.результат: int_to_str(...) в два раза быстрее чем itostr(...) благодаря переменным в регистрах, сложению вместо деления, маленькому бинарному поиску в начале для определения количества символов результата и отсутствию цикла
Статистика: Добавлено Pr0Ger — 09.06.2015, 20:32
Статистика: Добавлено wowks — 09.06.2015, 19:17
Статистика: Добавлено Monk — 09.06.2015, 17:16
Статистика: Добавлено wowks — 09.06.2015, 14:16
Статистика: Добавлено $t@t!c_V()1D — 09.06.2015, 08:47
Статистика: Добавлено Yoti — 06.06.2015, 11:59
CODE:
size_t strlen(const char *str){ const char *s; for (s = str; *s; ++s); return (s - str);}
Статистика: Добавлено wowks — 31.05.2015, 01:54
Статистика: Добавлено Jameser — 19.04.2015, 14:11
Статистика: Добавлено MOZGIII — 09.04.2015, 09:11
Статистика: Добавлено shidow — 08.04.2015, 18:11
Статистика: Добавлено MOZGIII — 08.04.2015, 05:20
Расскажи как работает, как сделано.Что дальше?
Статистика: Добавлено shidow — 07.04.2015, 06:36
Статистика: Добавлено MOZGIII — 06.04.2015, 01:04
Статистика: Добавлено shidow — 05.04.2015, 18:02
Статистика: Добавлено Shlak — 31.03.2015, 11:37