• Как заряжать li-ion аккумулятор из сотового?

    alko
    @alko
    разработчик
    Гуманный способ для акка и своего здоровья - использовать зарядное устройство, в котором можно задать ток заряда и напряжение отсечки, например Imax B6.
    Ответ написан
    1 комментарий
  • А какими бесплатными инструментами слить себе сайт на HDD?

    alko
    @alko
    разработчик
    Wget --recursive
    Ответ написан
    Комментировать
  • На каком уровне нужно уже уметь программировать, поступая на "программную инженерию" в ВУЗе?

    @Mintormo
    Узнать на каком языке пишут в универе и прочитать про основы из любой книжки. Совершенно достаточно.
    Ответ написан
    Комментировать
  • На каком уровне нужно уже уметь программировать, поступая на "программную инженерию" в ВУЗе?

    Taraflex
    @Taraflex
    Ищу работу. Контакты в профиле.
    В школе проходим Паскаль на жалком уровне..

    хватит и этого.
    Лучше матан задрачивайте.
    Ответ написан
    1 комментарий
  • Провод vs радио?

    begemot_sun
    @begemot_sun
    Программист в душе.
    Оптика однозначно быстрее. Кстати оптика это не провод. А провод не коаксиал. Так что вы уж определитесь что вам нужно.
    Ответ написан
    Комментировать
  • Как раздать мобильный интернет?

    IlyaEvseev
    @IlyaEvseev
    Opensource geek
    1) В PCI-слот вставляется беспроводная сетевая карта. Цена от 500р.
    2) В ОС устанавливается т.н. программный хотспот. Для Windows это Connectify.me
    Ответ написан
    1 комментарий
  • Как правильно распарсить запись функции и какие структуры данных использовать для ее хранения?

    @Koss1024
    Алгоритм известен более чем
    https://ru.wikipedia.org/wiki/Алгоритм_сортировочн...
    Пример в статье заменяем на названия функций и все. Если речь не идет о просини выражений дополнительно.

    Вопрос точно по С++? Поскольку запрос с сервера здесь выглядит слегка неуместно
    Всему свой тул
    Ответ написан
    Комментировать
  • Как запитать nRF24L01+ (3.3v) от Arduino Nano (5v)?

    Alexious_sh
    @Alexious_sh
    Про делители напряжения, в цепях питания чего-либо сложнее светодиодов, лучше сразу забыть.
    Если нужно по-быстрому, и нет необходимости экономить каждый милиампер источника питания, то простейшим вариантом будет использовать линейный стабилизатор напряжения, вроде 7803/78L03. Обвязки как таковой для них не требуется, разве что желательно поставить параллельно его входу и выходу по конденсатору, около 0.1...0.47 мкф.
    Ответ написан
    Комментировать
  • Обвиняют в неправомерном доступе к серверу, как быть?

    difiso
    @difiso
    В параллельной вселенной я космонавт
    По вашему вопросу много сказали ранее.
    Я вам, да и всем, просто рекомендую передавать доступ к серверу отдельным актом работ по каждому серверу. В этом акте работ должны быть следующие пункты (возможно дополнение):
    • Создан новый пользователь для нового администратора (помним же, что под рутом сидеть атата)
    • Новому пользователю предоставлены права администратора (доступ к sudo)
    • Новый пользователь смог зайти в свою учетную запись и поменял свой пароль
    • Новый пользователь сменил пароль пользователя root
    • Старый пользователь, под которым работали вы удален. Полностью
    • Новому администратору продемонстрировано, что старый пользователь не имеет доступа как под своей учетной записью, так и под root (это так, на всякой случай)

    Подпись обеих сторон желательна напротив каждой строчки. Составляется в двух экземплярах.
    Ответ написан
    1 комментарий
  • Как сделать перебор всех возможных комбинаций из символов?

    Напрашивается вариант представить результирующие строки записями в N-ричной системе счисления, где заданные буквы есть цифры от 0 до N-1, тогда задача сводится к выводу однозначных чисел от 0 до N-1, двузначных от 0 до N²-1, трёхзначных от 0 до N³-1. Запись в N-ричной системе легко получить, используя остаток от деления и деление.

    #include <vector>
    
    std::string gen(std::vector<char> alphabet, std::size_t idx, std::size_t digits)
    {
    	std::string ret(digits, alphabet[0]);
    
    	std::size_t alphas = alphabet.size();
    	while (digits--)
    	{
    		ret[digits] = alphabet[idx % alphas];
    		idx /= alphas;
    	}
    	return ret;
    }
    
    void gen_and_out(std::size_t n, std::vector<char> alphabet)
    {
    	std::size_t numbers = 1;
    	std::size_t alphas = alphabet.size();
    	for (std::size_t i = 0; i < n; ++i)
    	{
    		numbers *= alphas; // на каждом шаге чисел в alphas раз больше
    		for (std::size_t cur = 0; cur < numbers; ++cur)
    		{
    			std::cout << gen(alphabet, cur, i + 1) << std::endl;
    		}
    	}
    }
    
    int _tmain(int argc, _TCHAR* argv[])
    {
    	gen_and_out(3, std::vector<char>({ 'a', 'b', 'c'}));
    }


    Второй вариант - это представить эти строки как запись числа в особой системе счисления без нуля - с цифрами от 1 до N. В этом случае легко преобразовать такую запись в число - ∑aᵢ×Nⁱ, а вот обратное преобразование должно учитывать, что у нас нет нуля, тогда если остаток получился равным нулю, цифру нужно взять N.
    В отличие от первого варианта, здесь нет отдельных циклов для однозначной, двузначной и трёхзначных записей, так как результаты идут подряд, за "c" следует "aa", за "cc" - "aaa", и так далее.

    #include <vector>
    
    std::string gen(std::vector<char> alphabet, std::size_t idx)
    {
    	std::vector<char> ret;
    
    	std::size_t alphas = alphabet.size();
    
    	while (idx)
    	{
    		std::size_t cur = idx % alphas;
    		if (!cur) // нет нуля
    			cur = alphas;
    		ret.push_back(alphabet[cur - 1]);
    		idx = (idx - cur) / alphas;
    	}
    
    	return std::string(ret.rbegin(), ret.rend());
    }
    
    void gen_and_out(std::size_t n, std::vector<char> alphabet)
    {
    	std::size_t numbers = 1;
    	std::size_t alphas = alphabet.size();
    	for (std::size_t i = 0; i < n; ++i)
    	{
    		numbers *= alphas;
    		numbers += 1;
    	}
    	for (std::size_t i = 1; i < numbers; ++i)
    		std::cout << gen(alphabet, i) << std::endl;
    }
    
    int _tmain(int argc, _TCHAR* argv[])
    {
    	gen_and_out(3, std::vector<char>({ 'a', 'b', 'c' }));
    }


    На закуску, как та же задача решается на Haskell:
    gen alphas n = concatMap (`replicateM` alphas) [1..n]
    main = mapM_ putStrLn $ gen "abc" 3
    Ответ написан
    Комментировать
  • Можете подсказать практичный список литературы по разработке драйверов для linux и вообще по работе в ядре?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    The Linux Kernel Module Programming Guide: https://sysprog21.github.io/lkmpg/
    Linux Device Drivers: lwn.net/Kernel/LDD3
    Understanding the Linux Kernel: https://doc.lagout.org/operating%20system%20/linux...
    Linux Kernel Development: https://raw.githubusercontent.com/jyfc/ebook/maste...
    Understanding the Linux Virtual Memory Manager: https://www.kernel.org/doc/gorman/pdf/understand.pdf
    Unreliable Guide To Locking: https://www.kernel.org/pub/linux/kernel/people/rus...

    Содержимое каталога Documentation в ядре.
    https://lwn.net/Kernel/Index/ для точечного погружения в отдельные топики.
    Каталог doc с kernel.org: https://www.kernel.org/doc/
    Ответ написан
    2 комментария
  • Существует ли кроссплатформенная программа для контроля рабочего времени сотрудников?

    cissav
    @cissav
    Руководитель Omnidesk.ru
    Это плохая идея. Если вы так не доверяете сотрудникам, то увольте их и возьмите других. Доверие - двусторонний процесс. Пока вы не доверяете им, они вам тоже не будут. Установите софт для слежки, они найдут, как заниматься херней.

    Можете почитать ответы на похожий вопрос годичной давности. Там есть и конкретные рекомендации по софту.
    Ответ написан
    4 комментария
  • С чего начать знакомство с cisco?

    @throughtheether
    human after all
    Открою секрет - нет никаких коммутаторов, маршрутизаторов, фаерволлов и прочая. Есть устройства. У каждого устройства есть определенная функциональность. Пример:
    • одно устройство может перенаправлять трафик, основываясь на его L2-заголовках, но при этом имеет зачатки маршрутизации (L3-форвардинга). Это управляемый "коммутатор".
    • другое устройство может обрабатывать (перенаправлять) трафик, исходя как из L2, так и из L3- и L4-заголовков пакетов (фреймов, датаграмм, сегментов). Оно же имеет функциональность DHCP-сервера. Но оно оптимизировано под Ethernet-технологию, зато IP-over-Ethernet трафик обрабатывает очень быстро, благодаря оптимизациям. Это L3-"коммутатор".
    • третье устройство обрабатывает трафик, исходя из L3-L7 заголовков. Оно умеет транслировать адреса (NAT), поднимать шифрованные туннели, фильтровать трафик, применять внимательный к деталям QoS. Это "роутер".

    Далее, по вашим вопросам:
    - что есть "облачный маршрутизатор"?
    Практически любая фраза, содержащая слово "облачный" (кроме "облачная погода") - плод сумрачного маркетингового гения. Я не знаю, что такое "облачный маршрутизатор". Это может означать "SOHO-маршрутизатор со встроенным клиентом для файлового облака". Это может означать "группа маршрутизаторов с централизованным управлением/автоматическим распределением (provisioning) ресурсов конечным пользователям", некий шаг в сторону SDN (software-defined networking). Это может означать что угодно, это маркетинговое понятие.

    - опять же, где более-менее можно узнать об отличиях между сериями?
    Логичнее всего - на сайте cisco.com. Еще, по-моему, на канале skillfactory в youtube были обзорные видео.

    - чем маршрутизатор периметра отличается от просто маршрутизатора?
    Положением в топологии сети (на границе вашей сети и сети вашего провайдера) и вытекающими из этого требованиями (EBGP-сессии, некая фильтрация трафика и т.д.).

    - например, недавно была статья, исходя из которой мне не понятно, что такое сетевой экран и система предотвращения вторжений, т.к. у меня в голове это все равнозначно файрволлу и встроено в роутер?
    Фаерволлы, насколько мне известно, начинались как простые пакетные фильтры, затем фильтры с учетом состояния сессии (TCP), затем фильтры с учетом L7-данных (Application level gateways, ALG; началось это с необходимости обработки протокола FTP, известного своим специфическим дизайном), затем добавились антивирусы, антиспам и поиск сигнатур вредоносного трафика (IDS/IPS). Часто все эти возможности в той или иной степени совмещаются в одном устройстве (Unified Threat Management, UTM).

    так вот, с чего бы начать, чтобы таких вопросов поубавилось?
    Изучите спецификации и примеры использования каждого из интересующих вас семейств устройств. Разберитесь, какие особенности устройств (большой объем памяти - можно принять несколько BGP Full View, высокопроизводительные ASIC - низкие задержки при обработке трафика, криптографический ускоритель - высокая производительность шифрованных тоннелей и т.д.) позволяют их использовать в соответствующих ролях.
    Ответ написан
    Комментировать
  • Какой алгоритм поиска в массиве лучше?

    volkhin
    @volkhin
    Поиск элемента в отсортированном массиве - бинарный поиск.
    Поиск 3-4 элементов - видимо какой-то нечеткий поиск, в общем случае ничего лучше линейного пробега по массиву нет. Либо уточни что имеется в виду. Например, если это совпадение префиксов то опять же подойдет бинарный поиск.
    Ответ написан
    7 комментариев
  • C++ список файлов текущего каталога

    sdevalex
    @sdevalex
    По стандарту, сейчас, STL такого не умеет. Используйте API OS или Boost.Filesystem.
    Ответ написан
    1 комментарий
  • Подскажите свежий учебник по С++

    monolithed
    @monolithed
    В бы рекомендовал начать в такой последовательности:

    The C++ Programming Language — Bjarne Stroustrup
    C++ for Real Programmer — Jeff Alger
    The Art of C++ — Herbert Schildt
    Algorithms in C++ — Robert Sedgewick
    Design Patterns: Elements of Reusable Object-Oriented Software — Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides
    C++ Gotchas. Aoiding Common Problems in Coding and Design — Stephen C. Dewhurst
    C++ Templates: The Complete Guide — David Vandevoorde, Nicolai M. Josuttis
    The CERT C Secure Coding Standard — Robert C. Seacord
    More Effective C++: 35 New Ways to Improve Your Programs and Designs — Scott Meyers
    Effective C++: 55 Specific Ways to Improve Your Programs and Designs — Scott Meyers
    C++ Coding Standards — Herb Sutter, Andrei Alexandrescu
    C++ Concurrency in Action: Practical Multithreading — Anthony Williams
    Ну и со временем начать мониторить станадрат )

    PS: на сколько я помню, в некоторых книгах есть неточности и опечатки, так что будьте внимательны и начинайте именно с первой.
    Ответ написан
    5 комментариев
  • Локальный сокет — сетевой сокет с помощью внешней утилиты linux?

    Slipeer
    @Slipeer
    Или socat:
    socat TCP-LISTEN:1234,reuseaddr,fork UNIX-CLIENT:/tmp/localsocket
    

    Или netcat:
    nc -lk 1234 | nc -U /tmp/localsocket
    
    Ответ написан
    1 комментарий
  • Где купить электронные компоненты в Москве?

    couatl
    @couatl
    Терраэлектроника
    www.terraelectronica.ru/
    ул. Дербеневская, Бизнес-парк «Дербеневский», дом 1, подъезд 23 (м. «Павелецкая», м. «Пролетарская»)
    Понедельник — пятница: с 8:30 до 17:50

    Кварц
    www.quartz1.ru/
    ул. Буженинова, д. 16, проезд до ст. м. «Электрозаводская» или «Преображенская площадь», далее авт. 86, 171 до ост. «2-ой Электрозаводский пр.»
    Понедельник — пятница: с 10:00 до 18:00
    Электрозаводский пр."; Шоссе Энтузиастов, д. 31, стр. 2 (50 метров от ст. метро «Шоссе Энтузиастов);
    Понедельник — пятница: с 9:00 до 20:00

    Дельта Электроника
    www.deltel.ru/
    ул. Марксистская, д. 34, корпус 7, вход в центре здания, вывеска «МИРБИС», 4 этаж

    Вольтмастер
    www.voltmaster.ru/
    м.Электрозаводская, Семеновская набережная, дом 3/1, строение 5
    понедельник — пятница: 9.00 — 20.00, суббота: 9.00 — 18.00.
    м.Молодежная, улица Ивана Франко, дом 40, строение 2, проезд автобус/маршрутка №127
    понедельник — пятница: 9.00 — 20.00, суббота: 9.00 — 18.00.
    м.Новослободская, 1-ый Щемиловский переулок, дом 16, строение 2
    понедельник — пятница: 9.00 — 18.00.

    Митракон
    www.mitracon.ru/
    3-й Павловский переулок, д. 14, (м. «Серпуховская»)
    понедельник — пятница: 9.00 — 18.00.

    Тритон
    www.trt.ru/
    ул. Удальцова, д.23.
    Понедельник — Пятница, 9.30 — 18.3

    Унисервис
    uniservice.msk.ru/
    м.Петровско-Разумовская, ул.Гостиничная, д.3, оф. 208-209
    Понедельник-пятница: c 10 до 18 часов.

    База Электроники
    www.elbase.ru/
    ул. Марксистская, д.3, стр. 1, офис 320

    Чип и Дип
    www.chip-dip.ru/

    Мастер Кит
    www.masterkit.ru/

    Промоэлектроника
    www.promelec.ru/

    Электронщик
    www.electronshik.ru/

    RadioBox
    www.radiobox.ru/

    Dessy
    www.dessy.ru/

    elec.ru
    www.elec.ru/

    Терраэлектроника, Кварц, Дельта электроника — хороши
    Чип и дип — дороговат
    У Тритона дешевые microchip
    Ответ написан
    2 комментария