Не юзал матлаб на Линуксе.
Попробуйте стандартные варианты:
1.В поиске (это там где кнопка "пуск" у убунты) наберите matlab, возможно он достаточно сообразительный и прописался в оболочке убунты.
2.В папке куда вы его установили ищите что-нибудь типа bin/matlab, bin64/matlab
Странный выбор для "Junior Front-end developer".
Если просто для изучения то почему не Postgre или MySQL?
Вообще теория для любой РСУБД одна и та же, язык SQL примерно один и тот же, но процедурные расширения у каждой РСУБД свои, наборы встроенных функций свои, инструментарий свой и т.д. и т.п. Но в целом все более или менее похоже, т.к. выполняют одни и теже функции.
AlexSer, Не работал с последовательными портами из Qt, специфики не знаю.
Какой критерий завершения readAll()? Видимо конец данных (конец файла, закрытие канала связи, получение какого-то спец.символа означающего конец потока и т.п.). Специфика последовательного порта в том, что если устройство на том конце отвалится, то вы никогда об этом не узнаете, т.к. там нет как такового конца данных и закрытия потока, поэтому readAll() скорее всего не завершится никогда.
Используйте обычный read с буфером фиксированного размера.
далее записать данные в буфер, отправить полный пакет на обработку, произвести обнуление и снова прием.
Это наиболее простой в реализации и часто используемый вариант, но не самый оптимальный в плане производительности и потребления памяти.
Оптимальный вариант - это делать потоковый анализ полученных данных, т.е. вы получили какой-то блок данных и сразу отправляете его обработчику. Обработчик должен быть написан исходя из того, что:
1.один полный пакет может состоять из нескольких блоков данных, т.е. обработчик между вызовами должен сохранять состояние
2.в каждом конкретном блоке данных может не быть начала или конца пакета.
3.после получения признака конца пакета в блоке данных могут содержаться данные следующего пакета
Подобным образом, например реализуют HTTP парсеры. Можно посмотреть пример тут.
AlexSer, В вашей программе вам не нужно переводить в HEX. Про шестнадцатиричную систему я упомянул лишь потому, что там удобней смотреть поток байт глазами, для того что бы вы сами для себя выяснили какой набор символов в данной железке является разделителем строк. Как писал Владимир Коротенко в ответе, есть несколько вариантов общепринятых разделителей. Можно, конечно, ловить их все, но зачем.
То же самое можно сделать открыв документацию по протоколу, там наверняка описаны используемые разделители.
есть разделяющие символы "0D 0A 0D 0A 0D 0A"
В вашем примере 3 подряд идущих разделителя строки, а это визуально 2 пустые строки.
Для одной пустой строки, разделителей будет 2, т.е.: "0D 0A 0D 0A". Это при условии, что разделителем строк является CRLF, как в винде.
Дмитрий Ляпун, В качестве "А" можете начать со сборника статей на хабре "Сети для самых маленьких". Несмотря на название статьи очень не плохие. Но только я сомневаюсь, что в вашей ситуации вам именно подобное "А" нужно.
Еще раз повторюсь: технологий много, что конкретно вам нужно никто не знает.
Я предложил вариант с ВПН для организации доступа через инет к домашнему компу. Какой трафик вы будете гонять через ВПН - значения не имеет.
Лично я никогда не встречал для себя туториала от А до Я.
Вы начните с настройки сервера и клиента ВПН, будут конкретные вопросы можете задавать здесь.
ru6ak, Кабель цельный. Качества кабеля ... трудно сказать, обычный 5e без экрана, на нем тогда вся сеть была. На мой взгляд приличный кабель. Кабель втыкался с обеих сторон в шлюз на FreeBSD, вот на нем и переставлял адаптеры.
Кстати, кабель я тогда отдельно тестировал, т.к. сразу подозрение пало именно на кабель. Кабельного тестера у меня не было, поэтому тестировал обычным тестером попарно закоротив жилы на одном конце.
Из той истории сделал для себя вывод, что на таких (предельных) дистанциях начинают уже играть роль какие-то второстепенные вещи, на которые обычно внимания не обращаешь, типа производителя сетевого адаптера или качества кабеля и проч.
С тех пор на ответственные участки всегда стараюсь ставить интелы чего и всем желаю.
ru6ak, Забыл упомянуть. На риалтеках и марвеле сеть поднималась, но только 100 Мб/с и в каких-то сочетаниях даже это работало не стабильно, т.е. сеть отваливалась или переключалась на half duplex.
Но нужен был гигабит.
ru6ak, Вам, похоже , повезло больше чем мне.
Информация из собственного опыта. Расстояние было чуть больше 100 м.
Конкретные модели сейчас не скажу, т.к. давно уже не занимаюсь той сетью. Тестировал несколько вариантов риалтеков и что-то из марвела. На интеле поднялось без проблем.
Да, а есть ли где-то полная инструкция на настройку всего?
Чего всего? У каждого свое понятие "всего". Вряд ли вы найдете полную инструкцию по настройке вашего всего. Но инструкций по настройке отдельно взятых компонент из вашего набора найдете пачку.
Настроив OpenVPN и подключив клиент к серверу вы получите 2 компьютера в одной виртуальной защищенной локальной сети. Остальное настраивайте так как вам нужно. ssh, удаленный раб.стол, NFS и т.д. и т.п. и все это будет работать через ВПН по шифрованному каналу, так что про безопасность в остальном ПО уже можно особо не беспокоится.
Если будут конкретные вопросы по настройке отдельных компонент, можете задавать здесь.
Видимо вы не ту половину гугла листали. Инструкций полно. Начинайте изучать оставшуюся половину.
Укажите какая ОС стоит домашнем компе.
Я бы предложил вам настроить на домашнем компе ВПН сервер, пробросите порт для ВПН на роутере, на ноуте настроите ВПН клиент. Хорошо, если на роутере будет статический белый IP.
А дальше все что угодно через ВПН соединение.
В качестве ВПН рекомендую OpenVPN - есть версии под любую ОС, куча инструкций по настройке.
AlexSer, Если не знаете какой конкретно разделитель строк используется, то просто воспользуйтесь любой универсально программой, умеющей работать с COM портом. Можно сохранить вывод в файл и посмотреть в HEX редакторе, или в самой программе, если она позволяет смотреть полученную информацию в шестнадцатеричном виде. Когда в выводе обнаружится 2 идущих подряд разделителя строки - это и есть конец пакета.
На счет контрольной суммы - обычно в инструкции к устройству приводят или сам алгоритм (часто приводят сразу Си код), либо указывают какой из стандартных вариантов контрольных сумм используется.
Антон Швец, В libuv асинхронность реализована разными способами. Используется оптимальный для конкретной ОС. В Линукс это epoll, во FreeBSD - kqueue, в винде - iocp ...
На сколько я знаю, асинхронный файловый ввод/вывод в libuv реализован с помощью потоков, т.е. в потоках используются обычные блокирующие операции. Но для ноды все асинхронно.
bakdurak, Ответ на ваш вопрос содержится в приведенной вами цитате.
Из вашего поста не ясно от кого вы пытаетесь шифроваться.
Судя по тексту от Гугла и Мозилы. А теперь ответьте себе на вопрос - вы действительно делаете что-то такое, что может заинтересовать эти две компании?
На мой взгляд вы не правильно оцениваете риски. Составьте себе портрет потенциального взломщика и защищайтесь от него.
Если бы мне нужно было удаленно работать какую-то мега секретную работу, то я бы организовал ВПН в конторе, там же выделил комп для удаленного подключения к его раб.столу и через ВПН подключался бы к нему. Работал бы исключительно на этом компе используя домашний только для подключения к ВПН и запуска удаленного раб.стола. В таком режиме работы ваш вопрос автоматически снимается.
Так же вариант с виртуалкой вполне не плох. Связать, конечно можно, но для этого надо вас целенаправленно взламывать. Обычно есть пути дешевле и проще, не связанные с интернетом и компьютерами.
DWZ, Либо они сами собирают не в студии, а из командной строки, используя другой набор параметров компилятора, а не тот что задан в предоставляемом проекте. Выглядит, конечно, довольно странно.
Попробуйте стандартные варианты:
1.В поиске (это там где кнопка "пуск" у убунты) наберите matlab, возможно он достаточно сообразительный и прописался в оболочке убунты.
2.В папке куда вы его установили ищите что-нибудь типа bin/matlab, bin64/matlab