• Можно ли посмотреть код какого-нибудь устройства (Игрушки, пульта и т.д)?

    @vanyamba-electronics
    В игрушки редко ставят микроконтроллер. Чаще всего там вообще нет управляющей схемы - механический редуктор способен на многое.
    Чужой код обычно хорошо оптимизирован, и поэтому проще написать то же самое самому, а потом оптимизировать, чем понять, как же это работает.
    Вместо того, чтобы тратить своё время на реверс-инжиниринг детских игрушек, гораздо полезнее взять нормальную отладочную плату вроде DE-10 Standard или mikroElectronica, и научиться программировать разные периферийные устройства.
    Ответ написан
    Комментировать
  • Дизайн с нуля: какие основные этапы работы?

    @vanyamba-electronics
    Если есть логотип и гайдлайны по фирменному стилю, то беру и делаю, но обычно, если компании нужны визитки, то у них и логотипа как правило ещё нет. А часто нет и названия.

    Первое, что нужно определить - это приоритетность работы с данным заказчиком.
    1) Много денег за небольшое время.
    2) Мало денег за небольшое время.
    3) Много денег за большое время.
    4) Мало денег за большое время.

    Работать в принципе имеет смысл только с первыми двумя категориями заказчиков. Если заказчик позиционирует себя в третью или четвёртую категорию, то с третьей в принципе можно сразу сказать, что быстро эту работу сделать не получится, потому что объём работы большой, и далее разбить задание на этапы с поэтапной оплатой.

    С четвёртой категорией разговор простой - либо они готовы переместиться в третью, либо им можно смело отказать, сказав, что они пока не готовы работать с дизайном.

    Название фирмы и логотип. Берём неделю на мозговой штурм, придумываем варианты названий с логотипами, показываем заказчику. Обычно заказчик, посмотрев на это, начинает мыслить конструктивно, и выдаёт вам название, которое ему нравится.

    Раз название есть, можно приступать к работе над логотипом. Берём ещё пару дней и придумываем несколько эскизов. Показываем заказчику, либо есть попадание в точку, либо вместе что-то придумывается. Потому что от него требуется внятно сформулировать, чем тот или иной вариант не устраивает. Имея такую информацию можно сходу что-то изобразить "на салфетке".

    Итак, эксиз логотипа есть. Воплощаем его в разных вариантах. Проще говоря, у вас есть, например, журавлик. Рисуем несколько журавликов - просто журавлики, и в композиции с квадратом, ромбом, кругом, треугольником - в общем, заказчику нужно выбрать либо простой журавлик, либо композиция.

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

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

    Работа над логотипом и фирменным стилем занимает некоторое время, но дизайнерской работы там немного. В основном встречи и эскизы. Зато производство айдентики - это много работы, и ради этого есть смысл провести первый этап (подготовительный). Потому что по его итогам и дизайнер знает, что хочет заказчик, что заказчику нравится, и заказчик знает, чего ждать от дизайнера.
    Ответ написан
    Комментировать
  • При инициализации массива строк в объекте появляется ошибка "too many initializers for 'String [0]'". В чем может быть проблема?

    @vanyamba-electronics
    String colors[4] = {
            "#00ff0d", 
            "#b71c1c", 
            "#9c27b0", 
            "#fbc02d", 
        };
    Ответ написан
    Комментировать
  • Как оптимизировать код arduino?

    @vanyamba-electronics
    1) Работать с массивом, а не с переменными r1, r2 и т.п. Это позволит использовать циклы.
    2) Все строковые константы переместить в PROGMEM. Это сильно сэкономит ОЗУ.
    Ответ написан
    3 комментария
  • Как подбирать подобные интересные цвета?

    @vanyamba-electronics
    Берёте функцию преобразования HSV в RGB.
    Затем задаёте количество цветов в палитре. По шкале Hue выбираете заданное количество точек через равные промежутки. А Saturation и Value даёте возможность пользователю настраивать.
    Ответ написан
  • Почему компании пишут свои внутренние языки?

    @vanyamba-electronics
    Есть довольно много старого кода. Но нет ресурсов его переписывать в новый фреймворк.
    Поэтому проще всего написать компилятор в промежуточный интерпретируемый язык, а уже интерпретатор этого языка адаптировать под фреймворк.
    Например, из Фортрана в Питон.
    Ответ написан
    Комментировать
  • Как перерасти из кодера в программиста?

    @vanyamba-electronics
    Ваша проблема в том, что вы не планируете разработку программы.
    Задайте себе вопрос: что я смогу написать за сегодня?
    И постарайтесь это написать.
    Так вы научитесь измерять код в трудоднях. И начнёте искать решения проблемы не "как написать красивый код", а "как написать столько много кода и не свихнуться".
    Потому что реальные программы измеряются в человекогодах.
    Если вы найдёте способ программу объёмом, допустим, в 10 человеколет написать за 5 человеколет, то это уже будет сделать экономически выгодно. Вы начнёте искать варианты финансирования своего проекта.
    Так и создадите успешную компанию по разработке ПО.
    Бывает код дешёвый и код дорогой. Вы сейчас начинающий разработчик, поэтому ваш код ничего стоит, и вы можете потратить хоть месяц на решение какой-нибудь задачки, которую какой-нибудь школьник на олимпиаде решит за два часа.
    Но чем больше вы знаете, тем дороже стоит ваше время, и года через три у вас уже не будет этого месяца. Поэтому вам надо научиться программировать быстро, то есть экономически эффективно.
    В противном случае через три года вы станете заниматься чем-то другим, с программированием может быть даже и не связанным непосредственно. Просто это будет приносить вам больше денег, чем программирование.
    Ответ написан
    Комментировать
  • Как организовать отключение периферии, на время сна arduino?

    @vanyamba-electronics
    Можно использовать регистры управления питанием периферии микроконтроллера.
    Подробнее можно прочитать в Экономия энергопотребления Arduino.
    Ответ написан
    Комментировать
  • Как сделать избирательную проверку на not null в таблице (check constraint)?

    @vanyamba-electronics
    Я бы сделал так.
    В первой таблице - выбор связанной таблицы. Либо таблица 2, либо таблица 3.
    В таблице 2 значения A и B, в таблице 3 - значения C.
    Ответ написан
  • Как опубликовать игру/приложение в Ubuntu Store написанное на Golang?

    @vanyamba-electronics
    As a free/open source app, you essentially have two options:
    Ответ написан
    Комментировать
  • Есть ли какие-либо недостатки у статических методов?

    @vanyamba-electronics
    Приведённый пример довольно плохо иллюстрирует суть вопроса, в силу того, что является примером неграмотного дизайна.
    У вас есть класс - форматированная строка. Назовём его FormattedString.
    Далее мы определяем операторы для разных типов. В данном случае у нас есть тип - какой-то список чего-то. В ООП не может быть класса MyList. Это дизайн в стиле GUI от Билла Гейтса, а не ООП от Гради Буча и Бьорна Страуструпа.
    Поэтому у нас тип, назовём его ListOfFoo - это список чего-то конкретного, в данном случае список Foo.
    И мы хотим добавить метод преобразования списка Foo в форматированную строку.
    Для этого мы добавляем в класс FormattedString оператор присваивания для класса ListOfFoo:
    class FormattedString
    {
    public:
        operator = (const ListOfFoo& src);
    };

    Но случаются ситуации, когда в приложении существует одна и только одна инстанция объекта. Например, объект theApp.
    Как, например, получить ссылку на этот объект. Не передавать же его по иерархии объектов.
    Для этого удобно определить статический метод Application::getApp(), который будет возвращать ссылку на инстанцию объекта-приложения.
    Итак, сформулируем правило. Программа - это процессор. Объекты - это то, что она создаёт в оперативной памяти, статические объекты - это регистры этого процессора.
    Ответ написан
    Комментировать
  • Как разделить числа на ассемблере в AVR?

    @vanyamba-electronics
    Любое число в двоичной форме можно представить как числовой ряд:
    y = a[0] * 2**0 + a[1] * 2**1 + a[2] * 2**2 + ... + a[x-1] * 2**(x-1)

    Суть алгоритма деления - разделить один числовой ряд на другой числовой ряд.
    Реализуете алгоритм на любом удобном языке высокого уровня, и потом без труда перепишете его на ассемблере.
    Ответ написан
    Комментировать
  • Почему на клиенте теряются данные?

    @vanyamba-electronics
    Вложенные данные надо в несколько запросов передавать. Встроенный в браузер парсер не умеет парсить подуровни. В некоторых браузерах умеет, но это не правило.
    Ответ написан
  • Что за процедура такая RESET AVR?

    @vanyamba-electronics
    Рекомендую почитать даташит на микроконтроллер, раздел Таблица векторов прерывания.
    Прерывание #0 RESET_vect вызывается при сбросе микроконтроллера (передний фронт на входе nRESET).
    Ответ написан
    Комментировать
  • Какую бесплатную программу для создания музыки стоит выбрать новичку, чтобы потом бесплатно вставлять получившиеся композиции в коммерческие продукты?

    @vanyamba-electronics
    За что вы платите, приобретая профессиональные программы для создания музыки.
    1. Профессиональное звучание. Если музыка не звучит, то это просто бессмысленный набор нот.
    2. Профессиональные средства обработки звука. Ни в одной бесплатной программе вы не встретите эквалайзер с визуализацией АЧХ в реальном времени, например.
    3. Библиотеки готовых звуков и пресетов. Они позволяют создавать музыку быстро. Есть разница - написать композицию за неделю или за два дня. В первый день вы её записываете, а на следующий день слушаете, что в ней нужно подправить.
    Под Windows я могу порекомендовать Fruity Loops или Steinberg Cubase. Первая хороша для создания электронной музыки, вторая - для более традиционных жанров.
    Ответ написан
    Комментировать
  • Тестовое задание для собеседования на php программиста?

    @vanyamba-electronics
    Ваш опыт не соответствует их требованиям.
    Вы избежали нещадной эксплуатации.
    Ответ написан
    Комментировать