Задать вопрос
  • Что такое LF, CLRF и как с этим бороться?

    saboteur_kiev
    @saboteur_kiev Куратор тега Git
    software engineer
    Вы считаете себя программистом, и до сих пор не знаете что в Windows crlf а в Linux lf?

    Настройка в git существует изначально.
    Проблема переноса строк существует с тех пор, когда появился DOS и Windows со своей кодировкой. И чтобы сейчас не изобретали, эта проблема будет оставаться. Точнее не проблема, если есть конфиг.

    В общем ваше нытье удивляет. Технический долг есть не только в говнопроектах. Он есть в проектах любого уровня, включая железную архитектуру. Поэтому да, нужно учить и те вещи, которые исторически сложились, и полезно изучить историю их появления в использования, чтобы понимать почему от них не так легко избавиться, что они существуют уже 20-50-70 лет и никак не пропадают. Тогда будет проще жить и интуиция будет работать лучше.
    Ответ написан
    2 комментария
  • Bootstrap-Vue - В чём фишка данного симбиоза?

    copist
    @copist
    Empower people to give
    Расскажите плиз о технологии, и чем развёрнутей, тем лучше.

    Вот захотел ты сделать сайт SPA или PWA с любимой тебе вёрсткой на базе Twitter Bootstrap и любимой библиотеки Vue. Сверстал. Поповеры не появляются, дропдауны не выпадают, модалки не открыватся, формы не валидируются, клики не работают.

    Оригинальный Twitter Bootstrap имеет поддержку интерактивных элементов на Javascript. Реализовано это на библиотеке jQuery. Если делаешь на Vue, придётся подключать ещё и jQuery, что лишняя библиотека на 100+ килобайт, что, конечно, не катастрофа (пока ты не на мобилке).

    Vue работает с состояниями привязывает данные к отображению, а jQuery работает с DOM и событиями. Это вопрос производительности. Работа JQuery начитается когда загружен и распарсен JS и HTML. Работа Vue начинается в тот момент, когда загружен и распарсен JS, то есть чуть раньше. jQuery модифицирует DOM на лету, перестраивая текущий документ. Vue работает с shadow DOM, а затем подсовывает уже готовую интерактивную страницу в пустой документ, что быстрее (разница в секунды на десктопе, десятки секунд на м...).

    Vue реализует компонентную парадигму. Куски страницы являются изолированными кусочками кода (HTML CSS JS), которые цепляются между собой динамически, а обмениваются данными через аттрибуты и события. Предположим, что вы решили следовать компонентной парадигме, тогда согласно вот такому примеру нужно будет увязать самостоятельно все интерактивные компоненты. Компонента-кнопка. Компонента-поле ввода. Компонента-форма. Компонента-контейнер. Получается около 50 компонент. Для некоторых надо будет написать логику на jQuery. Если посмотреть на код jQuery этих микрокомпонент, то он окажется несложный, его вполне можно переписать на Vue. Ну там класс заменить или клик отработать. Когда от кода jQuery не останется следа, его можно будет из проекта удалить.

    И вот получается Bootstrap-Vue

    На компоненты побили. От Jquery избавились. Написано в единой парадигме. Работает быстрее.

    Добавляем тот факт, что в Vue можно не импортировать компоненты, которые не нужны (например, я не работаю с дропдаунами и модальным окнами) и код становится меньше, грузится быстрее, работает быстрее.

    Так же будет Не лишним оценить технологию: плюсы, минусы, стоит ли вообще с этим работать ...

    Это сам изучай и сравнивай. Навыки и опыт воздушно-капельным и через Internet не передаётся
    Ответ написан
    4 комментария
  • Как сделать шифрованный расширяемый контейнер в файле в linux?

    gbg
    @gbg Куратор тега Linux
    Любые ответы на любые вопросы
    encfs. Маунтите одну папку в другую, в результате все что записано в первую папку, появляется во второй папке в шифрованном виде.

    Так как эта штука работает на уровне папок а не дисков, она занимает на диске ровно столько, сколько вы в нее положили

    Cryptomator - аналогично
    Ответ написан
    Комментировать
  • Как сделать максимально автономный сервер?

    ValdikSS
    @ValdikSS
    1. Никаких «вечных серверов». Даже как-то неловко разъяснять такое. «Вечный сервер» — маркетинговый ход, фактически мошенничество, который закончится, как только компания изменит условия/реорганизуется/закроется. Следует читать как «ну, проработает года три, а далее — неизвестно».

    2. Непонятно, какого рода у вас информация, и что именно вы понимаете под словом «захостить», также непонятен критерий автономности. Разместить информацию в публичный доступ? Должна ли она индексироваться? Нужен ли для неё контроль доступа? По какому протоколу она должна быть доступна? Она будет нужна только вам через 10 лет, или кому-то еще? Это лицензированный контент, который могут удалить по DMCA (фильмы, сериалы, музыка)? Это персональные данные (сливы баз данных)? Информация популярна и/или востребована на данный момент? Есть вероятность, что она будет сравнительно востребована через 10 лет? Информация каталогизирована? Информация тематическая (например, архив, посвященный конкретной теме, области науки и т.п.)? Важно ли удобство и скорость доступа к информации?
    Технологий много, но они все разные, с разными назначениями. Ответы на перечисленные вопросы необходимы, чтобы отбросить неподходящие и подробно рассмотреть подходящие.

    3. Если информация публична и востребована, и будет востребована через 10 лет, то следует использовать DC++, BitTorrent + веб-хранилища с прямыми ссылками на файл, добавив ссылки в .torrent-файл, в виде webseed.
    Bittorrent существует с 2006 года, популярен, клиенты есть под все ОС, совместимость и надёжность отличные.
    DC++ всё еще имеет популярность. Основное преимущество перед Bittorrent: возможность поиска файла по его имени или названию директории, возможность лёгкого обновления и дополнения информации (нет привязки к «каталогу» в виде .torrent-файла)

    Если информация конфиденциальна или требует контроля доступа, и у вас и кого-либо другого не будет возможности как-либо поддерживать её в течение 10 лет (я не знаю вашу ситуацию, поэтому предположим, что вам грозит 10-летний тюремный срок), то, возможно, есть смысл оплатить облачное хранилище от крупных компаний (Google, Yandex, Microsoft, Apple) на 10 лет вперед. Это не даёт никаких гарантий, но считаю такой вариант более надёжным, нежели хостинг общего плана (и особенно VPS).

    Если информации немного, она не защищена авторскими правами, каталогизирована и полезна, можно банально разместить её на давно существующих бесплатных хостингах, вроде Ucoz, Google Sites, Neocities, загрузить на Bitbucket, Github, Sourceforge (последний поддерживает хранение больших файлов, которые можно скачать по прямой ссылке, вполне подойдёт в качестве webseed для торрента, к слову).

    Если не боитесь попробовать развивающиеся, но еще не устоявшиеся технологии, присмотритесь к IPFS. Он работает по принципу Bittorrent, но позволяет получать доступ к информации через HTTP, а также поддерживается крупными игроками в лице Cloudflare, у которой есть шлюз из интернета в IPFS: https://cloudflare-ipfs.com/
    Я держу несколько статичных сайтов с собственными доменами в IPFS, на домашнем компьютере, за шлюзом Cloudflare. Преимущества: все плюсы BitTorrent, возможность доступа как к сайту (в т.ч. на своём домене), индексация поисковиками, есть сервисы по долгосрочному платному хранению файлов (eternum.io, pinata.cloud), возможность лёгкого обновления информации. Недостатки: работает всё ещё достаточно медленно и нестабильно, только статичные сайты.

    4. Судя по вашему комментарию выше, у вас всего 100 ГБ медиафайлов. Это вообще ерунда. Если они публичны и представляют ценность хотя бы для узкого круга людей, можете захостить их у меня, через проект Schare: https://valdikss.org.ru/schare/
    Мой критерий автономности — максимальная независимость от сторонней инфраструктуры, поэтому файлы хостятся на домашнем сервере, а раздаются в сетях децентрализованного файлообмена.
    Ответ написан
    Комментировать
  • Как сделать максимально автономный сервер?

    gbg
    @gbg
    Любые ответы на любые вопросы
    Хостить образ виртуалки. А внутри виртуалки можно насовать что угодно, хоть докер.
    Ответ написан
    Комментировать
  • Дублирование кода в целях makefile, как избежать?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Как мне избавится от дублирования кода, который одинаковый для нескольких целей, однако, отличается именами файлов(пусть имена файлов совпадают с названием целей)?

    Можно написать макрос-генератор целей. Изменяющиеся параметры можно передать как параметры макроса, внутри на них можно ссылаться по номеру. Например так:

    define generate-targets
    $(1): 
     make -j5 TARGET=unwired BOARD=$$(BOARD)/$$(CPU) -f makefiles/Makefile.$$@
     ../bootloader/generate-metadata/generate-metadata $$@.bin 0x0 0x01A00001 1
     srec_cat firmware-metadata.bin -binary $$@.bin -binary -offset 0x100 -o $$@-ota-image.bin -binary
     rm $$@.hex
    
    $(1)-fb: $(1)-CLEAN
      ../../tools/backdoor-bootloader.py -e -w -v $(1)-firmware.hex
    
    $(1)-f: $(1)-CLEAN
     /Applications/ti/Uniflash/flash_cc1310.sh $(1)-firmware.hex 
    
    $(1)-ota: $(1)
     scp $(1)-ota-image.bin root@192.168.20.187:/root/unwired_smarthome
    
    endef


    Внутри макроса нужно экранировать $ заменяя его на $$.
    Этот макрос можно вызывать в нужном месте следующим образом:

    $(eval $(call generate-targets,ubrige))

    Сгенерированный в этом месте код будет эквивалентен коду из вопроса.
    Ответ написан
    Комментировать
  • Какую фантастику порекомендуете, где главный герой программист/инженер?

    saboteur_kiev
    @saboteur_kiev Куратор тега Книги
    software engineer
    Как можно пропустить Владимира Васильева?

    "Горячий старт" - один из лучших киберпанков, матрица даже не рядом.

    "Техник большого Киева" - серия книг, в стиле ведьмака.
    Ответ написан
    2 комментария
  • Какую фантастику порекомендуете, где главный герой программист/инженер?

    imbafire
    @imbafire
    linux. moto. freedom.
    Возможно под описание попадает только первая книга, но все равно укажу все, потому что по моему мнению эта серия отличный фантастический киберпанк.
    Тетралогия Руди Рюкера "ware":
    - Software (1982);
    - Wetware (1988);
    - Freeware (1997);
    - Realware (2000);
    Все 4 книги есть в русском переводе
    Ответ написан
    2 комментария
  • Как получить список подключенных клиентов из Mikrotik?

    @dredd_krd
    Зачем же логи парсить? В микротиках практически всё можно получить по телнету или SSH. Достаточно подключиться туда (по RSH, например), выполнить команду вывода и легко распарсить строго форматированную таблицу.
    По SNMP, если мне не изменяет память, всё это дело получить нельзя.
    Ответ написан
    3 комментария
  • Как вы относитесь к рекламе в теле статьи?

    Nidora
    @Nidora
    Бонус 200 руб всем новым клиентам! VDS - 149 руб
    Лучше не стоит. Пользователи не любят, когда много рекламы на странице статьи.
    Ответ написан
    Комментировать
  • Самоускоряющийся снаряд для космической пушки. Насколько это реально?

    ncix
    @ncix
    Предприниматель
    Довольно интересная кстати идея. Только мне кажется она была бы интереснее не для разгона снаряда а для торможения спускаемого аппарата при входе в атмосферу. Вместо воды лучше взять сухой лёд, например (СО2 в твердом состоянии). Он легко переходит в газовую фазу.
    Ответ написан
    Комментировать
  • Обновленный q&a

    В суппорт не пробовали писать? Здесь все-таки сервис вопросов и ответов, но бег-трекер ТМ

    Ответ написан
    3 комментария
  • Сохранение массива в файл и его чтение

    xanep
    @xanep
    FILE* fd = fopen("filename", "rb");  //ключ должен быть "rb" - чтение бинарных данных
    if (fd == NULL) 
        printf("Error opening file for reading");
    size_t result = fread(region_coordinates, 1, sizeof(region_coordinates), fd);
    if (result != sizeof(region_coordinates)) 
        printf("Error reading file"); //прочитали количество байт не равное размеру массива
    fclose(fd);
    
    FILE* fd = fopen("filename.bin", "wb");
    if (fd == NULL) 
        printf("Error opening file for writing");
    fwrite(region_coordinates, 1, sizeof(region_coordinates), fd);
    fclose(fd);
    
    Ответ написан
    1 комментарий
  • Сохранение массива в файл и его чтение

    @rozhik
    Если файл бинарный — то просто записываете
    fd = fopen( filename, "wb" ); write( fd, i_regions, sizeof( i_regions ) ); fclose( fd );
    , читаем — вместо врайт — рид.
    Если должен быть текстовый, редактируемый руками — тогда json, inifile или как удобнее редактировать (как по мне JSON best ).
    Ответ написан
    7 комментариев
  • Разыскивается дешёвый микроконтроллер с криптографией

    @Noliki
    STM32F215
    Ответ написан
    Комментировать
  • Какой Amazon AMI выбрать для отдачи статики (картинок)?

    pomeo
    @pomeo
    www.feralhosting.com по деньгам будет сильно дешевле чем S3.
    vvzvlad я его советовал полгода назад и судя по адресу картинок, он его продолжает использовать, значит подошёл.
    Ответ написан
    2 комментария