Хей, друзья!
Тут мой коллега Михаил выступает на онлайн митапе Volga JS Online. Он поделится опытом про разработку умных устройств для дома. Приходите!
📆 27 апреля | 18:00 по МСК
👉🏻 Обязательная регистрация тут https://volgajs.timepad.ru/event/1617413/#
Тут мой коллега Михаил выступает на онлайн митапе Volga JS Online. Он поделится опытом про разработку умных устройств для дома. Приходите!
📆 27 апреля | 18:00 по МСК
👉🏻 Обязательная регистрация тут https://volgajs.timepad.ru/event/1617413/#
Оптимизация. Заметки после live-coding (wepback-4)
После просмотра во вкладке network можно заметить загрузку жирного бандла. Посмотрим через webpack-bundle-analyzer что лишнее.
Возможные проблемы:
1 - неоптимальный бандл
2 - moment.js (или любая другая библиотека) грузит все локали и лишние зависимости
3 - CSS внутри JS
4 - нет code splitting
Возможные причины:
1 - несколько версий одной библиотеки
2 - грузится весь пакет ради одной функции
3 - лишние полифилы
4 - отсутствие хеша зависимого от контента (а не от билда) в имени бандла
5 - сборка не в production mode
6 - неподходящие source maps
▫️CSS
Выдираем css из бандла с помощью MiniCssExtractPlugin
▫️Fonts
Выносим шритфы из бандла с помощью fileLoader c
Используем
▫️Code Spliting
1 - для роутинга
2 - тяжелый js
3 - что не нужно сейчас
4 - что редко менятеся (и можно закешировать, проставляя [contentHash] в webpack, а не [hash])
Роутинг сплитится при помощи React lazy + в tsconfig прописать
После просмотра во вкладке network можно заметить загрузку жирного бандла. Посмотрим через webpack-bundle-analyzer что лишнее.
Возможные проблемы:
1 - неоптимальный бандл
2 - moment.js (или любая другая библиотека) грузит все локали и лишние зависимости
3 - CSS внутри JS
4 - нет code splitting
Возможные причины:
1 - несколько версий одной библиотеки
2 - грузится весь пакет ради одной функции
3 - лишние полифилы
4 - отсутствие хеша зависимого от контента (а не от билда) в имени бандла
5 - сборка не в production mode
6 - неподходящие source maps
▫️CSS
Выдираем css из бандла с помощью MiniCssExtractPlugin
▫️Fonts
Выносим шритфы из бандла с помощью fileLoader c
options : {
limit: 1024
}
▫️Конекретный пример с использованием определенной локали для moment.jsИспользуем
new webpack.ContextReplacementPlugin(/moment[/\\]locale$/, /en/);
что позволяет выбросить остальные локали▫️Code Spliting
1 - для роутинга
2 - тяжелый js
3 - что не нужно сейчас
4 - что редко менятеся (и можно закешировать, проставляя [contentHash] в webpack, а не [hash])
Роутинг сплитится при помощи React lazy + в tsconfig прописать
{
module: esnext
moduleResolution: "node"
}
Разбиваем бандл дальше через optimization настройку webpackoptimization: {
minimize: true,
splitChunks: {
cacheGroups: {
uikit (или любое другое проперти): {
test: тут regex,
name: "uikit",
chunks: "all",
priority: 4 (любое число в зависимости от того, нужно ли сначала сбилдить этот бандл чтобы он не вошел в другой бандл)
}
}
}
}Forwarded from запуск завтра
Если (когда) менты отберут у вас телефон и разблокируют его, им нужно будет вытащить из него информацию. Есть два способа: 1) глазками прокликать иконки на рабочем столе, просмотреть чаты и документы 2) вытащить информацию на компьютер и исследовать её с удобством. Для этого есть специальные программы.
Один из производителей такой программы для властей разных стран — Cellebrite, недавно публично хвастался, что умеет вытаскивать данные из Signal. Это правда, если власти смогли разблокировать телефон, то они могут вытащить из него все чаты, так же, как могли бы увидеть их глазами. Эта программа используется спецслужбами по всему миру для проведения официальных и не очень официальных криминологических экспертиз.
Сегодня Signal выложили ответочку. Они где-то раздобыли (в оригинале «fell from the truck» — «свалилась с телеги, нашли на дороге») официальную коробочку с этой программой, исследовали её и обнаружили в ней тонну уязвимостей. Таких уязвимостей, что можно составить специальный файл, который при наличии его на телефоне жертвы получает полный доступ над компьютером, который пытается вытащить с него информацию (жертва и агрессор меняются местами). Можно заставить софт Cellebrite написать что угодно во все криминологические экспертизы, которые есть на этом компьютере. Не только в текущий, но и все последующие.
Пост они закончили следующим абзацем: «мы теперь начнем прикладывать к Signal'у специальные красивые файлы. Они не несут никакой пользы, просто эстетически очень приятные. Причем файлов у нас много и они разные. Приложим мы их только давно зарегистрированным пользователям и только части отловить и исправить все ошибки у вас не получится. Никакой связи с предыдущим текстом этот абзац не имеет. Просто нравятся они нам.»
Троллинг 90го уровня.
Ах да, ещё они обнаружили, что Cellebrite нелегально использует библиотеки Apple в нарушении лицензии. У Apple дорогие и хорошие юристы.
🍿🍿🍿
Один из производителей такой программы для властей разных стран — Cellebrite, недавно публично хвастался, что умеет вытаскивать данные из Signal. Это правда, если власти смогли разблокировать телефон, то они могут вытащить из него все чаты, так же, как могли бы увидеть их глазами. Эта программа используется спецслужбами по всему миру для проведения официальных и не очень официальных криминологических экспертиз.
Сегодня Signal выложили ответочку. Они где-то раздобыли (в оригинале «fell from the truck» — «свалилась с телеги, нашли на дороге») официальную коробочку с этой программой, исследовали её и обнаружили в ней тонну уязвимостей. Таких уязвимостей, что можно составить специальный файл, который при наличии его на телефоне жертвы получает полный доступ над компьютером, который пытается вытащить с него информацию (жертва и агрессор меняются местами). Можно заставить софт Cellebrite написать что угодно во все криминологические экспертизы, которые есть на этом компьютере. Не только в текущий, но и все последующие.
Пост они закончили следующим абзацем: «мы теперь начнем прикладывать к Signal'у специальные красивые файлы. Они не несут никакой пользы, просто эстетически очень приятные. Причем файлов у нас много и они разные. Приложим мы их только давно зарегистрированным пользователям и только части отловить и исправить все ошибки у вас не получится. Никакой связи с предыдущим текстом этот абзац не имеет. Просто нравятся они нам.»
Троллинг 90го уровня.
Ах да, ещё они обнаружили, что Cellebrite нелегально использует библиотеки Apple в нарушении лицензии. У Apple дорогие и хорошие юристы.
🍿🍿🍿
Я, как динозавр, впервые заюзал webpack-bundle-analyzer. Это просто песня.
Заоптимизировал сборку, уменьшив vendor bundle в 3 раза.
С moment-timezone еще бы поиграться, но это уже другая история)
Заоптимизировал сборку, уменьшив vendor bundle в 3 раза.
С moment-timezone еще бы поиграться, но это уже другая история)
Media is too big
VIEW IN TELEGRAM
Мне тут уже скоро тридцатник стукнет, поэтому пора заводить бонусные карточки всяких аптек.
Знатно припекло от UX одной аптеки. Мало того что нет валидации на полях и странная кнопка «Выслать код еще раз» (а где был первый раз??), так после нажатия на кнопку вся твоя форма очищается к хуям.
Черканул ребятам из https://www.tagesjump.ru/ которые пилили сайт письмо с ОС, посмотрим что ответят
Знатно припекло от UX одной аптеки. Мало того что нет валидации на полях и странная кнопка «Выслать код еще раз» (а где был первый раз??), так после нажатия на кнопку вся твоя форма очищается к хуям.
Черканул ребятам из https://www.tagesjump.ru/ которые пилили сайт письмо с ОС, посмотрим что ответят
#3d_print
Сегодня впервые тестирую печать SBS пластиком.
Нужно напечатать колпачок для термоса. SBS вроде как самый подходящий пластик для пищевой промышленности.
Сегодня впервые тестирую печать SBS пластиком.
Нужно напечатать колпачок для термоса. SBS вроде как самый подходящий пластик для пищевой промышленности.
Forwarded from Zhovner Hub
Как выглядит производство корпусов Flipper Zero изнутри
Новый большой апдейт. Статья без правок почти, буду признателен за вычитку грамматики и т.д.
https://habr.com/ru/company/flipperdevices/blog/557282/
Новый большой апдейт. Статья без правок почти, буду признателен за вычитку грамматики и т.д.
https://habr.com/ru/company/flipperdevices/blog/557282/
Всем привет!
Я тут недавно писал, что немного приложил руку к релизу веб-версии телеги. У проекта довольно интересный стек - начиная c самописного аналога React (Teact), до web assembly.
Александр — тим лид этого проекта — пишет интересные заметки в @webzchannelru, где рассказывает о причинах выбора той или иной технологии и тонкостях реализации разных фич.
Кому интересно — welcome @webzchannelru.
Кстати, Саша лично тер за Telegram с Пашей, так что я теперь через одно рукопожатие знаком с Дуровым😁
Я тут недавно писал, что немного приложил руку к релизу веб-версии телеги. У проекта довольно интересный стек - начиная c самописного аналога React (Teact), до web assembly.
Александр — тим лид этого проекта — пишет интересные заметки в @webzchannelru, где рассказывает о причинах выбора той или иной технологии и тонкостях реализации разных фич.
Кому интересно — welcome @webzchannelru.
Кстати, Саша лично тер за Telegram с Пашей, так что я теперь через одно рукопожатие знаком с Дуровым😁
Всем привет!
Недавно словил «интересный» баг на raspberry pi zero. Пытался запустить bleutooth server через python и в итоге получал всегда permission denied🤔 Причем пользователь добавлен в ту же группу, что и bluetooth и все остальные причины тоже пофикшены. Запускать питоновский скрипт от sudo как то не комильфо и там появляются другие подводные камни.
В итоге, спустя полтора часа танцев с бубном я понял, что в адаптер вместе с малиной у меня воткнут телефон. Вынул - проблема ушла. Т е при нехватке питания можно cловить такое необычное поведение😐
Недавно словил «интересный» баг на raspberry pi zero. Пытался запустить bleutooth server через python и в итоге получал всегда permission denied🤔 Причем пользователь добавлен в ту же группу, что и bluetooth и все остальные причины тоже пофикшены. Запускать питоновский скрипт от sudo как то не комильфо и там появляются другие подводные камни.
В итоге, спустя полтора часа танцев с бубном я понял, что в адаптер вместе с малиной у меня воткнут телефон. Вынул - проблема ушла. Т е при нехватке питания можно cловить такое необычное поведение😐
Кстати, недавно решил все же заказать бесшумную плату управления для своего Ender-3. В штатной плате запаяны a4899, так что их так просто не заменить.
Результат просто пушка - движков вообще не слышно, только кулер шумит. Единственный косяк, что кулер охлаждения самой платы включается синхронно с кулером обдува детали🤔
Заодно решил проложить свой бокс для принтера шумоизоляцией. Нашел в автомагазине лист Герметон A15 за 900р.
Теперь можно на ночь печать ставить.
Кому интересно, вот ссыль на плату https://a.aliexpress.com/_AaCHfL
Результат просто пушка - движков вообще не слышно, только кулер шумит. Единственный косяк, что кулер охлаждения самой платы включается синхронно с кулером обдува детали🤔
Заодно решил проложить свой бокс для принтера шумоизоляцией. Нашел в автомагазине лист Герметон A15 за 900р.
Теперь можно на ночь печать ставить.
Кому интересно, вот ссыль на плату https://a.aliexpress.com/_AaCHfL