Pull to refresh
33
0.3
ionicman@ionicman

User

Send message

Как там живется среди единорогов и розовых пони? :D

Техдолг появляется вне зависимости покрыто-ли у вас все тестом, написано-ли максимально хорошо, соблюдая все лучшие принципы или нет.

Причины:

Бизнес и его быстро меняющиеся требования, которые в принципе невозможно учесть, при этом ему нужно как можно быстрее их внедрить, иначе смысл их поропадет, а прибыль будет упущена

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

Поэтому техдолг есть и будет всегда, но его нужно не бояться, а уметь с ним работать.

Удобней снизу смотреть статусы + там место есть и под углом клавиши светодиоды статусов не загораживают.

Без обид, столько было затрачено сил, при этом в самой клавиатуре ничего толком не поменялось по сравнению со стоком - какой в этом был смысл? Своя прошивка?

Если Вы хотели клавиатуру только с low-profile и подсветкой - чем не подошел Havit/Keychron?

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

  1. low-profile brown

  2. даблшоты

  3. подсветку символов, а не щелей

  4. возможность изменения подсветки при смене языка, и вообще апи для нее

  5. полную, нормальную раскладку с г-образным Enter и нормальной длиной шифтов.

  6. отстегивающуюся на магнитах подставку под запястье

  7. отстегивающийся на магнитах num-pad, который можно пристегнуть как слева, так и справа + он может отдельно работать сам по себе по USB

  8. регулятор громкости в виде ролика (а не крутилки) над стрелкой курсора "вправо"

  9. такой-же регулятор над стрелкой курсора "влево", отвечающий за яркость подсветки и ее переключение

  10. медиа-клавиши плей/пауза/вперед/назад и индикаторы клавиатуры снизу под пробелом

  11. верхняя часть клавы полностью из куска гнутого алюминия

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

Где методология исследования?

БОльшиниство умных домов по моим ощущениям на HomeAssistant / Node-RED.

И он абсолютно прав - если проблему можно решить просто отмасштабировавшись - это не проблема. Он смотрит с тз бизнеса, вы - как технарь. Об этом стоит помнить, принимая решения об оптимизации, в тч кэшировании.

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

В безопасности чем тише и незаметне вы будете - тем лучше.

Зачем нужно приветствие голосом? Оно ЧСВ Вам греет? Поставьте датчик открытия двери с задержкой и уже в квартире можете сделать, чтобы вам сказали "Ваша вечная раба радуется хозяину" - будет и безопасно и ЧСВ в порядке :) Не знаю как у остальных - а у меня кроме раздражения все эти голосовые приветствия ничего не вызывают.

Что делать будете, если ридер сдохнет? Или его испортят (шоккером), или ардуина откажет, т.к. это не factory-железка с оговоренной надежностью + сама схема на платке ардуино не сказать что прямо правильно и надежно разведена по всем правилам.

Ну и т.д.

Т.е. как выпускной проект это еще на что-то тянет, а вот на реальное использование - нет - уж извините.

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

Ну вы поняли.

Ну это будет стрельба межконтинентальной пушкой по воробьям, но работать, естественно, будет.

Я на ATTINY-85 делал FFT 8bit с целочисленным LUT для sin/cos и она занимала памяти совсем чуток (нужно только до 45 градусов хранить) причём одна и для sin и для cos - все выводится отлично на ходу - вообще никаких проблем.

Ради такого и читаешь хабр, жаль редко появиляются статьи такого уровня.

Спасибо вам за отличный материал от человека, который когда-то писал свой собственный сниффер на базе WinPCap-а и даже написал, но давно уже все забыл )

Е мае! С возвращением! Ну и как всегда - божественно! Даже для такого человека, как я, который рисовать толком не умеет, только обрабатывать)

Гляжу на замок с благодарностью.

Как и те, кто украли ваш телефон и пришли с ним по адресу... /sarcasm

Самый главный вопрос остался не раскрыт - какая механика у замка?

