Попробуйте поотлаживать гонки в мало-мальски крупном асинхронном многопоточном приложении потоков на 10, в котором разные люди писали взаимодействующие части. Как сел утром, так и встал вечером в пустом офисе, без обеда. Никакие осознанные сны не нужны, т.к. возникают настолько сложные, с множеством деталей и глубокой вложенности версии, как возникает гонка, что, честное слово, уходишь в глубокий астрал.
пишут, что ~0 не обязательно эквивалентен всем единичным битам в двоичном представлении
1) ~0 инвертирует все биты, если отрицательные числа хранятся на целевой машине в дополнительном коде (см. вики). Однако, может быть и по-другому: как пишет автор ответа, в обратном коде получится ноль (-0=1111...1, ~-0=0).
2) Ситуация с ~0u не зависит от представления отрицательных чисел. Однако, если long длиннее, чем int, при присваивании unsigned long = ~0u левая часть числа останется с носом нулями.
Я считаю, что open source сообщество разделилось на два лагеря: в одном приверженцы GPL без надежды на коммерческое применение, в другом BSD, MIT, Apache с софтверными компаниями. Вторая группа вынуждена переизобретать все то, что было написано первой. Примеров можно привести много: binutils vs elftoolchain, gcc vs clang, etc.
Если бы не NDA, подробно бы обосрал описал недостатки Tizen, а так ограничусь общеизвестными фактами:
1)Native development kit сейчас по сути отсутствует, его подобие GBS годится только на расширение существующих пакетов в системе. Это фейл, который надо бы исправить в первую очередь, однако
2)Качество кода самой системы так себе, на троечку. Формально все работает, но ошибок вроде RW доступа в память Exynos там еще встретится много. Лично мне за такой код было бы стыдно. Здесь имеются в виду Tizen C API, которые наши польские коллеги обернули в JS для HTML5 API. Качество кода самой обертки лучше, впрочем и там наворотили встречаются велосипеды на С++.
Базовая архитектура стандартнее чем у андроида (glibc вместо bionic под капотом), однако уровнем выше получилось как-то по-своему, не как у других. По-корейски, одним словом.
Надо заметить, что Tizen очень активно сейчас пилится. Не одной тысячей (!) людей. Субъективно, 99% исходников опенсорсного Tizen написаны самсунговцами. Я затрудняюсь указать, в чем заключается участие Intel в Tizen.
BeagleBone мне кажется более привлекательным в плане роботостроения, хоть и стоит он больше. Есть куча готовых специализированных плат расширения например. И линаро делает по-моему официальные билды убунты под него.
По поводу аппаратного сжатия — нужно поставить спец плагины для gstreamer, использующие аппаратный DSP от BCM2835. Их нужно искать на профильных сайтах/форумах, в стандартный убунтовский пакет их по понятным причинам не включают.
По поводу веб-камеры, один из наиболее простых (но не дешевых) вариантов решения этой проблемы — обзавестись Logitech C920 или другой камерой со сжатием в h264 внутри. Youness Alaoui как раз закончил пилить плагин для таких камер (см. здесь), и он отлично работает в 0.10 ветке (замечу что в LTS 10.04 gstreamer стоит немного старше чем нужно для сборки, его надо руками обновить/пересобрать). Этот трюк с камерой спасает в случае борды без hardware DSP, например beaglebone. Или с говно-DSP с убогим h264 кодировщиком.
Все бюджетные камеры должны уметь выдавать mjpeg поток, который врубается в капсах. Чтобы это проверить, v4l2-ctl в помощь. Дерзайте :)
По поводу компиляторов, поделюсь гордостью за соотечественников. В Институте системного программирования РАН после выхода Itanium оптимизировали GCC под него. В т.ч. оптимизировали планировщик команд, который по сути ключ к оптимальному использованию 6-ти команд за такт. Так вот умные люди подшаманили его так, что прирост производительности на тестах был в разы (!). Дипломы защищались, диссертации. В общем, Win был у института)
Москва и прилегающая область на OpenStreetMap нарисована значительно лучше Гугла и Яндекса (сравните например Долгопрудный, я его лично год довожу до ума). Так что сильно жду
которую я убрал в комментарий. Обновляю статью. Спасибо, все интереснее оказалось.
1) ~0 инвертирует все биты, если отрицательные числа хранятся на целевой машине в дополнительном коде (см. вики). Однако, может быть и по-другому: как пишет автор ответа, в обратном коде получится ноль (-0=1111...1, ~-0=0).
2) Ситуация с ~0u не зависит от представления отрицательных чисел. Однако, если long длиннее, чем int, при присваивании unsigned long = ~0u левая часть числа останется
с носомнулями.sudo apt-get install g++-arm-linux-gnueabihf
Если поковыряться в пакетах то можно даже найти разные версии GCC.
(c00.c)
обосралописал недостатки Tizen, а так ограничусь общеизвестными фактами:1)Native development kit сейчас по сути отсутствует, его подобие GBS годится только на расширение существующих пакетов в системе. Это фейл, который надо бы исправить в первую очередь, однако
2)Качество кода самой системы так себе, на троечку. Формально все работает, но ошибок вроде RW доступа в память Exynos там еще встретится много. Лично мне за такой код было бы стыдно. Здесь имеются в виду Tizen C API, которые наши польские коллеги обернули в JS для HTML5 API. Качество кода самой обертки лучше, впрочем и там
наворотиливстречаются велосипеды на С++.Базовая архитектура стандартнее чем у андроида (glibc вместо bionic под капотом), однако уровнем выше получилось как-то по-своему, не как у других. По-корейски, одним словом.
Надо заметить, что Tizen очень активно сейчас пилится. Не одной тысячей (!) людей. Субъективно, 99% исходников опенсорсного Tizen написаны самсунговцами. Я затрудняюсь указать, в чем заключается участие Intel в Tizen.
По поводу веб-камеры, один из наиболее простых (но не дешевых) вариантов решения этой проблемы — обзавестись Logitech C920 или другой камерой со сжатием в h264 внутри. Youness Alaoui как раз закончил пилить плагин для таких камер (см. здесь), и он отлично работает в 0.10 ветке (замечу что в LTS 10.04 gstreamer стоит немного старше чем нужно для сборки, его надо руками обновить/пересобрать). Этот трюк с камерой спасает в случае борды без hardware DSP, например beaglebone. Или с говно-DSP с убогим h264 кодировщиком.
Все бюджетные камеры должны уметь выдавать mjpeg поток, который врубается в капсах. Чтобы это проверить, v4l2-ctl в помощь. Дерзайте :)
-I feel myself bad today, I won't come today.