Sleepless tech | Евгений J
Рубрика "Технологии предков" Продолжая развлекаться с Flipper Zero, обнаружил, что у ключей типа iButton есть несколько форматов кодирования в зависимости от типа домофона. Самые популярные это Dallas, Metakom и Cyfral. И оказалось, что не все можно так просто…
"Технологии предков" - ч.2
Прога под винду, а винда не всегда есть под рукой. Пришлось понять, как работает перекодировка.
По факту ничего сложного: все байты ключа переносятся в позицию с 2 по 5, а остальные заполняются нулями и единицами. Но прикол в том, что самый старший байт - это контрольная сумма 7 младших байт. Покопавшись еще, нашел что она считается по алгоритму CRC8-Maxim.
Запилил простенький консольный скрипт для перекодировки (его правда ток в консоли на сайте https://openapi.lddgo.net/ можно запустить, иначе по CrossOrigin падает fetch 😁)
Перед этим просил кстати ChatGPT помочь, чет не осилила)
Прога под винду, а винда не всегда есть под рукой. Пришлось понять, как работает перекодировка.
По факту ничего сложного: все байты ключа переносятся в позицию с 2 по 5, а остальные заполняются нулями и единицами. Но прикол в том, что самый старший байт - это контрольная сумма 7 младших байт. Покопавшись еще, нашел что она считается по алгоритму CRC8-Maxim.
Запилил простенький консольный скрипт для перекодировки (его правда ток в консоли на сайте https://openapi.lddgo.net/ можно запустить, иначе по CrossOrigin падает fetch 😁)
Перед этим просил кстати ChatGPT помочь, чет не осилила)
Gist
MetakomToDallas.js
GitHub Gist: instantly share code, notes, and snippets.
🔥6
Заметки на полях. Про гравер
В очередной раз мне нужно было вырезать гравером фигуры. Самый просто способ выжечь контур из растрового изображения - закинуть в родной софт для EleksMaker - EleksCAM, которая может преобразовать картинку в контур. Но так как это неадекватная китайская по**ень, которая может выдавать неверные размеры или просто остановить гравер в любой момент со включенным лазером, то это теперь не мой путь)
В очередной раз мне нужно было вырезать гравером фигуры. Самый просто способ выжечь контур из растрового изображения - закинуть в родной софт для EleksMaker - EleksCAM, которая может преобразовать картинку в контур. Но так как это неадекватная китайская по**ень, которая может выдавать неверные размеры или просто остановить гравер в любой момент со включенным лазером, то это теперь не мой путь)
🤔3
Sleepless tech | Евгений J
Заметки на полях. Про гравер В очередной раз мне нужно было вырезать гравером фигуры. Самый просто способ выжечь контур из растрового изображения - закинуть в родной софт для EleksMaker - EleksCAM, которая может преобразовать картинку в контур. Но так как…
Порядок теперь такой:
▫️Импортим растр в inkscape
▪️Контур - Векторизовать раст - Detection Mode: Автоматическая трассировка (пробовал казалось бы более подходящий режим определение краев, но там получается 2 контура - внешний и внутренний (видно на фотке))
▪️Удаляем растр
▪️Расширения - Инструменты GCode:
▪️Точки ориентации
▪️Бибилиотека инструментов - дефолтный инструмент
▪️Поправить значения feed, passing feed (в зависимости от материала резки - от 400 до 1200), gcode before path: M03 S1000 (включеаем лазер), gcode after path: M05 (выключаем)
▪️Щелкнуть на изображение - Контур в GCode
▫️Результрующий файл кидаем в Universal GCode Sender и в начале добавляем M05 чтобы точно выключить лазер перед началом.
А потом надеваем очки и нажимаем кнопку play )
▫️Импортим растр в inkscape
▪️Контур - Векторизовать раст - Detection Mode: Автоматическая трассировка (пробовал казалось бы более подходящий режим определение краев, но там получается 2 контура - внешний и внутренний (видно на фотке))
▪️Удаляем растр
▪️Расширения - Инструменты GCode:
▪️Точки ориентации
▪️Бибилиотека инструментов - дефолтный инструмент
▪️Поправить значения feed, passing feed (в зависимости от материала резки - от 400 до 1200), gcode before path: M03 S1000 (включеаем лазер), gcode after path: M05 (выключаем)
▪️Щелкнуть на изображение - Контур в GCode
▫️Результрующий файл кидаем в Universal GCode Sender и в начале добавляем M05 чтобы точно выключить лазер перед началом.
А потом надеваем очки и нажимаем кнопку play )
👍2🤔1
Привет!
Несколько дней бился с поломанным SSR на проекте. Поломался из за react-textarea-autosize у которого в билде несколько скриптов, часть из которых для браузера, часть для сервера (где в коде есть проверка isBrowser перед обращением к
Друг подкинул решение в виде patch-package. Делаешь изменение в нод модулях, делаешь патч с помощью этой утилиты, и на postinstall применяешь патч.
Несколько дней бился с поломанным SSR на проекте. Поломался из за react-textarea-autosize у которого в билде несколько скриптов, часть из которых для браузера, часть для сервера (где в коде есть проверка isBrowser перед обращением к
document). Но webpack 3, который на проекте, не умеет выбирать нужный скрипт для билда.Друг подкинул решение в виде patch-package. Делаешь изменение в нод модулях, делаешь патч с помощью этой утилиты, и на postinstall применяешь патч.
👍5
Привет.
Тут оказывается веб-версия audacity вышла. Одна из причин (на самом деле главная причина лень, но она может еще подразделяться) почему я никак не нарежу себе мелодию на звонок - это то, что нужно ставить приложение на телефон и искать mp3 в ужасной файловой системе андроида с миллионом папок Downloads/Media/Trash/Huesh/ либо ставить программу на десктоп.
А теперь кайф. Осталось победить лень скачивания мелодии)
https://wavacity.com/
Тут оказывается веб-версия audacity вышла. Одна из причин (на самом деле главная причина лень, но она может еще подразделяться) почему я никак не нарежу себе мелодию на звонок - это то, что нужно ставить приложение на телефон и искать mp3 в ужасной файловой системе андроида с миллионом папок Downloads/Media/Trash/Huesh/ либо ставить программу на десктоп.
А теперь кайф. Осталось победить лень скачивания мелодии)
https://wavacity.com/
❤9👍3
This media is not supported in your browser
VIEW IN TELEGRAM
Всех причастных с днем программиста 😉
❤5🦄1
This media is not supported in your browser
VIEW IN TELEGRAM
Поехал в Европу кошмарить владельцев Тесла своим флиппером)
😁12👍3
Нашел классный сайт который объясняет консольные команды. Полезно, когда какой нить затык в линуксе и ты нагуглил че то и бездумно копипастнул.
https://explainshell.com/
https://explainshell.com/
👍21❤3🔥1
Addy Osmani - Learning Javanoscript Design Patterns (2 ed)
Пока читаешь книгу урывками, к концу немного забываешь че было в начале. Поэтому чтоб не забыть, кратко опишу о чем.
Срез как современных подходов, так и практик прошлых лет, которые с успехом можно использовать на проектах. Сами паттерны, которые уже тысячу раз описаны везде занимают только 1 главу, и описаны применительно к JS (что конечно плюс) со своими достоинствами и недостатками.
А еще хорошо
▫️описаны какие возможности у современных нативных JS модулей,
▫️паттерны MV* (в которых ваще не особо разбирался до этого),
▫️подходы к работе с ансихронностью,
▫️история AMD и CommonJS (можно пролистать),
▫️паттерн Namespace (который я видел только в начале своего пути JS).
Отдельно по React из полезного: подходы к структурированию проекта, работа с хуками и ХОКами, виды рендеринга (их оказывается больше чем 3).
В общем, советую. https://www.oreilly.com/library/view/learning-javanoscript-design/9781098139865/
Пока читаешь книгу урывками, к концу немного забываешь че было в начале. Поэтому чтоб не забыть, кратко опишу о чем.
Срез как современных подходов, так и практик прошлых лет, которые с успехом можно использовать на проектах. Сами паттерны, которые уже тысячу раз описаны везде занимают только 1 главу, и описаны применительно к JS (что конечно плюс) со своими достоинствами и недостатками.
А еще хорошо
▫️описаны какие возможности у современных нативных JS модулей,
▫️паттерны MV* (в которых ваще не особо разбирался до этого),
▫️подходы к работе с ансихронностью,
▫️история AMD и CommonJS (можно пролистать),
▫️паттерн Namespace (который я видел только в начале своего пути JS).
Отдельно по React из полезного: подходы к структурированию проекта, работа с хуками и ХОКами, виды рендеринга (их оказывается больше чем 3).
В общем, советую. https://www.oreilly.com/library/view/learning-javanoscript-design/9781098139865/
O’Reilly Online Learning
Learning JavaScript Design Patterns, 2nd Edition
Do you want to write beautiful, structured, and maintainable JavaScript by applying modern design patterns to the language? Do you want clean, efficient, manageable code? Want to... - Selection from Learning JavaScript Design Patterns, 2nd Edition [Book]
🔥6
Привет.
За все время, что пишу тесты не сталкивался с такой проблемой. Есть 2 функции из одного модуля, которые экспортируются именным экспортом. Причем одна функция вызывается внутри другой.
обосрался не вышло. toHaveBeenCalled возвращает false. А не работает все потому что по факту экспортная module.B и вызываемая внутри функция B - как бы разные (вообще сложно понять, потому что функция должна передаваться по ссылке, но я принял на веру)
В интернете конечно предлагают разнести эти функции по разным модулям или костыли типа
За все время, что пишу тесты не сталкивался с такой проблемой. Есть 2 функции из одного модуля, которые экспортируются именным экспортом. Причем одна функция вызывается внутри другой.
export function B() {}
export function A() {
.....
B()
}
Решил в тесте Jest на повесить spyOn на функцию B и В интернете конечно предлагают разнести эти функции по разным модулям или костыли типа
function A (){
data.B()
}
function B (){}
export const data {
A,
B
}
Я там в контексте своего теста нашел воркераунд (не завязанный в итоге на spyOn внутреннего вызова), но немного огорчен 🧐 Как лох час потерял)🤔2
Привет.
Меня тут недавно хакнули! или давно)
Полез смотреть че у меня на серваке запущено, нашел сервис монги.
Не помню уже что там было, но ничего важного точно.
В любом случае прикольно придумали, первый раз с таким сталкиваюсь (пора бы уже пароль добавить). Платить я, пожалуй, не буду)
Погуглил кстати транзакции на этот кошель. 2.5к баксов чувак насобирал (не факт что именно таким путем, правда)
Меня тут недавно хакнули! или давно)
Полез смотреть че у меня на серваке запущено, нашел сервис монги.
Не помню уже что там было, но ничего важного точно.
В любом случае прикольно придумали, первый раз с таким сталкиваюсь (пора бы уже пароль добавить). Платить я, пожалуй, не буду)
Погуглил кстати транзакции на этот кошель. 2.5к баксов чувак насобирал (не факт что именно таким путем, правда)
😱7🎉2🫡1
Меня "прикалывает" как МТС решает вопросы с техническими проблемами.
Стабильно раз в пару месяцев по среди рабочего дня у МТС падает интернет. И они стабильно его чинят так, как будто мы в нулевых и отключение интернета для нас проблема уровня "не могу написать другу в аське". Чинят его обычно до утра.
Чувствую себя терпилой, потому что никак не свалю от них.
Чё, ребят, у кого щас норм интернет можно подрубить?
Стабильно раз в пару месяцев по среди рабочего дня у МТС падает интернет. И они стабильно его чинят так, как будто мы в нулевых и отключение интернета для нас проблема уровня "не могу написать другу в аське". Чинят его обычно до утра.
Чувствую себя терпилой, потому что никак не свалю от них.
Чё, ребят, у кого щас норм интернет можно подрубить?
История о том, как я накатил новую винду и 14 часов не мог понять почему POST запрос на авторизцию в рабочих приложениях не доходит до сервака и висит в статусе pending бесконечно.
Стадии
- это все мудацкий фаервол винды или брендмауер
- это все гребаный webpack-dev-server
- это все политики хрома и фаерфокса по отношению к http
- кажется дело в ноде
Стадии
- это все мудацкий фаервол винды или брендмауер
- это все гребаный webpack-dev-server
- это все политики хрома и фаерфокса по отношению к http
- кажется дело в ноде
😁6🥰4😱2
Чисто какой-то "хакер" запилил проводник для винды, работающий лучше стокового. Скачать можно будет тут 12 декабря.
Еще бы со скайпом так сделали, было бы вообще огонь)
https://youtu.be/oSS_mXJJugo
Еще бы со скайпом так сделали, было бы вообще огонь)
https://youtu.be/oSS_mXJJugo
YouTube
Disk Voyager - Demo 2023
Short demo video showcasing the most important features of Disk Voyager.
Alpha is scheduled for December 12, 2023, for Windows!
Alpha: https://www.diskvoyager.com/alpha
Discord: https://discord.gg/PjH9zYadTg
Technical: https://voyager.handmade.network
This…
Alpha is scheduled for December 12, 2023, for Windows!
Alpha: https://www.diskvoyager.com/alpha
Discord: https://discord.gg/PjH9zYadTg
Technical: https://voyager.handmade.network
This…
🔥6