Хм... а в чем тогда состоит задача? Если работает по ssh и Вы ловите нажатия из VM, что мешает передавать их дальше хоть в блокнот, хоть прямиком в буфер клавиатуры???
Aleksej: смотрите на список "видимых" АР и с которым из них ассоциирован планшет в момент возникновения на нем проблем. Если моё предположение верно, он будет упорно висеть на каком-нибудь еле-еле видимом вместо того, чтоб переключиться на ближайший. У меня была такая ситуация в продакшене, вылечилось заменой АР. Как промежуточное решение - апп, контролирующая это дело со стороны планшета, но это отвратительный костыль.
Aleksej: планшеты, очевидно, плохо поддерживают или явно саботируют роуминг, остаются висеть на АР с дохлым RSSI, вместо того, чтоб переассоциироваться с ближайшим. Обращайтесь к тому, кто разворачивал wifi и требуйте решить проблему, но учтите, что решение может свестись к замене планшетов :(
В более менее навороченых устройствах используют связку из ASM/C (для real time кусков) и C++ для более высокоуровневой логики и GUI. Вопрос экономии байтов возникает только в миниатюрных ULV девайсах, т.к. в бОльших устройствах без жесткого бюджета по питанию камни изначально выбираются с запасом, из стратегических соображений. Экономия нескольких десятков центов даже при стотысячных партиях - ничто по сравнению с расходами на усложнение разработки и последующей поддержки.
Сергей: Очень зачетный ссыль! Там все просто великолепно разложено по полочкам и очень верно подмечено, что непонимание разницы является причиной хренового дизайна большого количества фреймворков.
Строго говоря, потом "взять и сменить", запрещает сама изначальная лицензия, если только она действительно OSS. Однако, есть ряд лицензий, не запрещающих на базе того, что остается OSS, делать другой продукт, который продавать под любой другой лицензией и не открывать его код.
Еще одно маленькое дополнение: если в процессе набора команды нажать табуляцию, шелл может выполнить т.н. автодополнение строки, т.е. если уже написано "gi", он может дополнить строку до "git ". В общем и целом шелл сканирует все возможные варианты в данном контексте, и если такой вариант только один, он его использует, а если больше, предлагает все на выбор. В Линуксе после этого можно продолжить писать и еще раз нажать табуляцию, и если настроен соотв. скрипт автодополнения этой конкретной команды, будут также подставлены или предложены на выбор дальнейшие возможные опции и т.д. Вся эта кухня очень гибко и модулярно настраивается и в первую очередь благодаря этой фиче все так любят линуксовскую консоль. В виндовом PowerShell (начиная, кажется, с 3 версии) реализовано нечто подобное, но ощутимо более убого. Для Bинды подробнее можно глянуть например тут ( www.powershellmagazine.com/2012/11/29/using-custom... ) или гуглить по словам: powershell autocompletion / tab completion.
Японский Городовой: Ну, у кого быдлокод, у того таки и падают. Однако, не нужно обобщать. MISRA - это вам, извините, не выдумки досужих ламеров, хотя, кстати, и не стандарт, а правила (изначально) автопрома, адаптированные другими производителями критических систем. И лично я предпочитаю ездить на машинах, в которых они соблюдаются, чем философствовать на тему... чего и всем искренне желаю :)
Rubikoid: То, что кажется интуитивно "понятным" на уровне логики, может в ассемблере выглядеть совершенно неузнаваемо, благодаря оптимизациям компилятора. Иногда даже найти проверку того самого "простого" условия - задачка нетривиальная. Так что, или сами разбирайтесь, или обратитесь к кому-нибудь за помощью, т.к. иного пути, кроме изучения/понимания ассемблера тут нет :(
Вот IDA PRO как раз и нужно ковырять. В простом варианте найти проверку условия и изменить его, чуть более продвинуто - реверснуть всю логику (ну, и переписать ее на нужном языке).
"С++ - это язык среднего уровня..."
Перестаньте вводить людей в заблуждение самовыдуманной терминологией! Оба языка - ЯВУ, а "среднего" - такого вообще нет. Термин "Язык высокого уровня" означает в первую очередь непривязанность конструкций языка к набору инструкций конкретной машины, что достигается большим количеством слоев абстракции (отсюда "высота" уровня, на котором определены конструкции языка). "Низкого", в свою очередь, означает максимально приближенного к конкретной машине, т.е. грубо говоря, ассемблер конкретного процессора. А кроме того, само это понятие вообще относительно. Например, байткод / CIL, можно считать "низкоуровневым" по отношению к VM (JVM или .NET Runtime), и одновременно "высокоуровневым" по отношению к конкретному процессору.
Therapyx: Хм... настоящая боль - это когда они потом приходят на работу и падают в обморок от слов "регистр" или "шина"... и их приходится учить всему с самого начала :)
Илья Балабанов: Не, дружище, сорри... обман преподавателей негативно сказывается на карме как самого обманщика, так и пособников :)
Сделай покупателя не Runable а простым DTO. Сделай Runable, запрашивающий новый экземпляр покупателя с фабрики и "обрабатывающий" его, а если покупатели закончились (фабрика вернула null) - завершающийся. Сделай синхронизированную фабрику покупателей, которая произведет их нужное количество. А потом тупо запости runable в 21 потоке. Они сами более-менее рандомно разберут то количество покупателей, которое успеют. Как-то так.
"Rechnerarchitektur, 5 CP" Это, вероятно, один семинар... и эти люди будут программировать самолеты, лифты и АЭС. Жить становится все страшнее и страшнее :(