Задать вопрос
  • Java на уровне железа, отличия от C++?

    gbg
    @gbg Куратор тега C++
    Любые ответы на любые вопросы
    Авторы надеялись, что к железу можно будет обращаться с помощью абстракций - производитель железа у себя реализует java-машину, а уж сверху нее можно запускать прикладной код.

    Вы забываете о большом пласте истории техники, который был сильно до этого - 8 битные домашние ЭВМ (десятки их) и язык Бейсик.

    Так вот, ЭВМ того времени были катастрофически разными - разные носители (кассеты, дискеты, картриджи), разная аппаратура (засунуть еще один центральный процессор в дисковод? да нивапрос! разная скорость для PAL и NTSC версий - легко!). Но вот бейсик был везде и позволял, с некоторыми переделками, таскать программы с машины на машину.

    Таким образом, авторы находились в этом историческом контексте (у них все детство прошло в обнимку с каким-нибудь VIC-20). Тут уже становится логичным желание сотворить то же самое, только круче - берем современный язык, стандартизируем синтаксис - и делаем аналогично - производитель железа предоставляет нам Java-машину с нужным уровнем абстракции - и все программы бегают с архитектуры на архитектуру без переделок.

    Отчасти, это сработало на старых мобилках, в эпоху j2me - это как раз Java, засунутая в телефон - игры, браузеры, карты (были даже ЯндексКарты), читалки, чатилки - куча всего.

    Еще один виток эволюции, которые вы, видимо, не застали - (чорд, я - стар, я очень стар) - попытки сотворить интерактивные веб страницы.
    "У нас же есть всюду переносимая Java - давайте влупим ее поддержку в браузер в виде апплетов - небольших приложений". Тут резко активировались вирусописатели и прочий сброд - благодаря развесистой и дырявой архитектуре, апплеты могли творить всякую дичь.

    Сейчас апплет на java можно встретить во всяком старом железе, на нем там сделано GUI для удаленного администрирования серверов, коммутаторов и СХД. Вы браузером заходите на железку, и тут на вас вываливается ворох предупреждений о том, что сейчас будет запущено какое-то ужасное дырявое ПО, держите штаны, а то слетят. Уверены? Точно уверены? А с этим согласны? А так?

    А уже потом начали активно применять JavaScript, главным образом, изобретя Ajax - продолжая люто натягивать сову (систему для создания электронных библиотек для ученых/HTML) на глобус (задачу создания интерактивного гуя с красивой версткой).

    И это вы еще бэк на Perle не рефакторили
    Ответ написан
    2 комментария
  • Как грамотно повысить отказоустойчивость WEB приложения?

    @Karpion
    Две СУБД можно запустить в режиме "мастер+мастер" с автоматической синхронизацией. Два Web-приложения - тогда должны обращаться каждый к своей СУБД и не хранить никаких данных кроме как в СУБД. Как-то так.
    Ответ написан
    4 комментария
  • Где изучить устройство и архитектуру одноплатных пк/микропроцессорной техники?

    @evgeniy_lm
    Хочу изучить устройство одноплатных компьютеров и в идеале получить необходимые скилы для создания собственных микропроцессорных устройств. На сколько все это реально для одного человека?

    Более чем реально.

    Ближайшая хотелка создание платы контроллера для робота с обработкой видеосигнала / передачи видеосигнала по воздуху с разрешением hd/fhd.

    Судя по вашему вопросу (уровню подготовки) "хотелку" придется отложить очень далеко.

    Встречал статьи где с простейшими камерами работали stm'ки.

    Можно и STM, но с raspberry будет проще

    Как мне кажется, стоит разобраться для начала с устройством и работой какой-нибудь малинки и проекта по сильно упрощенной ее версии.

    Можно и так, но мой сорокалетний опыт подсказывает, что вам стоит начать с чего нибудь попроще, например, Arduino.

    Каким набором навыков, знаний нужно обладать для создания подобных вундервафель?

    Знать нужно основы автоматики, электроники, программирования, алгоритмы обработки данных

    Так же куда более насущной проблемой мне видится закупка необходимых элементов по типу какого нибудь брудкома или микросхем озу 1/2/4гб для физ. лица в единичных количествах.

    Для начала найдите какой нибудь набор Arduino с большим количеством датчиков. Позже тот же набор можно использовать совместно с Raspberry
    Ответ написан
    6 комментариев
  • С# стоимость приведения типа?

    AlexanderYudakov
    @AlexanderYudakov
    C#, 1С, Android, TypeScript
    Говорят, стоимость высокая.
    https://switch-case.ru/73228064
    Ответ написан
    2 комментария
  • Есть ли смысл ставить Linux, если локального админа на Винде легко взломать?

    @stratosmi
    Есть ли смысл в таком случае ставить Linux? Чтобы не так просто и не так легко было взломать локального админа.

    1) На Linux локального админа взломать еще проще.
    2) Странные у вас критерии. А что, используемое прикладное ПО (на Windows и Linux оно разное) - значения не имеет? Вы эксплуатируете только одну голую ОС?
    Ответ написан
    Комментировать
  • Как дать белый IP, linux на VirtualBox?

    @pfg21
    ex-турист
    не расписано как выдается белый ип хостовой системе, да и вообще условия
    1. если есть возможность управлять выдачей белых ип, то на виртуалбоксе настроить мост между гостем и сетью в которой возможно получение белого ип и связать мак-адрес гостевой сетевухи с белым ип.
    2. если белый ип один и привязан к хосту, то в виртуалбоксе настроить режим NAT для гостя и пробросить нужные порты гостю.
    можно еще пару вариантов придумать но надо знать условия места.
    Ответ написан
    Комментировать
  • Как конвертировать/сохранить Unicode в UTF8?

    Melkij
    @Melkij
    DBA Team для вашего PostgreSQL?
    Раз уж собираете URL вручную, то хоть следуйте стандарту. Параметры должны быть urlencoded. В js для этого есть encodeURIComponent
    Ответ написан
    Комментировать
  • Удалить байты из файла без его полной перезаписи можно только с конца?

    mindtester
    @mindtester Куратор тега Windows
    http://iczin.su/hexagram_48
    философски все классно.. а где примеры C# кода то?
    мне не известен способ, без перезаписи файла (если ОС умеет оптимизировать - хвала ей upd но.. назовите ее )))
    а базовый набор инфы, к примеру тут - https://metanit.com/sharp/tutorial/5.4.php

    ps в современных компах, при размерах файла в считанные мегабайты - это все мелочи

    pps
    - нужна синхронизация по блокам/кластерам, в теории - да, нет проблем, вот только не C#

    ppps
    в лучшем случае это будут вызовы api системы, но тогда повторюсь - примеры в студию, и я присоединюсь к аплодисментам
    Ответ написан
  • Минимальная допустимая температура для эксплуатации ПК?

    Jump
    @Jump Куратор тега Системное администрирование
    Системный администратор со стажем.
    Работает и при -30 вполне нормально.
    Но есть нюансы.
    • При определенных условиях возможно образование конденсата - а это замыкание со всеми вытекающими.
    • Механика вроде жестких дисков не очень любит сильные перепады температур.
    • Электролитические конденсаторы менее эффективно работают при низких температурах, в итоге возможны проблемы с питанием.

    Эксплуатировать можно, но осторожно.. Главное избегать условий при которых может образоваться конденсат, и по возможности не охлаждать очень сильно.
    Ответ написан
    Комментировать
  • Как на 32-битной платформе в переменную типа intptr_t может влезть максимальный адрес ссылки?

    @Mercury13
    Программист на «си с крестами» и не только
    зачем нужно было вообще вводить intptr_t если есть uintptr_t, в который адрес точно влезет?

    intptr_t — разность двух адресов.

    И, более того, как в ЗНАКОВУЮ переменную типа intptr_t можно поместить 32-битный адрес памяти, если в этом числе 1 бит уходит на знак, а для данных остаётся 31 бит?

    Учите матчасть — как действует дополнительный код, почему машинные целые изображают в виде круга и почему знаковое и беззнаковое сложение выполняется одними и теми же операциями add/sub. В общем, данные записываются во все 32 бита. И в знаковый тоже.

    как может БЕЗЗНАКОВОЕ число равняться числу СО ЗНАКОМ?

    А вот сравнивать их — ошибка, и не зря большинство компиляторов выводит предупреждение. Оба надо перевести либо в unsigned, либо в signed, либо в более крупный знаковый целый тип.
    Ответ написан
    2 комментария
  • Как злоумышленник может использовать ssh, подключившись к нему?

    gbg
    @gbg
    Любые ответы на любые вопросы
    Все. В том числе, воспользоваться дырами и поднять себе привилегии до суперпользователя.
    Ответ написан
    Комментировать
  • Как из одной формы управлять прогресс-баром в другой?

    devspec
    @devspec
    Помогло? Отметь решением
    Можно сделать через делегаты или события. Красивее через события.
    https://stackoverflow.com/questions/977326/propaga...
    Ответ написан
    Комментировать
  • Как сделать счетчик просмотров страниц +1 на каждую страницу отдельно?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Для начала, использовать вместо файла базу данных. Затем либо смотреть на referer запроса, но в браузере можно отключить его отправку, либо с каждой страницы посылать запрос с уникальным ID страницы.
    Ответ написан
    1 комментарий
  • Как происходит линковка приложений?

    @res2001
    Developer, ex-admin
    1.обычно у каждого компилятора свой runtime. Для VC - это разные версии msvcrt.dll.
    2.Читайте на сайте разработчика компилятора. В основном это не сильно принципиально, разве что вы используете какие-то специфические плюшки, которые не описаны в стандарте, но есть в конкретном компиляторе и его стандартной библиотеке.
    3.runtime - это как правило стандартная библиотека + точка входа и завершения программы (а ваш main вызывается уже из runtime).
    4.Можно. Обычно стандартная библиотека поставляется как в виде динамической библиотеки, так и статической. Выбор какую использовать за вами, задается опциями компилятора.
    5.Не большой. Но тут лучше говорить не про оверхед, а про "написание программы на чистом" WinAPI/POSIX и других OS API. На сколько это трудозатратней по сравнению с использованием стандартной библиотеки.
    По собственному опыту скажу, что написание на чистом WinAPI довольно трудозатратное (и время затратное) занятие, затратнее примерно в 1.5 по сравнению использованием stdlib. Но у меня это был первый и пока единственный опыт, дальше, видимо должно быть проще.
    Ответ написан
    2 комментария
  • Можно ли сделать массив меток goto?

    @Mercury13
    Программист на «си с крестами» и не только
    Вы не представляете себе, так обычно и работает switch.
    prog21.dadgum.com/166.html
    Ответ написан
    5 комментариев
  • Почему при выводе на экран через форматы %d и %u получаются числа -14 и 4294967282?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    101010 = 3F216, значит в char запишется F216
    Когда вы пробуете печатать как целое число, то значение приводится к типу int, соответственно получается FFFFFFF216
    Как знаковое (%d), значение FFFFFFF216 = -1410
    Как беззнаковое (%u), FFFFFFF216 = 429496728210
    Ответ написан
    3 комментария
  • Как правильно собрать .exe на C++/CLR?

    Nipheris
    @Nipheris Куратор тега C++
    1. Нужно собрать релизную версию приложения. Не распротраняйте на другие компьютеры дебажные версии. Тогда "d" требовать не будет.
    2. Т.к. приложение на C++, оно будет требовать рантайм. Этот рантайм можно как слинковать статически, так и оставить динамически загружаемым. Это настраивается в свойствах проекта. Если слинковать статически - то тогда dll не потребуется, но и обновить рантайм отдельно от приложения будет невозможно.
    3. Если поставлять рантайм отдельно, как динамически загружаемый (т.е. чтобы была dll), то можно либо класть его рядом с exe, либо устанавливать redistributable версию райнтайма. Второе предпочительнее, т.к. тогда рантайм можно будет обновить с помощью системной обновлялки, если в нём будут найдены критичные проблемы.
    4. Чтобы точно узнать, что требует EXE для своего запуска (не считая модулей, загружаемых с помощью LoadLibrary), воспользуйтесь Dependency Walker.

    Более подробную информацию вы сможете получить на MSDN в разделе деплоя C++ приложений.
    Ответ написан
    2 комментария
  • Как работать с сокетами в несколько потоков?

    Существует 3 основных подхода.
    1. То, что вы имеете ввиду - после accept() создавать отдельный поток на каждого лиента и обрабатывать пришедший коннект в нем.
    2. Использовать один поток, переводить сокеты в неблокирующий режим и использовать select() или poll() / epol() / ... для обнаружения данных поступивших в сокет и их обработки
    3. Использовать модель с несколькими worker'ами. Запускать несколько потоков-worker'ов работающих так же как в п.2, распределять входящие коннекты между ними. Обычно так пишут серверы для достаточно большой нагрузки.
    Достаточно подробный ответ есть здесь: https://www.opennet.ru/base/faq/prog_faq.txt.html, см. "как писать сервера".
    Ответ написан
    1 комментарий
  • Как запустить десктопную программу linux на windows 7?

    Spetros
    @Spetros
    IT-шник
    Существует ли что-то типа wine, но наоборот? Чтобы запустить linux программу на windows?

    cygwin
    Ответ написан
    2 комментария
  • Как создать демона на си?

    zagayevskiy
    @zagayevskiy
    Android developer at Yandex
    Потому что так работает fork. В этом месте программа как бы разделяется на две части - продолжает работать родитель и начинает работать потомок. Определить, где вы находитесь, можно по результату fork. При успешном завершении родителю возвращается PID процесса-потомка, а потомку возвращается 0.
    Ответ написан
    Комментировать