Яндекс музей
Сегодня открылся музей яндекса на Павелецкой, и мы с друзьями решили туда сгонять
Было клёво:
- Потыкали компьютеры разной степени древности (от 80-х годов до довольно новых маков из нулевых)
- Запустили майнкрафт 1.2.5 на eMac (получилось 5 фпс на абсолютных минималках)
- Поиграли во всякие аркадные автоматы и ретро-приставки
- Поиграли в taiko на барабанах (это было супер)
- Поболтали с сотрудником на тему флиппера (оказывается, он уже успел потыкать флиппер у знакомого, который выиграл его на Гик Пикнике)
- А в честь открытия сегодня раздавали бесплатный кофе и печеньки, чем мы с радостью воспользовались (я выпил 5 чашек)
В общем, всем советую. Вход всегда бесплатный
Сегодня открылся музей яндекса на Павелецкой, и мы с друзьями решили туда сгонять
Было клёво:
- Потыкали компьютеры разной степени древности (от 80-х годов до довольно новых маков из нулевых)
- Запустили майнкрафт 1.2.5 на eMac (получилось 5 фпс на абсолютных минималках)
- Поиграли во всякие аркадные автоматы и ретро-приставки
- Поиграли в taiko на барабанах (это было супер)
- Поболтали с сотрудником на тему флиппера (оказывается, он уже успел потыкать флиппер у знакомого, который выиграл его на Гик Пикнике)
- А в честь открытия сегодня раздавали бесплатный кофе и печеньки, чем мы с радостью воспользовались (я выпил 5 чашек)
В общем, всем советую. Вход всегда бесплатный
🔥7👍1
Приятная интерактивная статья о том, как работают ре-рендеры в реакте. Будет полезно начинающим реактерам, а все остальные могут просто потыкать
joshwcomeau.com/react/why-react-re-renders/
joshwcomeau.com/react/why-react-re-renders/
Joshwcomeau
Why React Re-Renders • Josh W. Comeau
In React, we don't update the DOM directly, we tell React what we want the DOM to look like, and React tackles the rest. But how exactly does it do this? In this tutorial, we'll unpack exactly when and why React re-renders, and how we can use this information…
😁2❤1🎉1
Почему-то мне очень нравится эстетика 12 андроида с его тёмным, но цветным фоном, и алгоритмически полученными цветами. А вон там один разработчик играется с такими динамическими темами для терминалов и IDE
vxtwitter.com/kdrag0n/status/1557902358964645889 (тред)
vxtwitter.com/kdrag0n/status/1557902358964645889 (тред)
vxTwitter - View original tweet for full quality
Danny Lin (@kdrag0n)
And for terminals (kitty, alacritty, Terminal․app, iTerm2), with better light mode support than I've seen in most themes
Клёвые новые фичи Android 13
- Обязательный запрос уведомлений. Теперь приложения должны спросить у пользователя разрешение, чтобы отправлять пуши. На iOS такое уже несколько лет, наконец-то и на андроиде можно уменьшить количество непрошенных пушей
- Доступ приложений к фото теперь тоже может быть ограничен определенными альбомами или несколькими фотографиями (тоже как на iOS)
- Настройка языка для каждого приложения в отдельности. Ещё одна полезная фича, уже знакомая пользователям iOS
- Обновлённый виджет проигрывания медиа (я уже писал о проблемах текущего). Добавили полоску прогресса воспроизведения (волнистая линия выглядит интересно), изменение громкости теперь тоже доступно в пару кликов
Не самый глобальный апдейт, но выглядит интересно. Надо будет поставить на пиксель и потыкать.
Source: MKBHD
- Обязательный запрос уведомлений. Теперь приложения должны спросить у пользователя разрешение, чтобы отправлять пуши. На iOS такое уже несколько лет, наконец-то и на андроиде можно уменьшить количество непрошенных пушей
- Доступ приложений к фото теперь тоже может быть ограничен определенными альбомами или несколькими фотографиями (тоже как на iOS)
- Настройка языка для каждого приложения в отдельности. Ещё одна полезная фича, уже знакомая пользователям iOS
- Обновлённый виджет проигрывания медиа (я уже писал о проблемах текущего). Добавили полоску прогресса воспроизведения (волнистая линия выглядит интересно), изменение громкости теперь тоже доступно в пару кликов
Не самый глобальный апдейт, но выглядит интересно. Надо будет поставить на пиксель и потыкать.
Source: MKBHD
👍7
В рамках Price Monitor я часто имею дело с базами продуктов и других товаров. У большинства из них есть EAN — номер на штрихкоде (и сам штрихкод, который вы сканируете на кассе). Недавно я начал объединять базы товары из разных магазинов по EAN, и это оказалось не так просто. Потому что EAN — это какой-то черный ящик. Например, вот пачка чая
• Тип штрихкода — EAN13, в нем должно быть 13 символов
• На упаковке напечатано только 12
• Мой сканер распознаёт в нём 13 символов (добавляет 0 в начале)
• Сканер из приложения одного магазина распознаёт 12 символов
• API одного магазина возвращает товар только с 12 символами
• API другого магазина возвращает 11 символов (54881009690)
• При этом API другого магазина для получения товара по штрихкоду возвращает товар и с 11 символами, и с 12, и с 13
• Тип штрихкода — EAN13, в нем должно быть 13 символов
• На упаковке напечатано только 12
• Мой сканер распознаёт в нём 13 символов (добавляет 0 в начале)
• Сканер из приложения одного магазина распознаёт 12 символов
• API одного магазина возвращает товар только с 12 символами
• API другого магазина возвращает 11 символов (54881009690)
• При этом API другого магазина для получения товара по штрихкоду возвращает товар и с 11 символами, и с 12, и с 13
😢16👍1
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7🌭2👎1
🛒 Большое обновление Price Monitor!
• Агрегация цен из нескольких магазинов. Теперь показываются цены не только из Глобуса, но и из Ленты! Поддержка других магазинов — в планах
• Редизайн страницы товара. Сравнивайте цены в разных магазинах, смотрите историю цен на графике, узнавайте информацию о сроках действия скидок.
• Обновлённый сканер штрих-кодов. Распознаёт лучше, работает быстрее.
• Новый домен 😏
Попробуйте сами: pricemonit.ru/product/000000000000355946_ST
• Агрегация цен из нескольких магазинов. Теперь показываются цены не только из Глобуса, но и из Ленты! Поддержка других магазинов — в планах
• Редизайн страницы товара. Сравнивайте цены в разных магазинах, смотрите историю цен на графике, узнавайте информацию о сроках действия скидок.
• Обновлённый сканер штрих-кодов. Распознаёт лучше, работает быстрее.
• Новый домен 😏
Попробуйте сами: pricemonit.ru/product/000000000000355946_ST
👍7🔥5 4🐳1
🔍 Встречайте обновлённую страницу поиска!
Поменялся не только дизайн, но и внутреннее устройство.
Раньше реализация поиска была максимально простая: искалось совпадение по подстрокам в названии и штрих-коде прямо в базе данных. Из-за этого порядок слов имел большое значение. Ах да, ещё поиск был регистрозависимым.
Теперь поиском занимается отдельная поисковая система Meilisearch, которую я захостил на своём сервере. В неё загружается список всех товаров, а она индексирует данные для быстрого поиска. Теперь можно писать слова в любом порядке и даже с ошибками! Единственный минус — meilisearch умеет только в префиксный поиск. Это значит, что, например, "А.Ростагрокомплекс" не найдется по "комплекс" и даже по "Ростагрокомплекс". Думаю, что в будущем придется искать другое решение.
А пока так. В большинстве случаев текущее решение тоже показывает себя очень хорошо, даже ощущается как какая-то магия!
Попробуйте сами: pricemonit.ru/search
Поменялся не только дизайн, но и внутреннее устройство.
Раньше реализация поиска была максимально простая: искалось совпадение по подстрокам в названии и штрих-коде прямо в базе данных. Из-за этого порядок слов имел большое значение. Ах да, ещё поиск был регистрозависимым.
Теперь поиском занимается отдельная поисковая система Meilisearch, которую я захостил на своём сервере. В неё загружается список всех товаров, а она индексирует данные для быстрого поиска. Теперь можно писать слова в любом порядке и даже с ошибками! Единственный минус — meilisearch умеет только в префиксный поиск. Это значит, что, например, "А.Ростагрокомплекс" не найдется по "комплекс" и даже по "Ростагрокомплекс". Думаю, что в будущем придется искать другое решение.
А пока так. В большинстве случаев текущее решение тоже показывает себя очень хорошо, даже ощущается как какая-то магия!
Попробуйте сами: pricemonit.ru/search
🔥15 3❤2😁1🙏1
Сборка nodejs-проектов в бандл
В мире веб-разработки уже никого не удивишь, что проект перед запуском нужно прогнать через сборщик вроде webpack или parcel. Во время сборки и транспиляции код может настолько преобразиться, что станет вообще не похож на исходный. При этом в nodejs-проектах такое встретишь редко. Максимум — компиляция typescript в javascript.
Я решил попробовать добавить бандлер в один из проектов и не пожалел.
В качестве сборщика выбрал esbuild, который славится своей скоростью. Процесс заключается в том, что сборщик берёт исходные файлы и выдаёт один-единственный js-файл, который можно запускать через
Сборка занимает меньше секунды, а выходной файл занимает всего несколько мегабайт. Достигается это за счет tree shaking'а (удаления неиспользуемого кода). Если еспользовать esm, то tree-shaking будет работать ещё оптимальнее. В результате размер полезной нагрузки проекта уменьшился с 50+ мегабайт до ~6.
В подарок получаем молниеносную сборку тайпскрипта, что очень удобно для локальной разработки. Единственное замечание — esbuild не делает проверку типов. Для разработки не критично, а вот при деплое лучше добавить шаг тайп-чека с помощью
Ещё я давно задумывался над тем, как бы разграничить зависимости разных частей проекта. Например, если проект состоит из веб-сервера и крон-таска, как сделать так, чтобы в докер-образе крон-таска не было зависимостей веб-сервера. И это почти идеальное решение проблемы! Так как бандл собирается для каждой точки запуска, в таск не попадёт ни строчки кода от веб-сервера.
А теперь о деталях реализации.
- для сборки докера использую промежуточный контейнер с node, в котором ставлю зависимости и запускаю бандлер, а дальше копирую нужные файлы в конечный образ
- если в проекте используются декораторы, то нужно использовать esbuild-plugin-tsc. он почти не влияет на время сборки
- если хочется использовать минификацию, то лучше отключить настройку minify-identifiers. из-за неё могут сломаться некоторые модули, которые используют проверку имени конструктора (например, node-fetch)
В мире веб-разработки уже никого не удивишь, что проект перед запуском нужно прогнать через сборщик вроде webpack или parcel. Во время сборки и транспиляции код может настолько преобразиться, что станет вообще не похож на исходный. При этом в nodejs-проектах такое встретишь редко. Максимум — компиляция typescript в javascript.
Я решил попробовать добавить бандлер в один из проектов и не пожалел.
В качестве сборщика выбрал esbuild, который славится своей скоростью. Процесс заключается в том, что сборщик берёт исходные файлы и выдаёт один-единственный js-файл, который можно запускать через
node
. Для запуска не нужны даже node_modules, они уже вшиты в этот файл.Сборка занимает меньше секунды, а выходной файл занимает всего несколько мегабайт. Достигается это за счет tree shaking'а (удаления неиспользуемого кода). Если еспользовать esm, то tree-shaking будет работать ещё оптимальнее. В результате размер полезной нагрузки проекта уменьшился с 50+ мегабайт до ~6.
В подарок получаем молниеносную сборку тайпскрипта, что очень удобно для локальной разработки. Единственное замечание — esbuild не делает проверку типов. Для разработки не критично, а вот при деплое лучше добавить шаг тайп-чека с помощью
tsc --noEmit
.Ещё я давно задумывался над тем, как бы разграничить зависимости разных частей проекта. Например, если проект состоит из веб-сервера и крон-таска, как сделать так, чтобы в докер-образе крон-таска не было зависимостей веб-сервера. И это почти идеальное решение проблемы! Так как бандл собирается для каждой точки запуска, в таск не попадёт ни строчки кода от веб-сервера.
А теперь о деталях реализации.
- для сборки докера использую промежуточный контейнер с node, в котором ставлю зависимости и запускаю бандлер, а дальше копирую нужные файлы в конечный образ
- если в проекте используются декораторы, то нужно использовать esbuild-plugin-tsc. он почти не влияет на время сборки
- если хочется использовать минификацию, то лучше отключить настройку minify-identifiers. из-за неё могут сломаться некоторые модули, которые используют проверку имени конструктора (например, node-fetch)
👍4 3🔥2
youtu.be/_ByEBjf9ktY
Большой видос про пешеходные переходы в Америке и Европе. Автор рассказывает про конфигурации светофоров, ширину полос, островки безопасности, лежачие полицеские и не только.
Был удивлён, когда узнал, что в США зачастую разрешено поворачивать направо на красный. У нас замечал только, что в Петербурге часто включают зеленый на поворот направо вместе с зелёным для пешеходов на той стороне. В Москве такого не замечал никогда.
Ещё заметил, что по крайней мере в центре Москвы иногда встречаются дружелюбные переходы с островками безопасности и узкими полосами. Конечно, ещё очень далеко до Нидерландов с их умными светофорами и приподнятыми переходами, но шаги в правильную сторону есть. Кстати, одну улицу с приподнятыми переходами в Москве я таки вспомнил.
Большой видос про пешеходные переходы в Америке и Европе. Автор рассказывает про конфигурации светофоров, ширину полос, островки безопасности, лежачие полицеские и не только.
Был удивлён, когда узнал, что в США зачастую разрешено поворачивать направо на красный. У нас замечал только, что в Петербурге часто включают зеленый на поворот направо вместе с зелёным для пешеходов на той стороне. В Москве такого не замечал никогда.
Ещё заметил, что по крайней мере в центре Москвы иногда встречаются дружелюбные переходы с островками безопасности и узкими полосами. Конечно, ещё очень далеко до Нидерландов с их умными светофорами и приподнятыми переходами, но шаги в правильную сторону есть. Кстати, одну улицу с приподнятыми переходами в Москве я таки вспомнил.
YouTube
Crossing the Street Shouldn't Be Deadly (but it is)
Visit https://80000hours.org/notjustbikes for free advice and information about finding a career that provides an opportunity to have a positive impact on the world. Sign up to their newsletter today.
Crossing the street should be safe, convenient, and easy…
Crossing the street should be safe, convenient, and easy…
Как говорится, без комментариев
Пользовался клёвой библиотекой для TS, делал в неё PR'ы, задавал вопросы в issue, получал на них развёрнутые ответы. В один момент обнаружил себя забаненным в репе. Решил написать автору на почту и в ответ получил вот это.
Пользовался клёвой библиотекой для TS, делал в неё PR'ы, задавал вопросы в issue, получал на них развёрнутые ответы. В один момент обнаружил себя забаненным в репе. Решил написать автору на почту и в ответ получил вот это.
😢39🤣33👍5 4👎2🌭2🎉1🐳1
Рекомендую подписаться на IT блог @logdotb – здесь автор, имеющий более 5 лет опыта разработки в различных сферах, публикует новости из мира айти со своими мыслями.
Еще он регулярно делает большие, качественные и хорошо оформленные посты о технологиях, новых продуктах и цифровых нововведениях в различных отраслях, делится наработками в развитии финансовых технологий Яндекса.
Помимо этого периодически выходят дайджесты – подборки из последних актуальных новостей в компактном формате, своего рода выжимка из информационного поля айти сферы.
Поэтому подпишись, чтобы не пропускать по-настоящему проработанный и интересный аворский контент и быть в курсе актуальных новостей и событий из IT сферы.
www.tg-me.com/logdotb
Еще он регулярно делает большие, качественные и хорошо оформленные посты о технологиях, новых продуктах и цифровых нововведениях в различных отраслях, делится наработками в развитии финансовых технологий Яндекса.
Помимо этого периодически выходят дайджесты – подборки из последних актуальных новостей в компактном формате, своего рода выжимка из информационного поля айти сферы.
Поэтому подпишись, чтобы не пропускать по-настоящему проработанный и интересный аворский контент и быть в курсе актуальных новостей и событий из IT сферы.
www.tg-me.com/logdotb
👎7🌭7❤2👍1
Loskir's
🍕 На что тратить Додокоины? Я провёл анализ меню Додо пиццы и выяснил, какие блюда выгоднее покупать за Додокоины, а на какие наоборот не стоит тратить свои бонусные баллы. 📈 Выгоднее всего оказались Бруслетики, Латте и большая Супермясная пицца. 📉 А анти…
🍕 Маленький апдейт таблицы с Додокоинами
• Цены на напитки увеличили с 100 додокоинов до 130. Теперь все напитки стали невыгодными
• 35см Супермясную пиццу заменили на 35см Маргариту. Потеряна ещё одна выгодная позиция
• Бруслетики всё ещё остаются самой выгодной позицией, но в последнее время их часто не было в наличии. Сейчас такой проблемы не наблюдается
• Цены на напитки увеличили с 100 додокоинов до 130. Теперь все напитки стали невыгодными
• 35см Супермясную пиццу заменили на 35см Маргариту. Потеряна ещё одна выгодная позиция
• Бруслетики всё ещё остаются самой выгодной позицией, но в последнее время их часто не было в наличии. Сейчас такой проблемы не наблюдается
👍8🐳2
This media is not supported in your browser
VIEW IN TELEGRAM
Чехлы для не-айфонов с Magsafe Attach — величайшее изобретение
👍5🔥4😁2🌭1
This media is not supported in your browser
VIEW IN TELEGRAM
С одним из датчиков температуры у меня дома явно что-то не так. Если остальные графики выглядят как верхний, то этот выглядит вот так. Он букально обновляет данные раз в несколько секунд. И разряжается за пару месяцев вместо нескольких лет
Это zigbee-датчики от Aqara, вот такие. Я не нашёл в интернете, можно ли настроить эту частоту обновления
Это zigbee-датчики от Aqara, вот такие. Я не нашёл в интернете, можно ли настроить эту частоту обновления
This media is not supported in your browser
VIEW IN TELEGRAM
Все мы ругаем баганые анимации уведомлений в iOS 16 и разумеется за дело
Главное не забывать, что андроид существует
Главное не забывать, что андроид существует
😁13