Просто защёлка? Или ригель реально закрывается? Или он просто в виде накладки?

Возможно-ли его установить основным замком на железную дверь? (там запирание обычно в 3 стороны)

Возможно-ли поставить на сувальдный замок, а не на быстро вскрываемый английский?

Все что-то про электронную безопасность, ок, а что с механикой?

P.S. для гостиниц выпускаются достаточно дешёвые защелки - соленоид и ригель внутри - этакий электронный шпингалет, покупали его по 16$ за штуку включая исполнитель на ESP (wifi/ble) - для надежного закрытия не подойдёт, для суточных/гостиниц - вообще отлично (ключи от основного замка в квартире/номере, защёлка используется при заселении).

Зачастую люди не готовы слышать то, что не хотят услышать. Как-то так.

Проверено.

По-этому Таро, Гадалки, УспешныйУспех и всякая другая жесть в разы популярней, чем поход к человеку/компании, разбирающихся в теме.

Главная проблема в том, что подход "пропсы вниз - сообщения вверх" придуманы не просто так, а чтобы не распутывать потом клубок "кто-же где-же таки изменил эту переменную?!"

По-этому, ИМХО (и собственно так в официальной документации) - инжектить любую переменную нужно через readonly вместе с методом, который может эту переменную изменять, и в компоненте не изменять данную переменную напрямую, а использовать метод. Это реально уберегает от очень многих головняков (хотя бы потому, что для простой отладки будет достаточно добавить в данный метод печать трейса, чтобы понять "кто-же где-же").

Исключения, естественно, есть - очень тесно связанные компоненты и не более одного уровня (т.е. родитель-ребенок). Например табы (родительский холдер и его дети, собственно, сами табы). Но и там, чтобы не плодить "везде делаем так, а вот здесь можно не так" и поддерживать некоторую гомогенность системы, я бы все сделал через readonly + метод.

Можно на своей VDS поднять сервер синхронизации.

Вы требования их сервера синхронизации видели? Если не видели - посмотрите.

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

Нужна нормальная база данных, а не колхоз с файлом.

Расскажите это SQLlite-у, который, собственно, в Mozilla-вских продуктах широко используется.

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

Да и, честно, вообще проблем сделать это хоть с одним файлом с JSON ни каких нет - с помощью блокировок все это решаемо. Конфликт может быть только при обновлении.

При синхронизации заблокировал (остальные ждут освобождения), синхронизировал, разблокировал - все - будет работать вполне нормально, без каких-либо конфликтов.

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

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

Чтобы было подобие транзакционности и избежать неконсистентности делают так: блокируют основной файл, пишут файл рядом, переименовывают записанный файл в основной файл, снимают блокировку. Это обеспечивает консистентность.

Больше всего задалбывают те, кто начинает критиковать, не разобравшись,

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

Прежде чем навшивать ярлыки на собеседника, может быть стоило поинтересоваться его опытом?

Всё Mozilla

Mozilla всё :(

А если серьезно - то задолбали бесполезные изменения аля "нововведения" и попытки затащить пользователей к себе.

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

О, дивный новый мир!

Конечно, технология виновата, а не сами люди. Это-ж технология подкладывает себя людям в игрушки!

А ещё надо запретить жпс-трекеры, сотовые телефоны и фонарики!

Apple недостаточно информирует о технологиях, научные журналы вообще охренели - ничего не понятно, а у людей лапки!!!

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

Как жииить?!!

Написание кода, именно набор текста, занимает довольно небольшую долю времени погромиста.

Кроме просто написания, это нужно еще продумать.

Компилятор следит.

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

Типизация "настраивается" 1 раз, а дальше оно само.

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

Т.е. программирование таки разделяется на две вещи, как я уже выше писал - создание/изменение типов там где нужно, и сама программа, это использующая , для решения задачи бизнеса.

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

И еще раз - мой посыл не в том, что слабая или сильная типизация плохи или хороши, а в том, что они дают разные преимущества.

Information

Rating
2,818-th
Registered
Activity