• Компактная электронная схема для питания светодиодов от батарейки с регулировкой яркости и длительности?

    @Wan-Derer
    Зобанели на Хабре, волки́ ;((
    Самым компактным по схемотехнике будет решение на микроконтроллере:
    - МК (например AtTiny, 6- или 8-ногая);
    - светодиод;
    - резистор;
    - выключатель;
    - (кнопка для смены режимов, можно совместить в выключателем);
    - батарейка.

    Плюсы:
    - самая простая схема;
    - возможна реализация самых разных режимов/эффектов (плавное переливание и пр.);
    - если надо сделать цветную подсветку, достаточно заменить СД на RGB и добавить ещё два резистора;

    Минусы:
    - требуется написание программы для МК;
    - требуется программатор для загрузки программы в МК.

    По питанию: не знаю сколько такая система проживёт от "таблетки", но самого маленького литиевого "пальчика" ей хватит надолго.
    Ответ написан
  • Как показать работодателю реализованные проекты?

    php666
    @php666
    PHP-макака
    нужно приложить портфолио из реализованных проектов
    не надо в такие места идти просто. это изначально неадекватное требование для программиста, который как правило работает в команде и даже если репозиторий будет публичный, весь код представляет собой смесь работы разных людей. никто не будет вытаскивать из репы твои коммиты и смотреть, что ты там делал.

    скорее всего hr-ы тупо скопипастили текст вакансии, но от этого не легче, это первый звоночек, что компания "рога и копыта" и какие hr, такой и остальной персонал
    Ответ написан
    Комментировать
  • Как показать работодателю реализованные проекты?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    В портфолио показывают не код, а запущенный проект.
    Ответ написан
    Комментировать
  • Есть ли ещё движки, кроме Unity, код в которых можно написать на C#?

    @oleg_ods
    649d8b0360487355144904.jpeg
    Ответ написан
    Комментировать
  • Какие проекты должны быть в личном аккаунте Github при поиске работы?

    php666
    @php666
    PHP-макака
    никто туда, в гитхаб ваш, не смотрит.
    а если и смотрят, то без интереса, просматривая только пару файлов, находящихся "на виду" - проверено, смотрел по статистике
    Ответ написан
    1 комментарий
  • Какие проекты должны быть в личном аккаунте Github при поиске работы?

    saboteur_kiev
    @saboteur_kiev Куратор тега Карьера в IT
    software engineer
    Так и сказать - публичных у меня нет.
    Никто никому ничего не должен.
    Ответ написан
    Комментировать
  • Port knocking как замена VPN?

    @TheBigBear
    СтарОдмины мы
    Когда грянула пандемия мне надо было почти сотню человек пересадить на удалёнку за два дня!
    У половины "комп общий", еще у нескольких маки, айпады-планшеты и компы с вистой-семеркой восьмеркой. Были даже компы без админского доступа!
    Тот еще зоопарк...
    Так что пришлось использовать ICMP-knocking (проще батник написать.. да и кто сниферит пингом с разной длиной пакета?)
    Плюс правило в микротике что этот белый адрес живёт только 8 часов
    Три года полёт нормальный
    была только одна попытка подбора RDP-пароля (домашний комп сотрудника был какой-то бякой заражен - но от этого даже VPN не спасёт)
    Привяжите задачу к событию в журнале безопасности RDP сервера - уведомлять о неудачной попытке входа
    Ответ написан
    Комментировать
  • Почему free() выводит ошибку?

    wataru
    @wataru
    Разработчик на С++, экс-олимпиадник.
    Какая-то проблема из-за чего один и тот же элемент удаляется дважды, судя по всему.

    Вижу сразу ошибку в delete_node: Если вершина в списке всего одна, произойдет фингя: this_list->last не обновится, да и next_node->prev несуществующее будет переписано.
    Ответ написан
    2 комментария
  • Могут ли отказать в работе из-за административки 6-летней давности?

    @Drno
    Соц сети не указывай, кроме например 1 мессенджера. Остальное - твое личное дело, шли нафиг
    Если будут вопросы - рабочей соцсети нет (типо гитхаб к примеру), а личные я указывать не буду, т.к. это мое личное дело
    Административная - нет, всем плевать
    Ответ написан
    1 комментарий
  • Собрать пк или playstation 5?

    GavriKos
    @GavriKos
    Не хотите разбираться, а игры которые интересные есть на консоли? Берите консоль. Они как раз для того и сделаны, чтобы не думать "потянет/не потянет"
    Ответ написан
    Комментировать
  • Как виртуальные машины исполняют код и как правильно это реализовать?

    WNeZRoS
    @WNeZRoS
    Если вопрос при виртуальные машины по типу тех что используется для исполнения Java или C# кода, то инструкции в них гораздо проще. В CIL например, у большинства инструкций нет параметров, они просто берут нужные данные с конца стека. А когда параметры есть - он один: значение или токен переменной/функции.

    Можно посмотреть как C# преобразуется в инструкции виртуальной машины на sharplab.io, сопоставить и понять как оно выполняется.

    Например
    IL_0000: ldarg 1 // кладёт в стек первый аргумент
    IL_0001: ldarg 2 // кладёт в стек второй аргумент
    IL_0002: sub     // достаёт из стека два последних значения и отнимает последний от пред последнего (т.е. будет arg.2 - arg.1), результат складывается в стек
    IL_0003: brtrue.s IL_0011 // достаёт из стека значение, если оно не 0, переходит к инструкции IL_0011, если 0 исполнения идёт дальше на I_0005
    
    IL_0005: ldstr "zero" // загружает в стек строку "zero"
    IL_000a: call void System.Console::WriteLine(string) // вызывает вывод в консоль, из стека достаются N нужных значений для параметров (в данном случае 1), void функция ничего в стек не добавляет
    IL_000f: br.s IL_001b // переход (jump) к IL_001b
    
    IL_0011: ldstr "not zero" // загружает в стек строку "not zero"
    IL_0016: call void System.Console::WriteLine(string) // вызывает вывод в консоль, из стека достаётся 1 значения для параметра 
    
    IL_001b: ldstr "done" // загружает в стек строку ...
    IL_0020: call void System.Console::WriteLine(string) // ...


    Пример реализации простой виртуальной машины на основе примера выше

    (Код написан так чтобы работал, правильнее писать более безопасно и читабельнее)

    #include <stdio.h>
    
    enum Opcode {
        OP_LOAD_ARGUMENT,
        OP_LOAD_STRING,
        OP_SUBTRACT,
        OP_GOTO,
        OP_GOTO_IF_TRUE,
        OP_CALL,
        OP_RETURN
    };
    
    union Argument {
        int value;
        const void* pointer;
    };
    
    struct Instruction { 
        Opcode opcode; 
        Argument arg; 
    };
    
    void run_vm(const Instruction* instructions, const Argument* args) {
        Argument stack[16];
        
        Argument* stack_pointer = &stack[0];
        int address = 0;
    
        while(true) {
            const Instruction instruction = instructions[address];
            address++;
    
            switch(instruction.opcode) {
                case OP_RETURN:
                    return;
                
                case OP_LOAD_ARGUMENT:
                    *stack_pointer = args[instruction.arg.value];
                    stack_pointer++;
                    break;
    
                case OP_LOAD_STRING:
                    *stack_pointer = instruction.arg;
                    stack_pointer++;
                    break;
    
                case OP_SUBTRACT:
                {
                    stack_pointer--;
                    int b = stack_pointer->value;
                    
                    stack_pointer--;
                    int a = stack_pointer->value;
    
                    stack_pointer->value = a - b;
                    stack_pointer++;
                    break;
                }
    
                case OP_GOTO:
                    address = instruction.arg.value;
                    break;
    
                case OP_GOTO_IF_TRUE:
                    stack_pointer--;
                    if(stack_pointer->value != 0)
                        address = instruction.arg.value;
                    break;
    
                case OP_CALL:
                    void (* fn)(const void*) = (void (*)(const void*))instruction.arg.pointer;
                    stack_pointer--;
                    fn(stack_pointer->pointer);
                    break;
            }
        }
    }
    
    void print(const char* text) { printf("%s\n", text); }
    
    int main(int argc, char** argv) {
        const Instruction instructions[] = {
            /* 0 */ { OP_LOAD_ARGUMENT, { 0 } },
            /* 1 */ { OP_LOAD_ARGUMENT, { 1 } },
            /* 2 */ { OP_SUBTRACT, {} },
            /* 3 */ { OP_GOTO_IF_TRUE, { 0x7 } },
            /* 4 */ { OP_LOAD_STRING, { .pointer = "zero" } },
            /* 5 */ { OP_CALL, { .pointer = (void*)&print } }, // функции надо где-то регистрировать, чтобы знать сколько у них параметров и какого они типа
            /* 6 */ { OP_GOTO, { 0x9 } },
            /* 7 */ { OP_LOAD_STRING, { .pointer = "not zero" } },
            /* 8 */ { OP_CALL, { .pointer = (void*)&print } },
            /* 9 */ { OP_LOAD_STRING, { .pointer = "done" } },
            /* A */ { OP_CALL, { .pointer = (void*)&print } },
            /* B */ { OP_RETURN, {} }
        };
    
        const Argument args[] = { 
            { 100500 },
            { 777 }
         };
    
        run_vm(instructions, args);
        return 0;
    }



    Виртуальные машины для процессоров можно делать по такому же принципу, но они будут медленные и структура инструкций ограничена архитектурой процессора.
    Ответ написан
    Комментировать
  • Почему НЕ vim? Vim для серьезной разработки?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    Это не вопрос, а размазывание соплей. "Ой мне сказали то, ой мне сказали сё, а скажите ещё чего-нибудь". Ну и закономерно получаете полную панамку ответов от специалистов, которые vim в глаза не видели, но спешат поделиться своим экспертным мнением.

    Это было бы вопросом, если бы было задано в форме "можно ли из вима сделать полноценную IDE?".
    Ответ - можно.
    Любых плагинов как грязи. Руководств масса, на том же Хабре. Пользователей - ну, не столько сколько IDE intellJ - но тоже прилично. Есть сообщества, где всегда можно спросить. Вот там и надо задавать вопросы. Причем конкретные, а не вида "ой мне пацаны сказали что круто, а теперь другие пацаны сказали что отстой". Ну правда английский может понадобиться.
    Ответ написан
    Комментировать
  • Почему ConcurrentCollections в C# не могут полностью предотвратить race conditions?

    @Kano
    В статье же написано что предотвращение возникновения состояния гонок обеспечивает только потокобезопасное api и то с некоторыми побочными эффектами навроде многократного вызова делегата обновления.
    Относительно потонебезопасного api реализуемого этими коллекциями вообще своя история в которой их поведение весьма специфичное.
    Ответ написан
    Комментировать
  • Что делать, если много условностей? ?? :: :, и как правильно его читать? Можно ли ссылку на статью какую нибудь?

    MrDecoy
    @MrDecoy Куратор тега JavaScript
    Верставший фронтендер
    Ответ написан
    Комментировать
  • HTTP-трафик шифруется! Но как? И как вынюхать что там?

    mayton2019
    @mayton2019
    Bigdata Engineer
    HTTP ответы не обязаны являться текстом. Смотри в заголовки ContentType в ответах.
    Если там к примеру стоит application/octet-stream - то это просто поток байтов. Может
    быть бинарным кодом.
    Ответ написан
    4 комментария
  • Как подключить базу данных Access к PHP?

    delphinpro
    @delphinpro Куратор тега PHP
    frontend developer
    https://www.php.net/manual/ru/odbc.installation.php

    Пользователи Windows должны включить php_odbc.dll, чтобы использовать этот модуль.
    Ответ написан
    Комментировать
  • Почему опасно в php выставлять неограниченное время жизни сессии?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    Что сказать, если юзеры - склерозники, это их проблемы. Вечные сессии плохи тем, что, будучи единожды спёртыми злоумышленниками, они дают вечный доступ к аккаунту жертвы.
    Ответ написан
    Комментировать
  • Где посмотреть MAC адрес в образе Windows?

    @Drno
    mac обычно считывается с сетевой карты, соответственно пока её нет, и не установлен драйвер - и mac тоже нет
    Ответ написан
    Комментировать
  • Для чего реально можно использовать AWS Lamda функции на реальном проекте?

    Viji
    @Viji
    DevOps Engineer
    1. 80% - это api запросы (через api gateway), получил, сходил в базу, изменил/прочитал, ответил. Вкл relational и dynamodb. На мой взгляд гораздо меньше хлопот, чем с кубером и в основном дешевле. Особенно, если писать на Golang или хотя бы на node.js

    2. 5-10% для передачи сообщений из/в event bus, sns, sqs... в общем, в составе event driven architecture. Супер вещь. Только желательно редчайшие случаи недоставки предусматривать

    3. 5-10% Сервисные функции... например работа по cron, каждую ночь перемещает сообщения из cloudwatch на s3, или trigger какого-то backup и множество других. Я иногда сохранял предыдущее состояние, если время работы более 15 мин и вызывал лямбду еще раз.

    4. Остальное - например получение данных из kinesis stream - если с big data работаешь, но тут уже надо по цене смотреть.
    Ответ написан
    2 комментария
  • Нейросеть для получения информации из документа?

    Maksim_64
    @Maksim_64
    Data Analyst
    Нейронная сети, актуальны для задач где присутствует ВАРИАТИВНОСТЬ. Вы имеете входные данные обозначим их Х вы имеете функцию которая сопоставляет эти данные с выходными данными (извлечь ИНН и другие пункты договора) обозначим их y. Так вот если вариативность отсутствует то данная задача f(X) = y, решается парсингом документа, а не нейронными сетями. Если задача имеет вид f(X) = y + E, где E это случайная ошибка, то нейронная сеть это один из возможных алгоритмов МИНИМИЗАЦИИ этой ошибки, но НЕ полного ее исключения. Так что надо иметь ввиду что 100 процентной точности не добиться. И ответить себе а допустимо ли это.

    Что касается твоих вопросов, ну например пункт номер два это целый раздел в машинном обучении. Который содержит в себе несколько подпунктов. И дело это инженерное - а не вот какой то метод решит все мои проблемы. Пункт номер три обе могут быть использованы. Пункт четвертый, а потянешь с нуля. А готовые модели они решат частный кейс твоей проблемы? Откуда нам знать, с какой точностью готовые модели будут извлекать данные. Ну а первый вопрос, это всего лишь api для моделей и выбирать надо ту с которой имеешь опыт работы, какой то лучшей нет.
    Ответ написан
    1 комментарий