Objective-c живее всех живых. Работа с сырой памятью в swifte это сплошной ад. Все низкоуровневые либы и драйвера и даже ядро mac/ios на objective-c/c++. Эта история напоминает холивар rust <-> c в linux, где тоже пытаются сишку хоронить.
Основная проблема в том что все жалуются на паскаль или си в школе или вузе. Потом "продвинутые" преподы по всяким js,python,swift и подкладывают свинью. Просто перестали изучать преобразование типов, битовые операции, арифметику с дробями и т.д.
Дано(псевдокод) переменные a и b это допустимый пользовательский ввод var a = 30
var b = -1.3
var d = a&b так чему должно быть равно d и в каком языке??
можно, но с одним исключением - делить надо в 16-ричной системе. например в десятичной 10 * 10 = 100 => 100 / 10 = 10 в шестнадцетиричной A * A = 64 => 64 / A = A . мы все учили в школе таблицу умножения в десятичной системе, но умножение и деление в других системах счисления надо проводить иначе. для ручного быстрого перевода используют методы из статьи.
Эту задачу про тележку явно не инженеры придумали, а эффективные менеджеры. Там всё неправильно ибо надо с самого начала закладывать защиту от дураков и резервные системы, если у нас низкая надёжность блоков.
Но попробуем решить хоть как-то. Суть задачи: Отказала система тормозов. У нас на дороге 2 препятствия. Варианты: - Отключить разгон. Может хоть как-то уменьшит скорость. - Если есть возможность сворачиваем в другую строну от препятствий. - Пробуем сдать назад чтобы сбросить скорость. - На крайний случай жертвуем водителем. Если этот дурак не проверил свою систему до поездки ему и нести отвественность. Пешеходы в этом не виноваты.
P.S. Если бы авиация развивалась подобным способом, то мы бы до сих пор ездили поездами.
Не поможет. Человеку с подозрением на заражение достаточно пройти рядом с вашим домом, а потом доказывайте что вы были в помещении и у вас окна закрыты.
Это не вагон а труповозка. Любому сердечнику станет плохо уже через пару часов в этом гробу. У вас там нет ни вентиляции, ни терморегуляции. Даже не называйте ту пипирку в стене — вентиляцией. Человек должен хоть как-то сидеть в вагоне или иметь возможность, ноги будут затекать.
Купите своим дизайнерам билет на лето от Краснодара до Владивостока и обратно на верхнюю полку плацкартного вагона. Пусть пару недель покатаются по стране и это будет идеальный урок как делать не стоит.
К сожалению вы путаете понятие интернет пространства и пространства вашего города.
Пиковые часы в интернете соответствуют часовым поясам, а не пробкам на дорогах.
Пока вы не работаете за компом его можно зашарить для кого-то в другом часовом поясе.
ImageReader действильно тормозит и подходит больше для снятие фоток, а не видео-стрима.
Есть небольшой хак чтоб брать текстуру из самой превьюшки. Главное, после получения текстуры, обрабатывать её в другом потоке.
Вырезка из рабочего кода для видео-потока + превью:
все как обычно по статье создаём TextureView и надо добавить callback
@Override
public void onSurfaceTextureUpdated(SurfaceTexture texture) {
long time = System.currentTimeMillis();
Bitmap b = Bitmap.createBitmap(1920,1080,Bitmap.Config.ARGB_8888)
b = mTextureView.getBitmap(b);
int[] pixels = new int[b.getByteCount()];
b.getPixels(pixels,0,1920,0,0,1920,1080);
imageProcessStream.pushImage(pixels,time/1000L);
}
Даже копипастом сделать такое нереально за 4 минуты.
Код дан кусками и вам придётся несколько раз копировать.
Код в блокноте не запустится сам. Вам надо развернуть окружение чтоб скомпилить код. Возможно потребуется починить зависимости/пути или установить библиотеку/фреймворк.
Вероятно с первого раза не всё заработает как надо и автор упустил какие-то детали.
Да здесь всё логично. Компилятор не телепат и незнает ничего о ваших потоках. Ему нет дела когда ваш поток исполниться.
Так что можно спокойно пройтись по коду функции main и сократить код.
у вас в коде переменные выставляются в дефолное сосотояние
int x = 0;
дальше перед циклом идёт присваивание адреса
ptr = &x;
Учитывая что *ptr не изменяется в теле цикла — значит условие цикла это константное выражение и можно упростить.
Objective-c живее всех живых. Работа с сырой памятью в swifte это сплошной ад. Все низкоуровневые либы и драйвера и даже ядро mac/ios на objective-c/c++.
Эта история напоминает холивар rust <-> c в linux, где тоже пытаются сишку хоронить.
Основная проблема в том что все жалуются на паскаль или си в школе или вузе. Потом "продвинутые" преподы по всяким js,python,swift и подкладывают свинью. Просто перестали изучать преобразование типов, битовые операции, арифметику с дробями и т.д.
Дано(псевдокод)
переменные a и b это допустимый пользовательский ввод
var a = 30
var b = -1.3
var d = a&b
так чему должно быть равно d и в каком языке??
можно, но с одним исключением - делить надо в 16-ричной системе.
например
в десятичной 10 * 10 = 100 => 100 / 10 = 10
в шестнадцетиричной A * A = 64 => 64 / A = A .
мы все учили в школе таблицу умножения в десятичной системе, но умножение и деление в других системах счисления надо проводить иначе.
для ручного быстрого перевода используют методы из статьи.
Эту задачу про тележку явно не инженеры придумали, а эффективные менеджеры. Там всё неправильно ибо надо с самого начала закладывать защиту от дураков и резервные системы, если у нас низкая надёжность блоков.
Но попробуем решить хоть как-то.
Суть задачи:
Отказала система тормозов. У нас на дороге 2 препятствия.
Варианты:
- Отключить разгон. Может хоть как-то уменьшит скорость.
- Если есть возможность сворачиваем в другую строну от препятствий.
- Пробуем сдать назад чтобы сбросить скорость.
- На крайний случай жертвуем водителем. Если этот дурак не проверил свою систему до поездки ему и нести отвественность. Пешеходы в этом не виноваты.
P.S. Если бы авиация развивалась подобным способом, то мы бы до сих пор ездили поездами.
message_len = FormatLogMessageForDisplay
вызывается дважды в коде до malloc и после.wmessage_buflen
там 3 присваивания :1)
int wmessage_buflen = countof(wbuf) - 1; // wmessage_buflen==511
2)wmessage_buflen = message_len; //если message_len<=0 то сюда точно не дойдёт
3)wmessage_buflen = MultiByteToWideChar
так зачем нужна проверка после
MultiByteToWideChar
, если по документации не может вернуть отрицательное число или 0?в куске кода как минимум 2 потенциальные утечки
на 512 и более байт:
и 2048 и более байт:
Судя по всему это какой-то отладочный логгер и для больших проектов это может быть проблемой.
Не густо ...
Вообще-то Steam принимает карты МИР.
Видимо они не хотят светиться в политсраче.
вот рабочие ссылки из генту репозитория
сам файл с бинарником
окно выбора типа загрузки
А откуда они знают что пользователи заклеивают?
Купите своим дизайнерам билет на лето от Краснодара до Владивостока и обратно на верхнюю полку плацкартного вагона. Пусть пару недель покатаются по стране и это будет идеальный урок как делать не стоит.
Пиковые часы в интернете соответствуют часовым поясам, а не пробкам на дорогах.
Пока вы не работаете за компом его можно зашарить для кого-то в другом часовом поясе.
Есть небольшой хак чтоб брать текстуру из самой превьюшки. Главное, после получения текстуры, обрабатывать её в другом потоке.
Вырезка из рабочего кода для видео-потока + превью:
все как обычно по статье создаём TextureView и надо добавить callback
дальше в самом callback
Код дан кусками и вам придётся несколько раз копировать.
Код в блокноте не запустится сам. Вам надо развернуть окружение чтоб скомпилить код. Возможно потребуется починить зависимости/пути или установить библиотеку/фреймворк.
Вероятно с первого раза не всё заработает как надо и автор упустил какие-то детали.
Так что можно спокойно пройтись по коду функции main и сократить код.
у вас в коде переменные выставляются в дефолное сосотояние
дальше перед циклом идёт присваивание адреса
Учитывая что *ptr не изменяется в теле цикла — значит условие цикла это константное выражение и можно упростить.
Поэтому цикл превращается в